Permalink
Switch branches/tags
Nothing to show
Commits on May 1, 2009
  1. Abort if --rejoin fails.

    apenwarr committed May 1, 2009
    Thanks to Eduardo Kienetz for noticing this.
Commits on Apr 26, 2009
  1. debug messages are off by default; use -d to enable.

    apenwarr committed Apr 26, 2009
    Instead of debug messages, we print a progress counter to stderr.
  2. test.sh: oops, never intended to count the raw number of commits.

    apenwarr committed Apr 26, 2009
    Just needed to make sure the count was non-zero.
  3. Simplify merges even more aggressively.

    apenwarr committed Apr 26, 2009
    If any one of the parents is the same as the current one, then clearly the
    other parent branch isn't important, so throw it away entirely.
    
    Can't remember why I didn't do this before, but if I rediscover it, it
    definitely needs a unit test.
  4. Only copy a commit if it has at least one nonidentical parent.

    apenwarr committed Apr 26, 2009
    This is a simplification of the previous logic.  I don't *think* it'll break
    anything.
    
    Results in far fewer useless merge commmits when playing with gitweb in the
    git project:
    
    git subtree split --prefix=gitweb --annotate='(split) ' 0a8f4f0^^..f2e7330
    	--onto=1130ef3
    
    ...and it doesn't *seem* to eliminate anything important.
  5. Trim some extra merge commits that don't need to go into the split tree.

    apenwarr committed Apr 26, 2009
    ...and update test.sh to test for this.
  6. test.sh tweak

    apenwarr committed Apr 26, 2009
  7. todo list

    apenwarr committed Apr 26, 2009
Commits on Apr 25, 2009
  1. Add 'git subtree merge' and 'git subtree pull'.

    apenwarr committed Apr 25, 2009
    These are simple shortcuts for 'git merge -s subtree' and 'git pull -s
    subtree', but it makes sense to have it all in one command.
  2. Pass the path using the --prefix option instead of on the command line.

    apenwarr committed Apr 25, 2009
    I like this better.  It's more like git-read-tree and some other commands.
  3. Okay, that was a little too aggressive.

    apenwarr committed Apr 25, 2009
    Now we only prune out a commit if it has exactly one remaining parent and
    that parent's tree is identical to ours.
    
    But I also changed the test to create the initial "-s ours" merge in one
    step instead of two, and that merge can be eliminated since one of its
    parents doesn't affect the subdir at all, and is thus deleted.
  4. Even more aggressive commit trimming.

    apenwarr committed Apr 25, 2009
    Now we cut out a commit if any of its parents had the same tree; just use
    that parent in its place.  This makes the history look nice, but I don't
    think it's quite right...
Commits on Apr 24, 2009
  1. Skip over empty commits.

    apenwarr committed Apr 24, 2009
    But we still need to get rid of unnecessary merge commits somehow...
  2. Hmm... can't actually filter rev-list on the subdir name.

    apenwarr committed Apr 24, 2009
    Otherwise we can't keep track of parent relationships.  Argh.
    
    This change makes it "work", but we get a bunch of empty commits.
  3. Add a new --rejoin option.

    apenwarr committed Apr 24, 2009
    The idea is to join the new split branch back into this one, so future
    splits can append themselves to the old split branch.  We mark the split
    branch's history in our merge commit, so we can pull it back out later.