|Authors||V. T. Fauske, M. S. Alnæs and B. Ragan-Kelley|
|Title||nbdime: diffing and merging notebooks|
|Project(s)||OpenDreamKit: Open Digital Research Environment Toolkit for the Advancement of Mathematics, Center for Biomedical Computing (SFF)|
|Publication Type||Talks, invited|
|Year of Publication||2016|
|Location of Talk||JupyterDay Orsay|
|Keywords||git, jupyter, notebook, version control|
Jupyter notebooks are JSON documents containing a combination of code, prose, and output. These outputs may be rich media, such as HTML or images. The use of JSON and including output can present challenges when working with version control systems and code review. The JSON structure significantly impedes the readability of diffs, and simple line-based merge tools can produce invalid results. nbdime aims to provide diff and merge tools specifically for notebooks. For diffs, nbdime shows rendered diffs of notebooks, so that the content can be compared efficiently, rather than the raw JSON. Merges performed with nbdime will guarantee a valid notebook as a result, even in the event of conflicts. nbdime integrates with existing tools, such as git, so you shouldn't need to change how you work.