Note: nbdiff only supports IPython 2.x at the moment.
A tool for diffing and merging IPython Notebook files.
This project was built by a team of university students from Concordia University in 2013--2014. See AUTHORS for more information.
- Free software: MIT license
- Website: http://nbdiff.org.
If you have pip installed:
$ pip install nbdiff
- Download the code from this repository
python setup.py develop
Configuring nbmerge to work with your version control system can be helpful but is not required.
NBMerge is compatible with Mercurial out of the box by running
hg merge --tool=nbmerge <branch>.
Git, however, needs to be configured by adding the following to your
[mergetool "nbmerge"] cmd = nbmerge $LOCAL $BASE $REMOTE $MERGED
Alternatively, you can run the following command to add this configuration automatically:
$ git config --global mergetool.nbmerge.cmd = "nbmerge \$LOCAL \$BASE \$REMOTE \$MERGED"
You can then run
nbmerge from git like so:
$ git mergetool --tool=nbmerge
NBDiff launches a server at
localhost:5000 and allows you to view a simple
2-pane diff of two notebook files.
usage: nbdiff [-h] [before after] Produce a diffed IPython Notebook from before and after notebooks. If no arguments are given, nbdiff looks for modified notebook files in the version control system. The resulting diff is presented to the user in the browser at http://localhost:5000. positional arguments: before The notebook to diff against. after The notebook to compare `before` to. optional arguments: -h, --help show this help message and exit
usage: nbmerge [-h] [local base remote [result]] nbmerge is a tool for resolving merge conflicts in IPython Notebook files. If no arguments are given, nbmerge attempts to find the conflicting file in the version control system. Positional arguments are available for integration with version control systems such as Git and Mercurial. Once nbmerge is run, the UI can be accessed at http://localhost:5000 positional arguments: notebook optional arguments: -h, --help show this help message and exit
Run the Python tests
To get all of the dependencies necessary to test nbdiff, run:
$ pip install -r requirements-dev.txt
To run the python tests, run the following command:
$ python setup.py nosetests
NBDiff adheres to PEP-8. To check the code
against PEP-8, use
flake8 like so:
$ flake8 tests nbdiff
To check Python test coverage, install
coverage and run the tests with the
$ pip install coverage $ python setup.py nosetests --with-coverage
First, install node and npm.
$ npm install
Finally, run the tests with
grunt. You should output similar to the following.
grunt will not only run the tests, but check for common style problems with
$ grunt Running "qunit:files" (qunit) task Testing src/test/index.html ...OK >> 14 assertions passed (21ms) Done, without errors.