Two-column web-based git difftool
Project description
git webdiff
Two-column web-based git difftool.
Features include:
- Side-by-side (two column) diff view
- Runs in the browser of your choice on any platform.
- Syntax highlighting via highlight.js
- Step back and forth through multiple files in a single diff
- Rich support for image diffs
Installation
pip install webdiff
Usage
Instead of running "git diff", run:
git webdiff
You can also start webdiff via:
git webdiff [args]
You can pass all the same arguments that you would to git diff
, e.g.
1234..5678
or HEAD
.
webdiff
can also be invoked directly to diff two directories or files:
webdiff <left_dir> <right_dir>
webdiff <left_file> <right_file>
You can also use webdiff
to view GitHub pull requests:
webdiff https://github.com/owner/repo/pull/123
webdiff #123 # if you're in a git repo with a github remote
This will download the files relevant to the Pull Request and run webdiff
.
If you run into GitHub API quota limits or you'd like to use webdiff with
private repos, you can set your credentials in a .githubrc
file:
user.login: yourusername
user.token: your-personal-access-tokens
Make sure you chmod this file to only be readable by yourself. You can generate a personal access token for webdiff via github.com → profile → Settings → Personal access tokens. Make sure to grant all the "repo" privileges.
Development
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd ts
yarn
# see https://github.com/webpack/webpack/issues/14532
NODE_OPTIONS=--openssl-legacy-provider webpack
Then from the root directory:
PYTHONPATH=. ./webdiff/app.py testdata/dygraphsjs/{left,right}
or to launch in debug mode:
./test.sh $(pwd)/../testdata/webdiffdiff/{left,right}
(or any other directory in testdata)
To run the Python tests:
pytest
To run the JavaScript tests:
python -m SimpleHTTPServer
open tests/runner.html
To format the code, run:
./scripts/black.sh
cd ts
yarn prettier
To iterate on the PyPI package, run:
# from outside the webdiff virtualenv:
pip uninstall webdiff
# from inside the webdiff virtualenv, adjust for current version
python setup.py sdist
mkdir /tmp/webdiff-test
cp dist/webdiff-X.Y.Z.tar.gz /tmp/webdiff-test
deactivate
cd /tmp/webdiff-test
pip3 install webdiff-X.Y.Z.tar.gz
To publish to pypitest:
pip install --upgrade wheel setuptools twine
python setup.py sdist bdist_wheel
twine upload -r testpypi dist/*
And to the real pypi:
twine upload dist/*
See pypirc docs for details on setting up ~/.pypirc
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file webdiff-0.16.0.tar.gz
.
File metadata
- Download URL: webdiff-0.16.0.tar.gz
- Upload date:
- Size: 495.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c66e28e62ed82e0c018add3f86161d2831932718e504fc7fe446c90c7abc6c1 |
|
MD5 | 7402878639609b1cdf81243f7f0c9480 |
|
BLAKE2b-256 | c76278dca346ac9f632276b9984d9f1484dd56f3ba368e560bdeb4f52f2c6c6e |
File details
Details for the file webdiff-0.16.0-py3-none-any.whl
.
File metadata
- Download URL: webdiff-0.16.0-py3-none-any.whl
- Upload date:
- Size: 498.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17377d178a900ba76281b60b84901717494a059af5d2f6ed70aaff939402b42a |
|
MD5 | a0d9f9b26310c350227807955385b47e |
|
BLAKE2b-256 | 380992a5c5e67eaef5854fae5d9c0a1cc941f90bb1e54d8cc86224af21a416a5 |