ydiff


Nameydiff JSON
Version 1.4.2 PyPI version JSON
download
home_pagehttps://github.com/ymattw/ydiff
SummaryView colored, incremental diff in a workspace or from stdin, in side-by-side or unified moded, and auto paged
upload_time2024-11-18 11:08:11
maintainerNone
docs_urlNone
authorMatt Wang
requires_python>=3.3
licenseBSD-3
keywords colored incremental side-by-side diff
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Ydiff
=====

.. image:: https://github.com/ymattw/ydiff/actions/workflows/test.yml/badge.svg
   :alt: Tests status
   :target: https://github.com/ymattw/ydiff/actions

Ydiff is a terminal-based tool to view *colored*, *incremental* diffs in
a version-controlled workspace or from stdin, in *side-by-side* (similar to
``diff -y``) or unified mode, and *auto-paged*. It only requires Python >= 3.3
*without external dependencies* and ``less`` as a pager.

The diffs in side-by-side mode appear below. See also the `screenshots`_ of the
unified mode.

.. _`screenshots`: https://github.com/ymattw/ydiff/tree/26857b8/img

*Theme "default" on a dark terminal background:*

.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/darkbg-side-by-side-default.png
   :alt: side by side, theme 'default' on a dark background
   :align: center
   :height: 300 px

*Theme "default" on a light terminal background:*

.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/lightbg-side-by-side-default.png
   :alt: side by side, theme 'default' on a light background
   :align: center
   :height: 300 px

*Theme "dark" on a dark terminal background:*

.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/darkbg-side-by-side-dark.png
   :alt: side by side, theme 'dark' on a dark background
   :align: center
   :height: 300 px

*Theme "light" on a light terminal background:*

.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/lightbg-side-by-side-light.png
   :alt: side by side, theme 'light' on a light background
   :align: center
   :height: 300 px

Installation
------------

Ydiff only depends on Python built-in libraries, so you can just download the
source and run without worrying about any installation. Git `tagged`_ revisions
will be packaged and uploaded to `PyPI`_ timely, however, packages hosted
elsewhere are not (please note they are not managed by the author `@ymattw`_).

.. _`tagged`: https://github.com/ymattw/ydiff/tags
.. _`PyPI`: http://pypi.python.org/pypi/ydiff
.. _`@ymattw`: https://github.com/ymattw

To run from source directly, just save `ydiff.py`_ as ``ydiff`` to whatever
directory which is in your ``$PATH``, for example, ``$HOME/bin``:

.. _`ydiff.py`: https://raw.github.com/ymattw/ydiff/master/ydiff.py

.. code-block:: bash

    curl -L https://raw.github.com/ymattw/ydiff/master/ydiff.py > ~/bin/ydiff
    chmod +x ~/bin/ydiff

To install from `PyPI`_:

.. code-block:: bash

    pip install --upgrade ydiff

To install with Homebrew (`Formula`_) on macOS:

.. _`Formula`: https://github.com/Homebrew/homebrew-core/blob/master/Formula/y/ydiff.rb

.. code-block:: bash

    brew install ydiff

To install on Fedora:

.. code-block:: bash

    dnf install ydiff

To install on FreeBSD:

.. code-block:: bash

    pkg install ydiff

Usage
-----

Type ``ydiff -h`` to show usage::

    $ ydiff -h
    Usage: ydiff [options] [file|dir ...]

    View colored, incremental diff in a workspace or from stdin, with side by side
    and auto pager support

    Options:
      --version             show program's version number and exit
      -h, --help            show this help message and exit
      -s, --side-by-side    enable side-by-side mode (default True; DEPRECATED)
      -u, --unified         show diff in unified mode (disables side-by-side mode)
      -w N, --width=N       set text width for side-by-side mode, 0 (default) for
                            auto detection and fallback to 80 when not possible
      -l, --log             show log with changes from revision control
      -c WHEN, --color=WHEN
                            colorize mode 'auto' (default), 'always', or 'never'
      -t N, --tab-width=N   convert tab chars to this many spaces (default: 8)
      --wrap                wrap long lines in side-by-side mode (default True;
                            DEPRECATED)
      --nowrap, --no-wrap   do not wrap long lines in side-by-side mode
      -p PAGER, --pager=PAGER
                            pager application to feed output to, default is 'less'
      -o OPT, --pager-options=OPT
                            options to supply to pager application
      --theme=THEME         option to pick a color theme (one of default, dark,
                            light)

      Note:
        Option parser will stop on first unknown option and pass them down to
        underneath revision control. Environment variable YDIFF_OPTIONS may be
        used to specify default options that will be placed at the beginning
        of the argument list.

Read diff from local modification in a *Git/Mercurial/Perforce/Svn* workspace
(output from e.g. ``git diff``, ``svn diff``):

.. code-block:: bash

    cd proj-workspace
    ydiff                       # view colored side by side diff, auto set text
                                # width based on terminal size
    ydiff -u                    # view colored incremental diff in unified mode
    ydiff -w 90                 # use text width 90, wrap long lines
    ydiff --no-wrap             # auto set text width but do not wrap long lines
    ydiff file1 dir2            # view modification of given files/dirs only
    ydiff -w90 -- -U10          # pass '-U10' to underneath revision diff tool
    ydiff -w90 -U10             # '--' is optional as it's unknown to ydiff
    ydiff --cached              # show git staged diff (git diff --cached)
    ydiff -r1234                # show svn diff to revision 1234

Read log with changes in a *Git/Mercurial/Svn* workspace (output from e.g.
``git log -p``, ``svn log --diff``), note *--diff* option is new in svn 1.7.0:

.. code-block:: bash

    cd proj-workspace
    ydiff -l                    # read log along with changes, side by side
    ydiff -lu                   # equivalent to ydiff -l -u, unified mode
    ydiff -l -w90 --no-wrap     # set text width 90 and disable wrapping
    ydiff -l file1 dir2         # see log with changes of given files/dirs only

Utilize a specific pager application:

.. code-block:: bash

    ydiff -p more                   # use "more" as a pager
    ydiff -p cat                    # when neither less nor more is avilable
    ydiff -o "-FRSX --shift 2"      # custmized option (pager defaults to less)

Pipe in a diff:

.. code-block:: bash

    git log -p -2 | ydiff       # view git log with changes of last 2 commits
    git show 15bfa | ydiff      # view a given git commit, side by side
    svn diff -r1234 | ydiff     # view svn diff comparing to given revision
    diff -u file1 file2 | ydiff # view diff between two files (note the '-u')
    diff -ur dir1 dir2 | ydiff  # view diff between two dirs

    # View diff in a GitHub pull request, side by side
    curl https://github.com/ymattw/ydiff/pull/11.diff | ydiff

    # View a patch file in colored unified format.
    ydiff -u < foo.patch

Redirect output to another patch file is safe even without ``-u``:

.. code-block:: bash

    svn diff -r PREV | ydiff > my.patch

Notes
-----

1. Ydiff only supports diffs in `Unified Format`_. Diffs in other format may be
   converted to Unified Format via tool ``filterdiff`` (usually offered by
   package ``patchutils``.)

   .. _`Unified Format`: https://en.wikipedia.org/wiki/Diff#Unified_format

2. Environment variable ``YDIFF_OPTIONS`` may be used to specify default
   options that will be placed at the beginning of the argument list, for
   example:

   .. code-block:: bash

    export YDIFF_OPTIONS='-w100'
    ydiff foo  # equivalent to "ydiff -w100 foo"

3. If you feel more comfortable with a command such as ``git d`` to trigger the
   ydiff command, you may symlink the executable to one named ``git-d``, or
   configure an alias:

   .. code-block:: bash

    # Create a symlink git-d -> ydiff
    D=$(dirname $(which ydiff)); ln -s ydiff $D/git-d

    # Or configure an alias
    git config --global alias.d '!ydiff'

Known issues
------------

- Wide characters may cause alignment problem in side-by-side mode.
- Terminal might be in a mess on exception (type ``reset`` can fix it).

.. vim:set ft=rst et sw=4 sts=4 tw=79:

Change log
==========

Version 1.4.2 (2024-11-18)

    - Compatibility Fix: Ensure ydiff works properly with Python 3.3 and later.

Version 1.4.1 (2024-11-13)

  - Fix setup() dependency: MANIFEST.in is still required for Python < 3.8 to
    pack data files

Version 1.4 (2024-11-13) *Revoked due to #123*

  - Fine-grained, word-level diff for change blocks
  - New ``--theme`` option for selecting different themes
  - Options ``--side-by-side``, ``--width 0``, and ``--wrap`` become default
    (use ``--unified``/``--nowrap`` for legacy behavior)
  - Python 2, 3.1, 3.2 support is officially dropped

Version 1.3 (2024-04-02)

  - Dropped context diff support
  - Handle East Asian wide characters (thanks to @roy2220)
  - Fix SIGPIPE issue on Windows (unofficial support, thanks to @kingsamchen)
  - Bump Python requirement to >=2.6 (Python 2 support is no longer tested)

Version 1.2 (2020-08-08)

  - Support perforce workspaces
  - Support pager customization via --pager and --pager_options
  - Support running on Windows (requires ``less`` which is offered by git-bash)
  - Fix a bug where reading stdin does not work outside a CVS workspace
  - Fix tab expansion, expands to the next stop modulo tab width
  - Performance improvement

Version 1.1 (2018-06-05)

  - Rename from ``cdiff`` to ``ydiff`` to avoid binary name conflict on major
    distributions, ``CDIFF_OPTIONS`` still works but will be deprepated soon
  - New option ``--wrap`` to wrap long lines in side-by-side view

Version 1.0 (2016-12-31)

  - Use environment variable ``CDIFF_OPTIONS`` to hold default options

Version 0.9.8 (2016-01-16)

  - More robust parser to tolerate evil unified diff

Version 0.9.7 (2015-04-24)

  - Fix unexpected side-by-side output for diff of diff
  - Better color to work with solarized color scheme

Version 0.9.6 (2014-06-20)

  - Fix TypeError exception in auto width logic

Version 0.9.5 (2014-06-19)

  - Option ``--width 0`` now fits terminal size automatically
  - Enable smooth horizontal scrolling with less option ``--shift 1``

Version 0.9.4 (2014-06-04)

  - Respect the ``LESS`` environment variable
  - Support python 3.4
  - Fix curl options in document

Version 0.9.3 (2013-09-28)

  - Moved screenshots to 'gh-pages' branch
  - Handle all keyboard interrupts more completely
  - Explicitly set default encoding to utf-8
  - Fixed broken output diff when I/O with filterdiff in nonblocking mode

Version 0.9.2 (2013-06-21)

  - Enahanced option parser now pass unknown option to underneath revision
    control, user can use ``cdiff --cached``, ``cdiff -U5`` directly

Version 0.9.1 (2013-05-20)

  - Use ``--no-ext-diff`` to disable GIT_EXTERNAL_DIFF and diff.external which
    might break cdiff output

Version 0.9 (2013-03-23)

  - Supports reading context diff via ``filterdiff`` (patchutils)
  - Fixed a diff parser bug which misread git commit message as common line
  - Lots of code refactor

Version 0.8 (2013-03-13)

  - Parser is now robust enough to handle dangling headers and short patch
  - PEP8 (with minor own flavors) and other code lint
  - Change 'Development Status' to stable

Version 0.7.1 (2013-02-25)

  - Handle 'Binary files ... differ'
  - Document update for known issues

Version 0.7 (2013-02-23)

  - Support reading diff or log for given files/dirs in workspace
  - Support diff generated from ``diff -ru dir1 dir2``
  - Usage change: reading a patch and comparing two files need stdin redirect

Version 0.6 (2013-02-20)

  - A few performance tuning and code clean up
  - Add unit test cases with coverage 70%
  - Show merge history in svn log

Version 0.5.1 (2013-02-19)

  - Fixed incorrect yield on diff missing eof
  - Fixed a bug in diff format probe
  - Handle keyboard interrupt and large diffs in non-color mode
  - Code clean up

Version 0.5 (2013-02-18)

  - Support read output from ``svn diff --log`` and ``hg log -p``
  - Streamline reading large patch set
  - New ``--log (-l)`` option to read revision control diff log (thanks to
    `Steven Myint`_)

Version 0.4 (2013-02-16)

  - New option *-c WHEN* (*--color WHEN*) to support auto test
  - Auto regression test now on Travis

Version 0.3 (2013-02-07)

  - Support compare two files (wrapper of diff)

Version 0.2 (2013-02-06)

  - Move cdiff.py to top dir for better meta info management

Version 0.1 (2013-02-05)

  - New --version option
  - setup.py now read version from source code

Version 0.0.4 (2013-02-04)

  - Add CHANGES for history track and better versioning

Version 0.0.3 (2013-02-04)

  - Publish on PyPI, supports read patch from file, pipe and diff output from
    revision tools (thanks to `Steven Myint`_)

.. _Steven Myint: https://github.com/myint

.. vim:set ft=rst et sw=4 sts=4 tw=79:



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ymattw/ydiff",
    "name": "ydiff",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.3",
    "maintainer_email": null,
    "keywords": "colored incremental side-by-side diff",
    "author": "Matt Wang",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/63/d4/578eb2bf5ba1ce874a854d0f926fdce8c413ba29c973e53ea60b48fdced6/ydiff-1.4.2.tar.gz",
    "platform": null,
    "description": "Ydiff\n=====\n\n.. image:: https://github.com/ymattw/ydiff/actions/workflows/test.yml/badge.svg\n   :alt: Tests status\n   :target: https://github.com/ymattw/ydiff/actions\n\nYdiff is a terminal-based tool to view *colored*, *incremental* diffs in\na version-controlled workspace or from stdin, in *side-by-side* (similar to\n``diff -y``) or unified mode, and *auto-paged*. It only requires Python >= 3.3\n*without external dependencies* and ``less`` as a pager.\n\nThe diffs in side-by-side mode appear below. See also the `screenshots`_ of the\nunified mode.\n\n.. _`screenshots`: https://github.com/ymattw/ydiff/tree/26857b8/img\n\n*Theme \"default\" on a dark terminal background:*\n\n.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/darkbg-side-by-side-default.png\n   :alt: side by side, theme 'default' on a dark background\n   :align: center\n   :height: 300 px\n\n*Theme \"default\" on a light terminal background:*\n\n.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/lightbg-side-by-side-default.png\n   :alt: side by side, theme 'default' on a light background\n   :align: center\n   :height: 300 px\n\n*Theme \"dark\" on a dark terminal background:*\n\n.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/darkbg-side-by-side-dark.png\n   :alt: side by side, theme 'dark' on a dark background\n   :align: center\n   :height: 300 px\n\n*Theme \"light\" on a light terminal background:*\n\n.. image:: https://raw.githubusercontent.com/ymattw/ydiff/26857b8/img/lightbg-side-by-side-light.png\n   :alt: side by side, theme 'light' on a light background\n   :align: center\n   :height: 300 px\n\nInstallation\n------------\n\nYdiff only depends on Python built-in libraries, so you can just download the\nsource and run without worrying about any installation. Git `tagged`_ revisions\nwill be packaged and uploaded to `PyPI`_ timely, however, packages hosted\nelsewhere are not (please note they are not managed by the author `@ymattw`_).\n\n.. _`tagged`: https://github.com/ymattw/ydiff/tags\n.. _`PyPI`: http://pypi.python.org/pypi/ydiff\n.. _`@ymattw`: https://github.com/ymattw\n\nTo run from source directly, just save `ydiff.py`_ as ``ydiff`` to whatever\ndirectory which is in your ``$PATH``, for example, ``$HOME/bin``:\n\n.. _`ydiff.py`: https://raw.github.com/ymattw/ydiff/master/ydiff.py\n\n.. code-block:: bash\n\n    curl -L https://raw.github.com/ymattw/ydiff/master/ydiff.py > ~/bin/ydiff\n    chmod +x ~/bin/ydiff\n\nTo install from `PyPI`_:\n\n.. code-block:: bash\n\n    pip install --upgrade ydiff\n\nTo install with Homebrew (`Formula`_) on macOS:\n\n.. _`Formula`: https://github.com/Homebrew/homebrew-core/blob/master/Formula/y/ydiff.rb\n\n.. code-block:: bash\n\n    brew install ydiff\n\nTo install on Fedora:\n\n.. code-block:: bash\n\n    dnf install ydiff\n\nTo install on FreeBSD:\n\n.. code-block:: bash\n\n    pkg install 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 (default True; DEPRECATED)\n      -u, --unified         show diff in unified mode (disables side-by-side mode)\n      -w N, --width=N       set text width for side-by-side mode, 0 (default) for\n                            auto detection and fallback to 80 when not possible\n      -l, --log             show log with changes from revision control\n      -c WHEN, --color=WHEN\n                            colorize mode 'auto' (default), 'always', or 'never'\n      -t N, --tab-width=N   convert tab chars to this many spaces (default: 8)\n      --wrap                wrap long lines in side-by-side mode (default True;\n                            DEPRECATED)\n      --nowrap, --no-wrap   do not wrap long lines in side-by-side mode\n      -p PAGER, --pager=PAGER\n                            pager application to feed output to, default is 'less'\n      -o OPT, --pager-options=OPT\n                            options to supply to pager application\n      --theme=THEME         option to pick a color theme (one of default, dark,\n                            light)\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/Perforce/Svn* workspace\n(output from e.g. ``git diff``, ``svn diff``):\n\n.. code-block:: bash\n\n    cd proj-workspace\n    ydiff                       # view colored side by side diff, auto set text\n                                # width based on terminal size\n    ydiff -u                    # view colored incremental diff in unified mode\n    ydiff -w 90                 # use text width 90, wrap long lines\n    ydiff --no-wrap             # auto set text width but do not wrap long lines\n    ydiff file1 dir2            # view modification of given files/dirs only\n    ydiff -w90 -- -U10          # pass '-U10' to underneath revision diff tool\n    ydiff -w90 -U10             # '--' is optional as it's unknown to ydiff\n    ydiff --cached              # show git staged diff (git diff --cached)\n    ydiff -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, side by side\n    ydiff -lu                   # equivalent to ydiff -l -u, unified mode\n    ydiff -l -w90 --no-wrap     # set text width 90 and disable wrapping\n    ydiff -l file1 dir2         # see log with changes of given files/dirs only\n\nUtilize a specific pager application:\n\n.. code-block:: bash\n\n    ydiff -p more                   # use \"more\" as a pager\n    ydiff -p cat                    # when neither less nor more is avilable\n    ydiff -o \"-FRSX --shift 2\"      # custmized option (pager defaults to less)\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      # view a given git commit, side by side\n    svn diff -r1234 | ydiff     # 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\n\n    # View a patch file in colored unified format.\n    ydiff -u < foo.patch\n\nRedirect output to another patch file is safe even without ``-u``:\n\n.. code-block:: bash\n\n    svn diff -r PREV | ydiff > my.patch\n\nNotes\n-----\n\n1. Ydiff only supports diffs in `Unified Format`_. Diffs in other format may be\n   converted to Unified Format via tool ``filterdiff`` (usually offered by\n   package ``patchutils``.)\n\n   .. _`Unified Format`: https://en.wikipedia.org/wiki/Diff#Unified_format\n\n2. Environment variable ``YDIFF_OPTIONS`` may be used to specify default\n   options that will be placed at the beginning of the argument list, for\n   example:\n\n   .. code-block:: bash\n\n    export YDIFF_OPTIONS='-w100'\n    ydiff foo  # equivalent to \"ydiff -w100 foo\"\n\n3. If you feel more comfortable with a command such as ``git d`` to trigger the\n   ydiff command, you may symlink the executable to one named ``git-d``, or\n   configure an alias:\n\n   .. code-block:: bash\n\n    # Create a symlink git-d -> ydiff\n    D=$(dirname $(which ydiff)); ln -s ydiff $D/git-d\n\n    # Or configure an alias\n    git config --global alias.d '!ydiff'\n\nKnown issues\n------------\n\n- Wide characters may cause alignment problem in side-by-side mode.\n- Terminal might be in a mess on exception (type ``reset`` can fix it).\n\n.. vim:set ft=rst et sw=4 sts=4 tw=79:\n\nChange log\n==========\n\nVersion 1.4.2 (2024-11-18)\n\n    - Compatibility Fix: Ensure ydiff works properly with Python 3.3 and later.\n\nVersion 1.4.1 (2024-11-13)\n\n  - Fix setup() dependency: MANIFEST.in is still required for Python < 3.8 to\n    pack data files\n\nVersion 1.4 (2024-11-13) *Revoked due to #123*\n\n  - Fine-grained, word-level diff for change blocks\n  - New ``--theme`` option for selecting different themes\n  - Options ``--side-by-side``, ``--width 0``, and ``--wrap`` become default\n    (use ``--unified``/``--nowrap`` for legacy behavior)\n  - Python 2, 3.1, 3.2 support is officially dropped\n\nVersion 1.3 (2024-04-02)\n\n  - Dropped context diff support\n  - Handle East Asian wide characters (thanks to @roy2220)\n  - Fix SIGPIPE issue on Windows (unofficial support, thanks to @kingsamchen)\n  - Bump Python requirement to >=2.6 (Python 2 support is no longer tested)\n\nVersion 1.2 (2020-08-08)\n\n  - Support perforce workspaces\n  - Support pager customization via --pager and --pager_options\n  - Support running on Windows (requires ``less`` which is offered by git-bash)\n  - Fix a bug where reading stdin does not work outside a CVS workspace\n  - Fix tab expansion, expands to the next stop modulo tab width\n  - Performance improvement\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:\n\n\n",
    "bugtrack_url": null,
    "license": "BSD-3",
    "summary": "View colored, incremental diff in a workspace or from stdin, in side-by-side or unified moded, and auto paged",
    "version": "1.4.2",
    "project_urls": {
        "Homepage": "https://github.com/ymattw/ydiff"
    },
    "split_keywords": [
        "colored",
        "incremental",
        "side-by-side",
        "diff"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "63d4578eb2bf5ba1ce874a854d0f926fdce8c413ba29c973e53ea60b48fdced6",
                "md5": "ed151aae80cfeb1c6b5269f00429145c",
                "sha256": "369be623dcde7954d98973fb9db1780d64f0353982bf3ac85818f3d62ff452b0"
            },
            "downloads": -1,
            "filename": "ydiff-1.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ed151aae80cfeb1c6b5269f00429145c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.3",
            "size": 16207,
            "upload_time": "2024-11-18T11:08:11",
            "upload_time_iso_8601": "2024-11-18T11:08:11.965442Z",
            "url": "https://files.pythonhosted.org/packages/63/d4/578eb2bf5ba1ce874a854d0f926fdce8c413ba29c973e53ea60b48fdced6/ydiff-1.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-18 11:08:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ymattw",
    "github_project": "ydiff",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ydiff"
}
        
Elapsed time: 4.76604s