{"action":"created","comment":{"url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments/177572997","pull_request_review_id":107468451,"id":177572997,"diff_hunk":"@@ -23,6 +23,70 @@ def test_alice_writes_bob_receives(magic_folder):\n     return\n \n \n+def test_alice_writes_bob_receives_multiple(magic_folder):\n+    \"\"\"\n+    When Alice does a series of updates, Bob should just receive them\n+    with no .backup or .conflict files being produced.\n+    \"\"\"\n+    alice_dir, bob_dir = magic_folder\n+\n+    # first update\n+    with open(join(alice_dir, \"multiple\"), \"w\") as f:\n+        f.write(\"alice wrote this\")\n+\n+    util.await_file_contents(join(bob_dir, \"multiple\"), \"alice wrote this\")\n+    assert not exists(join(bob_dir, \"multiple.backup\"))\n+    assert not exists(join(bob_dir, \"multiple.conflict\"))\n+\n+    # second update\n+    time.sleep(2)\n+    with open(join(alice_dir, \"multiple\"), \"w\") as f:\n+        f.write(\"alice changed her mind\")\n+\n+    util.await_file_contents(join(bob_dir, \"multiple\"), \"alice changed her mind\")\n+    assert not exists(join(bob_dir, \"multiple.backup\"))\n+    assert not exists(join(bob_dir, \"multiple.conflict\"))\n+\n+    # third update\n+    time.sleep(2)\n+    with open(join(alice_dir, \"multiple\"), \"w\") as f:\n+        f.write(\"absolutely final version ship it\")\n+\n+    util.await_file_contents(join(bob_dir, \"multiple\"), \"absolutely final version ship it\")\n+    assert not exists(join(bob_dir, \"multiple.backup\"))\n+    assert not exists(join(bob_dir, \"multiple.conflict\"))\n+\n+    # forth update, but both \"at once\" so one should conflict\n+    time.sleep(2)\n+    with open(join(alice_dir, \"multiple\"), \"w\") as f:\n+        f.write(\"okay one more attempt\")\n+    with open(join(bob_dir, \"multiple\"), \"w\") as f:\n+        f.write(\"...but just let me add\")\n+\n+    bob_conflict = join(bob_dir, \"multiple.conflict\")\n+    alice_conflict = join(alice_dir, \"multiple.conflict\")\n+    bob_backup = join(bob_dir, \"multiple.backup\")\n+    alice_backup = join(alice_dir, \"multiple.backup\")\n+\n+    found = None\n+    start_time = time.time()\n+    while time.time() - start_time < 30:\n+        print(\"  waiting for conflict\")\n+        if exists(bob_conflict) or exists(alice_conflict):\n+            found = bob_conflict if exists(bob_conflict) else alice_conflict","path":"integration/test_magic_folder.py","position":54,"original_position":54,"commit_id":"543588fc672e1276f6083a36f4b4452d8b44f9e9","original_commit_id":"543588fc672e1276f6083a36f4b4452d8b44f9e9","user":{"login":"meejah","id":145599,"avatar_url":"https://avatars3.githubusercontent.com/u/145599?v=4","gravatar_id":"","url":"https://api.github.com/users/meejah","html_url":"https://github.com/meejah","followers_url":"https://api.github.com/users/meejah/followers","following_url":"https://api.github.com/users/meejah/following{/other_user}","gists_url":"https://api.github.com/users/meejah/gists{/gist_id}","starred_url":"https://api.github.com/users/meejah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meejah/subscriptions","organizations_url":"https://api.github.com/users/meejah/orgs","repos_url":"https://api.github.com/users/meejah/repos","events_url":"https://api.github.com/users/meejah/events{/privacy}","received_events_url":"https://api.github.com/users/meejah/received_events","type":"User","site_admin":false},"body":"I'm just removing this part of the test; it will be part of a PR fixing `.confict` issues","created_at":"2018-03-27T21:07:45Z","updated_at":"2018-03-27T21:07:45Z","html_url":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475#discussion_r177572997","pull_request_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments/177572997"},"html":{"href":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475#discussion_r177572997"},"pull_request":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475"}},"in_reply_to_id":177269692},"pull_request":{"url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475","id":177573133,"html_url":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475","diff_url":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475.diff","patch_url":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475.patch","issue_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/475","number":475,"state":"open","locked":false,"title":"2909.backup behavior.0","user":{"login":"meejah","id":145599,"avatar_url":"https://avatars3.githubusercontent.com/u/145599?v=4","gravatar_id":"","url":"https://api.github.com/users/meejah","html_url":"https://github.com/meejah","followers_url":"https://api.github.com/users/meejah/followers","following_url":"https://api.github.com/users/meejah/following{/other_user}","gists_url":"https://api.github.com/users/meejah/gists{/gist_id}","starred_url":"https://api.github.com/users/meejah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meejah/subscriptions","organizations_url":"https://api.github.com/users/meejah/orgs","repos_url":"https://api.github.com/users/meejah/repos","events_url":"https://api.github.com/users/meejah/events{/privacy}","received_events_url":"https://api.github.com/users/meejah/received_events","type":"User","site_admin":false},"body":"See [#2909](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2909), I believe this fixes the behavior (we should now only see .backup files when another party deletes a file).","created_at":"2018-03-26T21:28:55Z","updated_at":"2018-03-27T21:07:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2717905df69f7e30ff3689cad205c508e047c86a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":881553424,"url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/labels/for-next-release","name":"for-next-release","color":"75f430","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475/commits","review_comments_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475/comments","review_comment_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/475/comments","statuses_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/543588fc672e1276f6083a36f4b4452d8b44f9e9","head":{"label":"meejah:2909.backup-behavior.0","ref":"2909.backup-behavior.0","sha":"543588fc672e1276f6083a36f4b4452d8b44f9e9","user":{"login":"meejah","id":145599,"avatar_url":"https://avatars3.githubusercontent.com/u/145599?v=4","gravatar_id":"","url":"https://api.github.com/users/meejah","html_url":"https://github.com/meejah","followers_url":"https://api.github.com/users/meejah/followers","following_url":"https://api.github.com/users/meejah/following{/other_user}","gists_url":"https://api.github.com/users/meejah/gists{/gist_id}","starred_url":"https://api.github.com/users/meejah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meejah/subscriptions","organizations_url":"https://api.github.com/users/meejah/orgs","repos_url":"https://api.github.com/users/meejah/repos","events_url":"https://api.github.com/users/meejah/events{/privacy}","received_events_url":"https://api.github.com/users/meejah/received_events","type":"User","site_admin":false},"repo":{"id":42634043,"name":"tahoe-lafs","full_name":"meejah/tahoe-lafs","owner":{"login":"meejah","id":145599,"avatar_url":"https://avatars3.githubusercontent.com/u/145599?v=4","gravatar_id":"","url":"https://api.github.com/users/meejah","html_url":"https://github.com/meejah","followers_url":"https://api.github.com/users/meejah/followers","following_url":"https://api.github.com/users/meejah/following{/other_user}","gists_url":"https://api.github.com/users/meejah/gists{/gist_id}","starred_url":"https://api.github.com/users/meejah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meejah/subscriptions","organizations_url":"https://api.github.com/users/meejah/orgs","repos_url":"https://api.github.com/users/meejah/repos","events_url":"https://api.github.com/users/meejah/events{/privacy}","received_events_url":"https://api.github.com/users/meejah/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/meejah/tahoe-lafs","description":"The Tahoe-LAFS decentralized secure filesystem.","fork":true,"url":"https://api.github.com/repos/meejah/tahoe-lafs","forks_url":"https://api.github.com/repos/meejah/tahoe-lafs/forks","keys_url":"https://api.github.com/repos/meejah/tahoe-lafs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/meejah/tahoe-lafs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/meejah/tahoe-lafs/teams","hooks_url":"https://api.github.com/repos/meejah/tahoe-lafs/hooks","issue_events_url":"https://api.github.com/repos/meejah/tahoe-lafs/issues/events{/number}","events_url":"https://api.github.com/repos/meejah/tahoe-lafs/events","assignees_url":"https://api.github.com/repos/meejah/tahoe-lafs/assignees{/user}","branches_url":"https://api.github.com/repos/meejah/tahoe-lafs/branches{/branch}","tags_url":"https://api.github.com/repos/meejah/tahoe-lafs/tags","blobs_url":"https://api.github.com/repos/meejah/tahoe-lafs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/meejah/tahoe-lafs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/meejah/tahoe-lafs/git/refs{/sha}","trees_url":"https://api.github.com/repos/meejah/tahoe-lafs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/meejah/tahoe-lafs/statuses/{sha}","languages_url":"https://api.github.com/repos/meejah/tahoe-lafs/languages","stargazers_url":"https://api.github.com/repos/meejah/tahoe-lafs/stargazers","contributors_url":"https://api.github.com/repos/meejah/tahoe-lafs/contributors","subscribers_url":"https://api.github.com/repos/meejah/tahoe-lafs/subscribers","subscription_url":"https://api.github.com/repos/meejah/tahoe-lafs/subscription","commits_url":"https://api.github.com/repos/meejah/tahoe-lafs/commits{/sha}","git_commits_url":"https://api.github.com/repos/meejah/tahoe-lafs/git/commits{/sha}","comments_url":"https://api.github.com/repos/meejah/tahoe-lafs/comments{/number}","issue_comment_url":"https://api.github.com/repos/meejah/tahoe-lafs/issues/comments{/number}","contents_url":"https://api.github.com/repos/meejah/tahoe-lafs/contents/{+path}","compare_url":"https://api.github.com/repos/meejah/tahoe-lafs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/meejah/tahoe-lafs/merges","archive_url":"https://api.github.com/repos/meejah/tahoe-lafs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/meejah/tahoe-lafs/downloads","issues_url":"https://api.github.com/repos/meejah/tahoe-lafs/issues{/number}","pulls_url":"https://api.github.com/repos/meejah/tahoe-lafs/pulls{/number}","milestones_url":"https://api.github.com/repos/meejah/tahoe-lafs/milestones{/number}","notifications_url":"https://api.github.com/repos/meejah/tahoe-lafs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/meejah/tahoe-lafs/labels{/name}","releases_url":"https://api.github.com/repos/meejah/tahoe-lafs/releases{/id}","deployments_url":"https://api.github.com/repos/meejah/tahoe-lafs/deployments","created_at":"2015-09-17T04:05:14Z","updated_at":"2016-01-19T19:35:02Z","pushed_at":"2018-03-27T16:55:46Z","git_url":"git://github.com/meejah/tahoe-lafs.git","ssh_url":"git@github.com:meejah/tahoe-lafs.git","clone_url":"https://github.com/meejah/tahoe-lafs.git","svn_url":"https://github.com/meejah/tahoe-lafs","homepage":"https://tahoe-lafs.org/","size":68037,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"tahoe-lafs:master","ref":"master","sha":"38da8f471cc3c79d505d39cefcbdebc532812303","user":{"login":"tahoe-lafs","id":1156454,"avatar_url":"https://avatars1.githubusercontent.com/u/1156454?v=4","gravatar_id":"","url":"https://api.github.com/users/tahoe-lafs","html_url":"https://github.com/tahoe-lafs","followers_url":"https://api.github.com/users/tahoe-lafs/followers","following_url":"https://api.github.com/users/tahoe-lafs/following{/other_user}","gists_url":"https://api.github.com/users/tahoe-lafs/gists{/gist_id}","starred_url":"https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tahoe-lafs/subscriptions","organizations_url":"https://api.github.com/users/tahoe-lafs/orgs","repos_url":"https://api.github.com/users/tahoe-lafs/repos","events_url":"https://api.github.com/users/tahoe-lafs/events{/privacy}","received_events_url":"https://api.github.com/users/tahoe-lafs/received_events","type":"Organization","site_admin":false},"repo":{"id":3007569,"name":"tahoe-lafs","full_name":"tahoe-lafs/tahoe-lafs","owner":{"login":"tahoe-lafs","id":1156454,"avatar_url":"https://avatars1.githubusercontent.com/u/1156454?v=4","gravatar_id":"","url":"https://api.github.com/users/tahoe-lafs","html_url":"https://github.com/tahoe-lafs","followers_url":"https://api.github.com/users/tahoe-lafs/followers","following_url":"https://api.github.com/users/tahoe-lafs/following{/other_user}","gists_url":"https://api.github.com/users/tahoe-lafs/gists{/gist_id}","starred_url":"https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tahoe-lafs/subscriptions","organizations_url":"https://api.github.com/users/tahoe-lafs/orgs","repos_url":"https://api.github.com/users/tahoe-lafs/repos","events_url":"https://api.github.com/users/tahoe-lafs/events{/privacy}","received_events_url":"https://api.github.com/users/tahoe-lafs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tahoe-lafs/tahoe-lafs","description":"The Tahoe-LAFS decentralized secure filesystem.","fork":false,"url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs","forks_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/forks","keys_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/teams","hooks_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/hooks","issue_events_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/events{/number}","events_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/events","assignees_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/assignees{/user}","branches_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/branches{/branch}","tags_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/tags","blobs_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/refs{/sha}","trees_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/{sha}","languages_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/languages","stargazers_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/stargazers","contributors_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contributors","subscribers_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscribers","subscription_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscription","commits_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/commits{/sha}","git_commits_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/commits{/sha}","comments_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/comments{/number}","issue_comment_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/comments{/number}","contents_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contents/{+path}","compare_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/merges","archive_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/downloads","issues_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues{/number}","pulls_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls{/number}","milestones_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/milestones{/number}","notifications_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/labels{/name}","releases_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/releases{/id}","deployments_url":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/deployments","created_at":"2011-12-18T19:33:55Z","updated_at":"2018-03-27T11:47:08Z","pushed_at":"2018-03-27T18:57:39Z","git_url":"git://github.com/tahoe-lafs/tahoe-lafs.git","ssh_url":"git@github.com:tahoe-lafs/tahoe-lafs.git","clone_url":"https://github.com/tahoe-lafs/tahoe-lafs.git","svn_url":"https://github.com/tahoe-lafs/tahoe-lafs","homepage":"https://tahoe-lafs.org/","size":67984,"stargazers_count":743,"watchers_count":743,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":183,"mirror_url":null,"archived":false,"open_issues_count":20,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":183,"open_issues":20,"watchers":743,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475"},"html":{"href":"https://github.com/tahoe-lafs/tahoe-lafs/pull/475"},"issue":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/475"},"comments":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/475/comments"},"review_comments":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475/comments"},"review_comment":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/475/commits"},"statuses":{"href":"https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/543588fc672e1276f6083a36f4b4452d8b44f9e9"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"meejah"}}