{ "info": { "author": "Matthew Wang", "author_email": "mattwyl@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "Ydiff\n=====\n\n.. image:: https://travis-ci.org/ymattw/ydiff.png?branch=master\n :target: https://travis-ci.org/ymattw/ydiff\n :alt: Build status\n\nTerm based tool to view *colored*, *incremental* diff in a *Git/Mercurial/Svn*\nworkspace or from stdin, with *side by side* (similar to ``diff -y``) and *auto\npager* support. Requires python (>= 2.5.0) and ``less``.\n\n.. image:: https://raw.github.com/ymattw/ydiff/gh-pages/img/default.png\n :alt: default\n :align: center\n\n.. image:: https://raw.github.com/ymattw/ydiff/gh-pages/img/side-by-side.png\n :alt: side by side\n :align: center\n :width: 900 px\n\nInstallation\n------------\n\nInstall with pip\n~~~~~~~~~~~~~~~~\n\nYdiff is already listed on `PyPI`_, you can install with ``pip`` if you have\nthe tool.\n\n.. _PyPI: http://pypi.python.org/pypi/ydiff\n\n.. code-block:: bash\n\n pip install --upgrade ydiff\n\nInstall with setup.py\n~~~~~~~~~~~~~~~~~~~~~\n\nYou can also run the setup.py from the source if you don't have ``pip``.\n\n.. code-block:: bash\n\n git clone https://github.com/ymattw/ydiff.git\n cd ydiff\n ./setup.py install\n\nInstall with Homebrew\n~~~~~~~~~~~~~~~~~~~~~\n\nYou can also install with Homebrew on Mac. (Thanks to `@josa42`_,\n`@bfontaine`_, `@hivehand`_ and `@nijikon`_ for contributing to the Homebrew\n`Formula`_).\n\n.. _`@josa42`: https://github.com/josa42\n.. _`@bfontaine`: https://github.com/bfontaine\n.. _`@hivehand`: https://github.com/hivehand\n.. _`@nijikon`: https://github.com/nijikon\n.. _`Formula`: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ydiff.rb\n\n.. code-block:: bash\n\n brew install ydiff\n\nDownload directly\n~~~~~~~~~~~~~~~~~\n\nJust save `ydiff.py`_ to whatever directory which is in your ``$PATH``, for\nexample, ``$HOME/bin`` is in my ``$PATH``, so I save the script there and name\nas ``ydiff``.\n\n.. _`ydiff.py`: https://raw.github.com/ymattw/ydiff/master/ydiff.py\n\n.. code-block:: bash\n\n curl -ksSL https://raw.github.com/ymattw/ydiff/master/ydiff.py > ~/bin/ydiff\n chmod +x ~/bin/ydiff\n\nUsage\n-----\n\nType ``ydiff -h`` to show usage::\n\n $ ydiff -h\n Usage: ydiff [options] [file|dir ...]\n\n View colored, incremental diff in a workspace or from stdin, with side by side\n and auto pager support\n\n Options:\n --version show program's version number and exit\n -h, --help show this help message and exit\n -s, --side-by-side enable side-by-side mode\n -w N, --width=N set text width for side-by-side mode, 0 for auto\n detection, default is 80\n -l, --log show log with changes from revision control\n -c M, --color=M colorize mode 'auto' (default), 'always', or 'never'\n -t N, --tab-width=N convert tab characters to this many spaces (default: 8)\n --wrap wrap long lines in side-by-side view\n\n Note:\n Option parser will stop on first unknown option and pass them down to\n underneath revision control. Environment variable YDIFF_OPTIONS may be\n used to specify default options that will be placed at the beginning\n of the argument list.\n\nRead diff from local modification in a *Git/Mercurial/Svn* workspace (output\nfrom e.g. ``git diff``, ``svn diff``):\n\n.. code-block:: bash\n\n cd proj-workspace\n ydiff # view colored incremental diff\n ydiff -s # view side by side, use default text width 80\n ydiff -s -w 90 # use text width 90 other than default 80\n ydiff -s -w 0 # auto set text width based on terminal size\n ydiff -s -w 0 --wrap # same as before, but also wrap long lines\n ydiff -s file1 dir2 # view modification of given files/dirs only\n ydiff -s -w90 --wrap -- -U10 # pass '-U10' to underneath revision diff tool\n ydiff -s -w90 --wrap -U10 # '--' is optional as it's unknown to ydiff\n ydiff -s --cached # show git staged diff (git diff --cached)\n ydiff -s -r1234 # show svn diff to revision 1234\n\nRead log with changes in a *Git/Mercurial/Svn* workspace (output from e.g.\n``git log -p``, ``svn log --diff``), note *--diff* option is new in svn 1.7.0:\n\n.. code-block:: bash\n\n cd proj-workspace\n ydiff -l # read log along with changes\n ydiff -ls # equivalent to ydiff -l -s, view side by side\n ydiff -ls -w90 --wrap # set text width 90 and enable wrapping as well\n ydiff -ls file1 dir2 # see log with changes of given files/dirs only\n\nEnvironment variable ``YDIFF_OPTIONS`` may be used to specify default options\nthat will be placed at the beginning of the argument list, for example:\n\n.. code-block:: bash\n\n export YDIFF_OPTIONS='-s -w0 --wrap'\n ydiff foo # equivalent to \"ydiff -s -w0 --wrap foo\"\n\nIf you feel more comfortable with a command such as ``git ydiff`` to trigger\nthe ydiff command, you may symlink the executable to one named ``git-ydiff``\nas follows:\n\n.. code-block:: bash\n\n ydiff_dir=$(dirname $(which ydiff))\n ln -s \"${ydiff_dir}/ydiff\" \"${ydiff_dir}/git-ydiff\"\n\nPipe in a diff:\n\n.. code-block:: bash\n\n git log -p -2 | ydiff # view git log with changes of last 2 commits\n git show 15bfa | ydiff -s # view a given git commit, side by side\n svn diff -r1234 | ydiff -s # view svn diff comparing to given revision\n diff -u file1 file2 | ydiff # view diff between two files (note the '-u')\n diff -ur dir1 dir2 | ydiff # view diff between two dirs\n\n # View diff in a GitHub pull request, side by side\n curl https://github.com/ymattw/ydiff/pull/11.diff | ydiff -s\n\n # View a patch file in unified or context format, the latter depends on\n # command `filterdiff` from package `patchutils` which is available in\n # major Linux distros and MacPorts.\n #\n ydiff -s < foo.patch\n\nRedirect output to another patch file is safe:\n\n.. code-block:: bash\n\n svn diff -r PREV | ydiff -s > my.patch\n\nNotes\n-----\n\nYdiff has following known issues:\n\n- Does not recognize `normal` diff, and depends on ``filterdiff`` (patchutils)\n to read `context` diff\n- Side by side mode has alignment problem for wide chars\n- Terminal might be in a mess on exception (type ``reset`` can fix it)\n\nPull requests are very welcome, please make sure your changes can pass unit\ntests and regression tests by run ``make test`` (required tool *coverage* can\nbe installed with ``pip install coverage``). Also watch out `travis build`_\nafter push, make sure it passes as well.\n\n.. _`travis build`: https://travis-ci.org/ymattw/ydiff/pull_requests\n\nSee also\n--------\n\nI have another tool `coderev`_ which generates side-by-side diff pages for code\nreview from two given files or directories, I found it's not easy to extend to\nsupport git so invented `ydiff`. Idea of ansi color markup is also from\nproject `colordiff`_.\n\n.. _coderev: https://github.com/ymattw/coderev\n.. _colordiff: https://github.com/daveewart/colordiff\n\n.. vim:set ft=rst et sw=4 sts=4 tw=79:\n\nChange log\n==========\n\nVersion 1.1 (2018-06-05)\n\n - Rename from ``cdiff`` to ``ydiff`` to avoid binary name conflict on major\n distributions, ``CDIFF_OPTIONS`` still works but will be deprepated soon\n - New option ``--wrap`` to wrap long lines in side-by-side view\n\nVersion 1.0 (2016-12-31)\n\n - Use environment variable ``CDIFF_OPTIONS`` to hold default options\n\nVersion 0.9.8 (2016-01-16)\n\n - More robust parser to tolerate evil unified diff\n\nVersion 0.9.7 (2015-04-24)\n\n - Fix unexpected side-by-side output for diff of diff\n - Better color to work with solarized color scheme\n\nVersion 0.9.6 (2014-06-20)\n\n - Fix TypeError exception in auto width logic\n\nVersion 0.9.5 (2014-06-19)\n\n - Option ``--width 0`` now fits terminal size automatically\n - Enable smooth horizontal scrolling with less option ``--shift 1``\n\nVersion 0.9.4 (2014-06-04)\n\n - Respect the ``LESS`` environment variable\n - Support python 3.4\n - Fix curl options in document\n\nVersion 0.9.3 (2013-09-28)\n\n - Moved screenshots to 'gh-pages' branch\n - Handle all keyboard interrupts more completely\n - Explicitly set default encoding to utf-8\n - Fixed broken output diff when I/O with filterdiff in nonblocking mode\n\nVersion 0.9.2 (2013-06-21)\n\n - Enahanced option parser now pass unknown option to underneath revision\n control, user can use ``cdiff --cached``, ``cdiff -U5`` directly\n\nVersion 0.9.1 (2013-05-20)\n\n - Use ``--no-ext-diff`` to disable GIT_EXTERNAL_DIFF and diff.external which\n might break cdiff output\n\nVersion 0.9 (2013-03-23)\n\n - Supports reading context diff via ``filterdiff`` (patchutils)\n - Fixed a diff parser bug which misread git commit message as common line\n - Lots of code refactor\n\nVersion 0.8 (2013-03-13)\n\n - Parser is now robust enough to handle dangling headers and short patch\n - PEP8 (with minor own flavors) and other code lint\n - Change 'Development Status' to stable\n\nVersion 0.7.1 (2013-02-25)\n\n - Handle 'Binary files ... differ'\n - Document update for known issues\n\nVersion 0.7 (2013-02-23)\n\n - Support reading diff or log for given files/dirs in workspace\n - Support diff generated from ``diff -ru dir1 dir2``\n - Usage change: reading a patch and comparing two files need stdin redirect\n\nVersion 0.6 (2013-02-20)\n\n - A few performance tuning and code clean up\n - Add unit test cases with coverage 70%\n - Show merge history in svn log\n\nVersion 0.5.1 (2013-02-19)\n\n - Fixed incorrect yield on diff missing eof\n - Fixed a bug in diff format probe\n - Handle keyboard interrupt and large diffs in non-color mode\n - Code clean up\n\nVersion 0.5 (2013-02-18)\n\n - Support read output from ``svn diff --log`` and ``hg log -p``\n - Streamline reading large patch set\n - New ``--log (-l)`` option to read revision control diff log (thanks to\n `Steven Myint`_)\n\nVersion 0.4 (2013-02-16)\n\n - New option *-c WHEN* (*--color WHEN*) to support auto test\n - Auto regression test now on Travis\n\nVersion 0.3 (2013-02-07)\n\n - Support compare two files (wrapper of diff)\n\nVersion 0.2 (2013-02-06)\n\n - Move cdiff.py to top dir for better meta info management\n\nVersion 0.1 (2013-02-05)\n\n - New --version option\n - setup.py now read version from source code\n\nVersion 0.0.4 (2013-02-04)\n\n - Add CHANGES for history track and better versioning\n\nVersion 0.0.3 (2013-02-04)\n\n - Publish on PyPI, supports read patch from file, pipe and diff output from\n revision tools (thanks to `Steven Myint`_)\n\n.. _Steven Myint: https://github.com/myint\n\n.. vim:set ft=rst et sw=4 sts=4 tw=79:", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ymattw/ydiff", "keywords": "colored incremental side-by-side diff", "license": "BSD-3", "maintainer": "", "maintainer_email": "", "name": "ydiff", "package_url": "https://pypi.org/project/ydiff/", "platform": "", "project_url": "https://pypi.org/project/ydiff/", "project_urls": { "Homepage": "https://github.com/ymattw/ydiff" }, "release_url": "https://pypi.org/project/ydiff/1.1/", "requires_dist": null, "requires_python": "", "summary": "View colored, incremental diff in a workspace or from stdin, with side by side and auto pager support", "version": "1.1" }, "last_serial": 3932039, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "b8ef08b5fb5e77860922cbf96ad034a5", "sha256": "ce2e233e9d2994f825cb6a496af2a935053facb5b52a21b8daa485ae4fa0ac57" }, "downloads": -1, "filename": "ydiff-1.1.tar.gz", "has_sig": false, "md5_digest": "b8ef08b5fb5e77860922cbf96ad034a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36357, "upload_time": "2018-06-05T12:33:49", "url": "https://files.pythonhosted.org/packages/65/2c/4c160f6a3eaf5b38a0f04fc5321d0ada0fb2a00fb0aa8637e18cafd96653/ydiff-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b8ef08b5fb5e77860922cbf96ad034a5", "sha256": "ce2e233e9d2994f825cb6a496af2a935053facb5b52a21b8daa485ae4fa0ac57" }, "downloads": -1, "filename": "ydiff-1.1.tar.gz", "has_sig": false, "md5_digest": "b8ef08b5fb5e77860922cbf96ad034a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36357, "upload_time": "2018-06-05T12:33:49", "url": "https://files.pythonhosted.org/packages/65/2c/4c160f6a3eaf5b38a0f04fc5321d0ada0fb2a00fb0aa8637e18cafd96653/ydiff-1.1.tar.gz" } ] }