Switch branches/tags
Commits on Jun 12, 2012
Commits on May 1, 2012

    apenwarr committed May 1, 2012
    This git-subtree repository is obsolete now that git-subtree has been merged
    into mainline git (yay!).  If you have patches you want to make to
    git-subtree, I encourage you to email them to the core git mailing list,
    where the hordes of awesome maintainers are well known for responding very
    quickly to queries and patches, very much unlike me.
Commits on Mar 1, 2011
  1. Skip commit objects that should be trees, rather than copying them.

    apenwarr committed Mar 1, 2011
    An improvement on the previous patch, based on more reports from Sum-Wai
  2. It's also okay if an expected tree object is actually a commit.

    apenwarr committed Mar 1, 2011
    ...that happens with submodules sometimes, so don't panic.
    Reported by Sum-Wai Low.
Commits on Nov 10, 2010
  1. Added check to order of processed commits.

    jessegreenwald authored and apenwarr committed Nov 10, 2010
    With debug messages enabled, "incorrect order" will be output whenever a
    commit is processed before its parents have been processed.  This can be
    determined by checking to see if a parent isn't mapped to a new commit, but
    it has been processed.
  2. Split cmd now processes commits in topo order.

    jessegreenwald authored and apenwarr committed Nov 9, 2010
    Added the "--topo-order" option to git rev-list.  Without this, it seems that
    the revision list is coming back in reverse order but it is sorted
    chronologically.  This does not gurantee that parent commits are handled
    before child commits.
Commits on Oct 21, 2010
  1. docs: Description, synopsys, options and examples changes.

    Vanuan authored and apenwarr committed Aug 12, 2010
    Description: Made the difference from submodules and the subtree
    merge strategy clearer.
    Synopsys and options: Synchronize with 'git subtree -h' output.
    I hope, properly.
    Examples: Added example descriptions in captions. Small fixes.
    Signed-off-by: John Yani <>
  2. Fixing eval syntax error.

    cstanfield authored and apenwarr committed Sep 13, 2010
Commits on Aug 12, 2010
  1. Fix typo: an -> a

    apenwarr committed Aug 12, 2010
    Thanks to Vanuan on github.
Commits on Jul 21, 2010
  1. docs: simplify example 1

    bryanlarsen authored and apenwarr committed Jul 21, 2010
    The documentation was written prior to Wayne Walter's 2-parameter add.
    Using 2-parameter add in example 1 makes the example much simpler.
Commits on Jun 24, 2010
  1. Another fix for PATH and msysgit.

    apenwarr committed Jun 24, 2010
    Evan Shaw tells me the previous fix didn't work.  Let's use this one
    instead, which he says does work.
    This fix is kind of wrong because it will run the "correct" git-sh-setup
    *after* the one in /usr/bin, if there is one, which could be weird if you
    have multiple versions of git installed.  But it works on my Linux and his
    msysgit, so it's obviously better than what we had before.
  2. Merge remote branch 'origin/master'

    apenwarr committed Jun 24, 2010
    * origin/master:
      Fixed regression with splitting out new subtree
      Use 'git merge -Xsubtree' when git version >= 1.7.0.
  3. (Hopefully) fix PATH setting for msysgit.

    apenwarr committed Jun 24, 2010
    Reported by Evan Shaw.  The problem is that $(git --exec-path) includes a
    'git' binary which is incompatible with the one in /usr/bin; if you run it,
    it gives you an error about libiconv2.dll.
    You might think we could just add $(git --exec-path) at the *end* of PATH,
    but then if there are multiple versions of git installed, we could end up
    with the wrong one; earlier versions used to put git-sh-setup in /usr/bin,
    so we'd pick up that one before the new one.
    So now we just set PATH back to its original value right after running
    git-sh-setup, and we should be okay.
Commits on May 20, 2010
  1. Fixed regression with splitting out new subtree

    voxpelli committed May 20, 2010
    A folder in a repository that wasn't initially imported as a  subtree could no longer be splitted into an entirely new subtree with no parent.
    A fix and a new test to fix that regression is added here.
Commits on May 7, 2010
  1. Use 'git merge -Xsubtree' when git version >= 1.7.0.

    voxpelli authored and apenwarr committed May 7, 2010
    It's possible to specify the subdir of a subtree since Git 1.7.0 - adding
    support for that functionality to make the merge more stable.
    Also checking for git version - now only uses the new subtree subdir option
    when on at least 1.7.
Commits on Feb 13, 2010
  1. Added new 'push' command and 2-parameter form of 'add'.

    Wayne Walter authored and apenwarr committed Feb 13, 2010
    Now you can do:
    	git subtree add --prefix=whatever git://wherever branchname
    to add a new branch, instead of rather weirdly having to do 'git fetch'
    first.  You can also split and push in one step:
    	git subtree push --prefix=whatever git://wherever newbranch
    (Somewhat cleaned up by apenwarr.)
Commits on Feb 9, 2010
  1. Docs: cleaning up example textual redundancy

    kiyose authored and apenwarr committed Feb 9, 2010
    Signed-off-by: Dan Sabath <>
  2. docs: add simple 'add' case to clarify setup.

    kiyose authored and apenwarr committed Feb 9, 2010
    This patch adds a simple use case for adding a library to an existing
    Signed-off-by: Dan Sabath <>
  3. Some recent tests accidentally depended on very new versions of git.

    apenwarr committed Feb 9, 2010
    The "--format" option is too new.  Use "--pretty=format:" (which means the
    same thing) instead.  Now it works again on git 1.6.0 (at least).
  4. Oops. Apparently I didn't run 'make test' after most recent change.

    apenwarr committed Feb 9, 2010
    Thanks to Dan Sabath for pointing that out.
Commits on Feb 8, 2010
  1. Improve checking for existence of the --prefix directory.

    apenwarr committed Feb 8, 2010
    For add, the prefix must *not* already exist.  For all the other commands,
    it *must* already exist.
Commits on Feb 6, 2010
  1. Make sure that <prefix> exists when splitting.

    treese authored and apenwarr committed Feb 6, 2010
    And test cases for that check, as well as for an error if no prefix is
    specified at all.
  2. Make tests pass with recent git (1.7.0 and up).

    apenwarr committed Feb 6, 2010
    It seems that in older versions, --message="" was interpreted as "use the
    default commit message" instead of "use an empty commit message", and
    git-subtree was depending on this behaviour.  Now we don't, so tests pass
  3. git-subtree.txt: add another example.

    treese authored and apenwarr committed Feb 6, 2010
Commits on Feb 2, 2010
  1. Jakub's changes broke the progress message slightly.

    apenwarr committed Feb 2, 2010
    We really need that ^M (\r), not a ^J (\n) if we want the status message to
    overwrite itself nicely.
  2. Merge branch 'master' of git://

    apenwarr committed Feb 2, 2010
    * 'master' of git://
      improved rev_is_descendant_of_branch() function
      added temporary test dirs to gitignore
      added tests for recent changes
      fixed bug in commit message for split
      changed alias for --prefix from -p to -P
      fix for subtree split not finding proper base for new commits
      allow using --branch with existing branches if it makes sense
      added -m/--message option for setting merge commit message
      added -p alias for --prefix
  3. Fix refspecs in given example for git subtree pull.

    Arlen Cuss authored and apenwarr committed Jan 19, 2010
    (Updated slightly by apenwarr)
Commits on Jan 12, 2010
Commits on Jan 10, 2010