{"action":"created","issue":{"url":"https://api.github.com/repos/phosphorjs/phosphor/issues/422","repository_url":"https://api.github.com/repos/phosphorjs/phosphor","labels_url":"https://api.github.com/repos/phosphorjs/phosphor/issues/422/labels{/name}","comments_url":"https://api.github.com/repos/phosphorjs/phosphor/issues/422/comments","events_url":"https://api.github.com/repos/phosphorjs/phosphor/issues/422/events","html_url":"https://github.com/phosphorjs/phosphor/pull/422","id":487704967,"node_id":"MDExOlB1bGxSZXF1ZXN0MzEyOTExNDYx","number":422,"title":"Undo redo","user":{"login":"ian-r-rose","id":5728311,"node_id":"MDQ6VXNlcjU3MjgzMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/5728311?v=4","gravatar_id":"","url":"https://api.github.com/users/ian-r-rose","html_url":"https://github.com/ian-r-rose","followers_url":"https://api.github.com/users/ian-r-rose/followers","following_url":"https://api.github.com/users/ian-r-rose/following{/other_user}","gists_url":"https://api.github.com/users/ian-r-rose/gists{/gist_id}","starred_url":"https://api.github.com/users/ian-r-rose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ian-r-rose/subscriptions","organizations_url":"https://api.github.com/users/ian-r-rose/orgs","repos_url":"https://api.github.com/users/ian-r-rose/repos","events_url":"https://api.github.com/users/ian-r-rose/events{/privacy}","received_events_url":"https://api.github.com/users/ian-r-rose/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-08-30T23:46:03Z","updated_at":"2019-09-03T12:54:23Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/phosphorjs/phosphor/pulls/422","html_url":"https://github.com/phosphorjs/phosphor/pull/422","diff_url":"https://github.com/phosphorjs/phosphor/pull/422.diff","patch_url":"https://github.com/phosphorjs/phosphor/pull/422.patch"},"body":"This implements undo/redo for the datastore.\r\n1. The message passing interface has been replaced with an `IServerAdapter` interface, which can receive transactions, as well as requests for undo and redo events. Please let me know if the interfaec seems reasonable.\r\n1. The datastore now has its own cemetery to keep track of which transactions should be applied. If the undo count is greater than the redo count, they are not applied.\r\n1. Tables and fields now have the ability to unapply patches as well as apply them. The unapply versions are mostly the reverse of the apply functions.\r\n"},"comment":{"url":"https://api.github.com/repos/phosphorjs/phosphor/issues/comments/527445412","html_url":"https://github.com/phosphorjs/phosphor/pull/422#issuecomment-527445412","issue_url":"https://api.github.com/repos/phosphorjs/phosphor/issues/422","id":527445412,"node_id":"MDEyOklzc3VlQ29tbWVudDUyNzQ0NTQxMg==","user":{"login":"vidartf","id":510760,"node_id":"MDQ6VXNlcjUxMDc2MA==","avatar_url":"https://avatars3.githubusercontent.com/u/510760?v=4","gravatar_id":"","url":"https://api.github.com/users/vidartf","html_url":"https://github.com/vidartf","followers_url":"https://api.github.com/users/vidartf/followers","following_url":"https://api.github.com/users/vidartf/following{/other_user}","gists_url":"https://api.github.com/users/vidartf/gists{/gist_id}","starred_url":"https://api.github.com/users/vidartf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vidartf/subscriptions","organizations_url":"https://api.github.com/users/vidartf/orgs","repos_url":"https://api.github.com/users/vidartf/repos","events_url":"https://api.github.com/users/vidartf/events{/privacy}","received_events_url":"https://api.github.com/users/vidartf/received_events","type":"User","site_admin":false},"created_at":"2019-09-03T12:54:23Z","updated_at":"2019-09-03T12:54:23Z","author_association":"CONTRIBUTOR","body":"> One thing to keep in mind, it's technically impossible to undo a transaction before it is created, since by definition the transaction id would not yet exist. So really, the cemetery is only taking care of concurrent undo of a particular transaction.\r\n\r\nWhat do we do in the case where a network snag causes an undo transaction to arrive before the original transaction message? I don't think it is very likely, but we should at least fail loudly if we are not going to handle that case."}}
{"actor":{"display_login":"vidartf"}}