{"action":"created","issue":{"url":"https://api.github.com/repos/jupyter/nbdime/issues/196","repository_url":"https://api.github.com/repos/jupyter/nbdime","labels_url":"https://api.github.com/repos/jupyter/nbdime/issues/196/labels{/name}","comments_url":"https://api.github.com/repos/jupyter/nbdime/issues/196/comments","events_url":"https://api.github.com/repos/jupyter/nbdime/issues/196/events","html_url":"https://github.com/jupyter/nbdime/issues/196","id":194033697,"number":196,"title":"Decision bundling fails to dispatch to callback when bundle root path is deleted","user":{"login":"martinal","id":378115,"avatar_url":"https://avatars.githubusercontent.com/u/378115?v=3","gravatar_id":"","url":"https://api.github.com/users/martinal","html_url":"https://github.com/martinal","followers_url":"https://api.github.com/users/martinal/followers","following_url":"https://api.github.com/users/martinal/following{/other_user}","gists_url":"https://api.github.com/users/martinal/gists{/gist_id}","starred_url":"https://api.github.com/users/martinal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinal/subscriptions","organizations_url":"https://api.github.com/users/martinal/orgs","repos_url":"https://api.github.com/users/martinal/repos","events_url":"https://api.github.com/users/martinal/events{/privacy}","received_events_url":"https://api.github.com/users/martinal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-12-07T12:12:17Z","updated_at":"2016-12-07T18:36:17Z","closed_at":null,"body":"To reproduce and see why this is a problem:\r\n\r\nCheckout the output-diff-improvements branch (at the time of writing in a PR).\r\n\r\nGo to `nbdime/tests/files`.\r\n\r\nTry merging these files:\r\n```\r\nmartinal:nbdime/nbdime/tests/files (output-diff-improvements) $ nbmerge -o merged.ipynb attachment.ipynb attachment--change_attachment.ipynb attachment--remove_attachment.ipynb \r\n[W autoresolve:260] autoresolving conflict at /cells/0/attachments with inline-attachments\r\n[W nbmergeapp:47] Conflicts occured during merge operation.\r\n[I nbmergeapp:60] Merge result written to merged.ipynb\r\n```\r\nThen these files:\r\n```\r\nmartinal:nbdime/nbdime/tests/files (output-diff-improvements) $ nbmerge -o merged2.ipynb attachment.ipynb attachment--change_attachment.ipynb attachment--empty_attachments_list.ipynb \r\n[W autoresolve:260] autoresolving conflict at /cells/0/attachments with inline-attachments\r\n[W nbmergeapp:47] Conflicts occured during merge operation.\r\n[I nbmergeapp:60] Merge result written to merged2.ipynb\r\n```\r\nThen see that the results are different:\r\n```\r\nmartinal:nbdime/nbdime/tests/files (output-diff-improvements) $ nbdiff merged.ipynb merged2.ipynb \r\nnbdiff merged.ipynb merged2.ipynb\r\n--- merged.ipynb  2016-12-07 13:06:27.400383\r\n+++ merged2.ipynb  2016-12-07 13:06:33.008367\r\n## replaced /cells/0/attachments/test.png/image/png:\r\n-  iVBORw0K...<snip base64, md5=90b54a2ccca65363...>\r\n+  iVBORw0K...<snip base64, md5=7fbdb737b44d1aa8...>\r\n```\r\nThe only difference between the two cases is that one notebook has no attachments field and another has an empty attachment dict:\r\n```\r\nmartinal:nbdime/nbdime/tests/files (output-diff-improvements) $ nbdiff attachment--empty_attachments_list.ipynb attachment--remove_attachment.ipynb \r\nnbdiff attachment--empty_attachments_list.ipynb attachment--remove_attachment.ipynb\r\n--- attachment--empty_attachments_list.ipynb  2016-12-07 13:05:49.924495\r\n+++ attachment--remove_attachment.ipynb  2016-11-24 13:48:49.432845\r\n## deleted /cells/0/attachments:\r\n-  attachments:\r\n```"},"comment":{"url":"https://api.github.com/repos/jupyter/nbdime/issues/comments/265532282","html_url":"https://github.com/jupyter/nbdime/issues/196#issuecomment-265532282","issue_url":"https://api.github.com/repos/jupyter/nbdime/issues/196","id":265532282,"user":{"login":"martinal","id":378115,"avatar_url":"https://avatars.githubusercontent.com/u/378115?v=3","gravatar_id":"","url":"https://api.github.com/users/martinal","html_url":"https://github.com/martinal","followers_url":"https://api.github.com/users/martinal/followers","following_url":"https://api.github.com/users/martinal/following{/other_user}","gists_url":"https://api.github.com/users/martinal/gists{/gist_id}","starred_url":"https://api.github.com/users/martinal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinal/subscriptions","organizations_url":"https://api.github.com/users/martinal/orgs","repos_url":"https://api.github.com/users/martinal/repos","events_url":"https://api.github.com/users/martinal/events{/privacy}","received_events_url":"https://api.github.com/users/martinal/received_events","type":"User","site_admin":false},"created_at":"2016-12-07T18:36:17Z","updated_at":"2016-12-07T18:36:17Z","body":"However, I don't see any way to preserve both local and remote modifications as inline conflicts in the merged notebook without storing them under different names. One approach could be to replace the reference to the attachments in the markdown source with references to both local and remote attachment versions (with the new filenames) such that they will be shown, and place conflict markers in the source:\r\n```\r\nunchanged markdown text...\r\n\r\n<<<<<<< local\r\n![image alt text](attachment://LOCAL_image.png)\r\n=======\r\n![image alt text](attachment://REMOTE_image.png)\r\n>>>>>>> remote\r\n\r\nmore unchanged markdown text...\r\n```\r\nGiven that we don't have any products using the attachment feature, I suggest we wait and see."}}
{"actor":{"display_login":"martinal"}}