Commits on Sep 25, 2016
  1. Merge pull request #108 from mhagger/fix-first-parent-error

    Fix some incorrect invocations of `parser.error()`
    committed on GitHub Sep 25, 2016
  2. Fix more string interpolation errors

    Patch by @USBhost.
    committed Sep 25, 2016
Commits on Sep 23, 2016
Commits on Sep 19, 2016
  1. Merge pull request #104 from mhagger/bash-complete-drop-revert

    Add bash completion for new `drop` and `revert` subcommands
    committed on GitHub Sep 19, 2016
Commits on Sep 12, 2016
  1. Merge pull request #100 from mhagger/drop-and-revert

    Add two new subcommands: `git imerge drop` and `git imerge revert`
    committed on GitHub Sep 12, 2016
  2. README: show examples of `revert` and `drop` with a commit range

    Also, explain `git imerge drop` in terms of the analogous `git rebase
    --onto` commands. Mention the connection to `git rebase --interactive`
    in the text following the table.
    committed Sep 12, 2016
Commits on Jul 9, 2016
  1. Update documentation

    committed Jul 9, 2016
  2. git imerge revert: new command, for reverting commits

    Since `git revert` can conflict, it can benefit from incremental
    merging. So add a new command,
        git imerge revert [commit | commit1..commit2]
    , which uses an imerge procedure to revert one or more commits by
    creating new commits at the tip of the current branch that revert the
    original commits.
    committed Jul 9, 2016
  3. git imerge drop: new command, for dropping commits from a branch

    Add a new command,
        git imerge drop [commit | commit1..commit2]
    , which uses an imerge procedure to drop one or more commits from the
    history of a branch entirely.
    committed Jul 9, 2016
  4. MergeState._simplify_to_path(): allow args to be SHA-1s

    Allow the arguments to represent commits as `(i1,i2)` tuples or as raw
    SHA-1 strings.
    committed Jul 9, 2016
  5. Nest test repository one layer deeper

    This makes room for other test repos.
    committed Jul 9, 2016
  6. MergeState: allow arbitrary `goalopts` to be stored with the state

    This will be used shortly.
    committed Jul 9, 2016
  7. Get rid of Failure.wrap()

    It is too magical. Instead, just wrap the invocation of main() in a
    try...except block.
    Also, reinstate the `if __name__ == '__main__'` boilerplate. It makes
    some kinds of manual testing easier:
        $ ln -s git-imerge
        $ python
        >>> import imerge
        >>> [...]
    committed Jul 9, 2016
  8. Don't require `--first-parent` option if history is linear

    If the history is linear, then it's unnecessarily curmudgeonly to
    complain that the user didn't specify the `--first-parent` option. So
    only complain if the ancestry really is nonlinear.
    committed Jul 9, 2016
  9. rev_list(): extract temporary

    committed Jul 9, 2016
  10. Merge pull request #90 from mhagger/simplify-to-path

    New concept: "simplify to path"
    committed on GitHub Jul 9, 2016
  11. Merge pull request #98 from mhagger/empty-autocommits

    Support autocommitting merges with no changes
    committed on GitHub Jul 9, 2016
Commits on Apr 19, 2016
  1. Merge pull request #97 from waldyrious/patch-1

    Fix formatting; show how to abort an imerge (#95)
    committed Apr 19, 2016
  2. Merge pull request #73 from mhagger/author-newline-sep

    Use newlines as separator characters in `git_author_info()`
    committed Apr 19, 2016
  3. Merge pull request #91 from mhagger/normalize-blocks

    Remove redundant blocks correctly
    committed Apr 19, 2016
  4. Merge pull request #94 from RichardsonAlex/master

    Make it easier to create a RPM package by honouring DESTDIR
    committed Apr 19, 2016
  5. continue: allow empty merges

    The old code detected when an automatic commit was needed based on the
    existence of staged changes (and no unstaged changes). This is wrong:
    sometimes a merge legitimately involves accepting the HEAD version
    unchanged. In this case, there are no staged changes, so the code
    wouldn't recognize the need to make a commit. The bottom line was that
    the `continue` command would fail with
        Commit $i-$j was not blocking the frontier
    Instead, detect the need for an automatic commit based on the following
    * A "simple" (i.e., not octopus) merge is in progress
    * There are no unstaged changes in the working tree
    Note: it is not necessary to commit with `--allow-empty`, because the
    usual prohibition against empty commits does not apply to merge commits.
    committed Apr 19, 2016
  6. uncommitted_changes(): new function

    New function, extracted from require_clean_work_tree().
    committed Apr 19, 2016
  7. unstaged_changes(): new function

    New function, extracted from require_clean_work_tree().
    committed Apr 19, 2016
Commits on Nov 16, 2015
  1. Merge pull request #82 from stevemao/patch-1

    install/uninstall with bash_completion
    committed Nov 16, 2015
Commits on Nov 5, 2015
  1. Remove redundant blocks correctly

    Fix two problems:
    1. The old MergeFrontier._iter_non_redundant_blocks() didn't handle
       the case when one block contained *multiple* predecessors.
    2. The old MergeFrontier.remove_failure() didn't necessarily sort
       newblocks by len1 before calling _iter_non_redundant_blocks().
    Instead, add a method MergeFrontier._normalized_blocks() which takes
    care of all of the steps of normalizing a collection of blocks.
    committed Nov 5, 2015
Commits on Nov 3, 2015
  1. Merge pull request #87 from rhunter/bugfix/86-bash3-compatibility

    bash-completion: bash3 compatibility
    committed Nov 3, 2015
Commits on Oct 29, 2015
  1. MergeState._simplify_to_path(): extract method

    Use the new function in the implementation of
    committed Oct 29, 2015
  2. is_ff(): new function

    Use the new function in the implementation of
    MergeState.simplify_to_rebase(). Also fix and improve an error
    committed Oct 29, 2015