Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Jun 16, 2014
  1. Merge branch 'rt/bash-completion'

    Add bash completion for git-imerge.
Commits on May 30, 2014
  1. Merge branch 'exit-code'

    Make subcommands "merge" and "rebase" behave like the corresponding
    git commands when there is nothing to do.
  2. Let NothingToDoError construct its own error message.

    If needed, we could in the future provide access to `src_tip` and
    `dst_tip` as NothingToDoError class attributes.
  3. Merge branch 'subparser-simplification'

    Extract functions to help initialize subcommand parsers with less
    duplicated code.
Commits on May 9, 2014
  1. Get git-imerge to pass pep8 checks

    pep8 was run with options `--max-line-length=99 --hang-closing`.
Commits on May 7, 2014
  1. Merge branch 'issue-62'

    Correctly encode strings that are to be written to the environment.
    This fixes #62.
Commits on Apr 8, 2014
  1. get_author_info(): Encode using PREFERRED_ENCODING rather than str()

    Our version of check_output() returns Unicode strings.
    For Python 3.x, os.environ works with Unicode strings, so everything
    should be OK.
    But for Python 2.x, os.environ works with byte strings, so we have to
    encode the output of check_output() to bytes.  str() can do the job
    only for ASCII characters.  For non-ASCII, we need
    So, add a function env_encode() that does this encoding.  Include two
    versions: one for Python 2.x and one for 3.x.  Change
    get_author_info() to use this encoding function instead of str().
    This should fix issue #62.
Commits on Mar 1, 2014
  1. Merge branch 'remove-redundant-test-merges'

    Graham Gyatt <> reported a failure that was apparently
    caused by executing the same test merge twice with inconsistent
    This merges in a few changes that avoid the problem by not repeating
    test merges redundantly, and thus never getting inconsistent answers.
  2. MergeFrontier.compute_by_bisection(): Avoid redundant test merge.

    If i2 - 1 is in row 1, then there is no reason to do a test merge in
    row 1 *again*.
    The redundant testing could have probably caused bugs like the one
    described in the last commit.
  3. MergeFrontier.compute_by_bisection(): Avoid redundant test merge.

    If i1 is in the last column, then there is no reason to do a test
    merge in the last column *again*.
    This was causing an actual failure for a user when the first test
    merge succeeded but the second one failed.  This change helps prevent
    that error by using the cowardly way of always getting consistent
    answers: don't ask the same question more than once.
  4. MergeFrontier.compute_by_bisection(): Tighten bisect lower bound

    Tighten up the lower bound for the first bisection done in
    MergeFrontier.compute_by_bisection().  Since block.is_mergeable(1, 1)
    was just called successfully a few lines earlier, we know that the
    first unmergeable commit must have i2 >= 2.
Commits on Feb 23, 2014
  1. Fix whitespace in Makefile.

Commits on Feb 7, 2014
  1. Merge pull request #48 from myint/clean

    Factor out common code (without Travis CI)
Commits on Feb 6, 2014
  1. Merge pull request #46 from KindDragon/patch-1

    Only store strings in the environment.
Commits on Feb 5, 2014
  1. Allow slashes in imerge names.

    It's probably possible to get into trouble by constructing overlapping
    namespaces, but it otherwise seems to work.
Commits on Feb 4, 2014
  1. README.rst: Fix the minimum Python version.

    Steven Myint <> pointed out that according to the
    NEWS file the "except T as E" syntax was added in Python 2.6, not
    Python 2.6.1 (when it was added to the language reference).
  2. Document the commands "git imerge merge" and "git-imerge rebase".

    Restructure README.txt and the in-program help to emphasize these new
    commands as simple ways to start an incremental merge.  Also simplify
    the in-program help considerably.
  3. Merge branch 'python3'

    Allow git-imerge to run under Python 3.x, version 3.3 and greater.  It
    should continue to work under Python 2.x, version 2.6.1 or later.
  4. Remove backwards-compatibility code.

    Now that we require minimum Python version 2.6.1, we can rely on
    CalledProcessError and check_call() being present in the subprocess
Commits on Feb 3, 2014
  1. Merge branch 'python3-preliminaries'

    Make some changes to move in the direction of Python 3 compatibility,
    without yet giving up compatibility with Python 2.6.  (However,
    git-imerge will no longer work under Python 2.5, which doesn't have
    the build-in function next().)
  2. Avoid using map().

    List comprehensions and generator expressions are just as pretty, and
    their semantics remain the same between python2 and python3.
  3. Remove unused local variables.

    Suggested-by: Steven Myint <>
  4. Use next(i) rather than

    It's the right way to do it.
    Suggested-by: Steven Myint <>
Commits on Jan 20, 2014
  1. Merge branch 'html-lipstick'

    Improve the HTML diagram output:
    * Desaturate the existing colors
    * Add some new colors:
      * Blue for initial commits
      * Pale green for skipped commits (and with "-" instead of "?")
      * Pale yellow for unknown commits
    * Display the numerical indexes along the top and left edges of the
    * Fix how the frontier is drawn.
  2. HTML diagram: Make unknown commits pale yellow.

    This also makes it possible to tone down the red of BLOCKER commits.
  3. imerge.css: Rearrange rules.

  4. Simplify test.

  5. Add a constant Block.MERGE_MASK.

    Use it to mask *in* the merge bits rather than using FRONTIER_MASK to
    mask *out* the frontier bits.
Something went wrong with that request. Please try again.