Metadata-Version: 1.1
Name: cdiff
Version: 1.0
Summary: View colored, incremental diff in a workspace or from stdin, with side by side and auto pager support
Home-page: https://github.com/ymattw/cdiff
Author: Matthew Wang
Author-email: mattwyl(@)gmail(.)com
License: BSD-3
Description: Cdiff
        =====
        
        .. image:: https://travis-ci.org/ymattw/cdiff.png?branch=master
           :target: https://travis-ci.org/ymattw/cdiff
           :alt: Build status
        
        Term based tool to view *colored*, *incremental* diff in a *Git/Mercurial/Svn*
        workspace or from stdin, with *side by side* and *auto pager* support. Requires
        python (>= 2.5.0) and ``less``.
        
        .. image:: https://raw.github.com/ymattw/cdiff/gh-pages/img/default.png
           :alt: default
           :align: center
        
        .. image:: https://raw.github.com/ymattw/cdiff/gh-pages/img/side-by-side.png
           :alt: side by side
           :align: center
           :width: 900 px
        
        Installation
        ------------
        
        Install with pip
        ~~~~~~~~~~~~~~~~
        
        Cdiff is already listed on `PyPI`_, you can install with ``pip`` if you have
        the tool.
        
        .. _PyPI: http://pypi.python.org/pypi/cdiff
        
        .. code-block:: bash
        
            pip install --upgrade cdiff
        
        Install with setup.py
        ~~~~~~~~~~~~~~~~~~~~~
        
        You can also run the setup.py from the source if you don't have ``pip``.
        
        .. code-block:: bash
        
            git clone https://github.com/ymattw/cdiff.git
            cd cdiff
            ./setup.py install
        
        Install with Homebrew
        ~~~~~~~~~~~~~~~~~~~~~
        
        You can also install with Homebrew on Mac. (Thanks to `@josa42`_,
        `@bfontaine`_, `@hivehand`_ and `@nijikon`_ for contributing to the Homebrew
        `Formula`_).
        
        .. _`@josa42`: https://github.com/josa42
        .. _`@bfontaine`: https://github.com/bfontaine
        .. _`@hivehand`: https://github.com/hivehand
        .. _`@nijikon`: https://github.com/nijikon
        .. _`Formula`: https://github.com/Homebrew/homebrew-core/blob/master/Formula/cdiff.rb
        
        .. code-block:: bash
        
            brew install cdiff
        
        Download directly
        ~~~~~~~~~~~~~~~~~
        
        Just save `cdiff.py`_ to whatever directory which is in your ``$PATH``, for
        example, ``$HOME/bin`` is in my ``$PATH``, so I save the script there and name
        as ``cdiff``.
        
        .. _`cdiff.py`: https://raw.github.com/ymattw/cdiff/master/cdiff.py
        
        .. code-block:: bash
        
            curl -ksSL https://raw.github.com/ymattw/cdiff/master/cdiff.py > ~/bin/cdiff
            chmod +x ~/bin/cdiff
        
        Usage
        -----
        
        Type ``cdiff -h`` to show usage::
        
            $ cdiff -h
            Usage: cdiff [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
              -w N, --width=N     set text width for side-by-side mode, 0 for auto
                                  detection, default is 80
              -l, --log           show log with changes from revision control
              -c M, --color=M     colorize mode 'auto' (default), 'always', or 'never'
        
              Note:
                Option parser will stop on first unknown option and pass them down to
                underneath revision control. Environment variable CDIFF_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/Svn* workspace (output
        from e.g. ``git diff``, ``svn diff``):
        
        .. code-block:: bash
        
            cd proj-workspace
            cdiff                       # view colored incremental diff
            cdiff -s                    # view side by side, use default text width 80
            cdiff -s -w 90              # use text width 90 other than default 80
            cdiff -s -w 0               # auto set text width based on terminal size
            cdiff -s file1 dir2         # view modification of given files/dirs only
            cdiff -s -w90 -- -U10       # pass '-U10' to underneath revision diff tool
            cdiff -s -w90 -U10          # '--' is optional as it's unknown to cdiff
            cdiff -s --cached           # show git staged diff (git diff --cached)
            cdiff -s -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
            cdiff -l                    # read log along with changes
            cdiff -ls                   # equivalent to cdiff -l -s, view side by side
            cdiff -ls -w90              # set text width 90 as well
            cdiff -ls file1 dir2        # see log with changes of given files/dirs only
        
        Environment variable ``CDIFF_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 CDIFF_OPTIONS='-s -w0'
            cdiff foo                   # equivalent to "cdiff -s -w0 foo"
        
        If you feel more comfortable with a command such as ``git cdiff`` to trigger
        the cdiff command, you may symlink the executable to one named ``git-cdiff``
        as follows:
        
        .. code-block:: bash
        
            cdiff_dir=$(dirname $(which cdiff))
            ln -s "${cdiff_dir}/cdiff" "${cdiff_dir}/git-cdiff"
        
        Pipe in a diff:
        
        .. code-block:: bash
        
            git log -p -2 | cdiff       # view git log with changes of last 2 commits
            git show 15bfa | cdiff -s   # view a given git commit, side by side
            svn diff -r1234 | cdiff -s  # view svn diff comparing to given revision
            diff -u file1 file2 | cdiff # view diff between two files (note the '-u')
            diff -ur dir1 dir2 | cdiff  # view diff between two dirs
        
            # View diff in a GitHub pull request, side by side
            curl https://github.com/ymattw/cdiff/pull/11.diff | cdiff -s
        
            # View a patch file in unified or context format, the latter depends on
            # command `filterdiff` from package `patchutils` which is available in
            # major Linux distros and MacPorts.
            #
            cdiff -s < foo.patch
        
        Redirect output to another patch file is safe:
        
        .. code-block:: bash
        
            svn diff -r PREV | cdiff -s > my.patch
        
        Notes
        -----
        
        Cdiff has following known issues:
        
        - Does not recognize `normal` diff, and depends on ``filterdiff`` (patchutils)
          to read `context` diff
        - Side by side mode has alignment problem for wide chars
        - Terminal might be in a mess on exception (type ``reset`` can fix it)
        
        Pull requests are very welcome, please make sure your changes can pass unit
        tests and regression tests by run ``make test`` (required tool *coverage* can
        be installed with ``pip install coverage``).  Also watch out `travis build`_
        after push, make sure it passes as well.
        
        .. _`travis build`: https://travis-ci.org/ymattw/cdiff/pull_requests
        
        See also
        --------
        
        I have another tool `coderev`_ which generates side-by-side diff pages for code
        review from two given files or directories, I found it's not easy to extend to
        support git so invented `cdiff`.  Idea of ansi color markup is also from
        project `colordiff`_.
        
        .. _coderev: https://github.com/ymattw/coderev
        .. _colordiff: https://github.com/daveewart/colordiff
        
        .. vim:set ft=rst et sw=4 sts=4 tw=79:
        
        Change log
        ==========
        
        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:
        
Keywords: colored incremental side-by-side diff
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: BSD License
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
