contrib/vim/patchreview.txt
author Manuel Jacob <me@manueljacob.de>
Mon, 11 Jul 2022 01:51:20 +0200
branchstable
changeset 49378 094a5fa3cf52
parent 26098 ce26928cbe41
permissions -rw-r--r--
procutil: make stream detection in make_line_buffered more correct and strict In make_line_buffered(), we don’t want to wrap the stream if we know that lines get flushed to the underlying raw stream already. Previously, the heuristic was too optimistic. It assumed that any stream which is not an instance of io.BufferedIOBase doesn’t need wrapping. However, there are buffered streams that aren’t instances of io.BufferedIOBase, like Mercurial’s own winstdout. The new logic is different in two ways: First, only for the check, if unwraps any combination of WriteAllWrapper and winstdout. Second, it skips wrapping the stream only if it is an instance of io.RawIOBase (or already wrapped). If it is an instance of io.BufferedIOBase, it gets wrapped. In any other case, the function raises an exception. This ensures that, if an unknown stream is passed or we add another wrapper in the future, we don’t wrap the stream if it’s already line buffered or not wrap the stream if it’s not line buffered. In fact, this was already helpful during development of this change. Without it, I possibly would have forgot that WriteAllWrapper needs to be ignored for the check, leading to unnecessary wrapping if stdout is unbuffered. The alternative would have been to always wrap unknown streams. However, I don’t think that anyone would benefit from being less strict. We can expect streams from the standard library to be subclassing either io.RawIOBase or io.BufferedIOBase, so running Mercurial in the standard way should not regress by this change. Py2exe might replace sys.stdout and sys.stderr, but that currently breaks Mercurial anyway and also these streams don’t claim to be interactive, so this function is not called for them.

*patchreview.txt* Vim global plugin for doing single, multi-patch or diff code reviews
                  Version  v0.2.2 (for Vim version 7.0 or higher)

            Author: Manpreet Singh < junkblocker@yahoo.com >
            Copyright (C) 2006-2010 by Manpreet Singh
            License : This file is placed in the public domain.

=============================================================================

CONTENTS	                 *patchreview* *diffreview* *patchreview-contents*

  1. Contents.........................................: |patchreview-contents|
  2. Introduction.....................................: |patchreview-intro|
  3. PatchReview options..............................: |patchreview-options|
  4. PatchReview Usage................................: |patchreview-usage|
     4.1 DiffReview Usage.............................: |:DiffReview|
     4.2 PatchReview Usage............................: |:PatchReview|

=============================================================================

PatchReview Introduction                                  *patchreview-intro*

The Patch Review plugin allows easy single or multipatch code or diff reviews.

It opens each affected file in the patch or in a workspace diff in a diff view
in a separate tab.

VIM provides the |:diffpatch| and related commands to do single file reviews
but can not handle patch files containing multiple patches as is common with
software development projects. This plugin provides that missing
functionality.

It also improves on |:diffpatch|'s behavior of creating the patched files in
the same directory as original file which can lead to project workspace
pollution.

It does automatic diff generation for various version control systems by
running their diff command.

=============================================================================

PatchReview Options                                     *patchreview-options*

  g:patchreview_patch = {string}
      Optional path to patch binary. PatchReview tries to locate patch on
      system path automatically. If the binary is not on system path, this
      option tell PatchReview the full path to the binary.  This option, if
      specified, overrides the default patch binary on the path.

    examples:
        (On Windows with Cygwin) >
           let g:patchreview_patch = 'c:\\cygwin\\bin\\patch.exe'
<
        (On *nix systems) >
           let g:patchreview_patch = '/usr/bin/gpatch'
<

  g:patchreview_filterdiff = {string}
      Optional path to filterdiff binary. PatchReview tries to locate
      filterdiff on system path automatically. If the binary is not on system
      path, this option tell PatchReview the full path to the binary.  This
      option, if specified, overrides the default filterdiff binary on the
      path.

     examples:
        (On Windows with Cygwin)
>
           let g:patchreview_filterdiff = 'c:\\cygwin\\bin\\filterdiff.exe'
<
        (On *nix systems)
>
           let g:patchreview_filterdiff = '/usr/bin/filterdiff'
<
=============================================================================

PatchReview Usage                                          *patchreview-usage*
                                                                *:DiffReview*

  :DiffReview

    Perform a diff review in the current directory under version control.
    Currently supports Mercurial (hg), Subversion (svn), CVS, Bazaar (bzr) and
    Monotone.

                                                                *:PatchReview*

  :PatchReview patchfile_path [optional_source_directory]

    Perform a patch review in the current directory based on the supplied
    patchfile_path. If optional_source_directory is specified, patchreview is
    done on that directory. Otherwise, the current directory is assumed to be
    the source directory.

    Only supports context or unified format patches.

------------------------------------------------------------------------------
 vim: ft=help:ts=2:sts=2:sw=2:tw=78:norl: