summaryrefslogtreecommitdiff
path: root/git-subtree.sh
AgeCommit message (Collapse)AuthorFilesLines
2010-02-06Make tests pass with recent git (1.7.0 and up).Libravatar Avery Pennarun1-1/+5
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 again.
2010-02-02Jakub's changes broke the progress message slightly.Libravatar Avery Pennarun1-2/+1
We really need that ^M (\r), not a ^J (\n) if we want the status message to overwrite itself nicely.
2010-01-12improved rev_is_descendant_of_branch() functionLibravatar Jakub Suder1-2/+2
2010-01-12fixed bug in commit message for splitLibravatar Jakub Suder1-1/+1
2010-01-12changed alias for --prefix from -p to -PLibravatar Jakub Suder1-2/+2
2010-01-10fix for subtree split not finding proper base for new commitsLibravatar Jakub Suder1-1/+4
2010-01-10allow using --branch with existing branches if it makes senseLibravatar Jakub Suder1-8/+26
2010-01-10added -m/--message option for setting merge commit messageLibravatar Jakub Suder1-4/+26
2010-01-06added -p alias for --prefixLibravatar Jakub Suder1-2/+2
2009-10-02cmd_pull didn't support --squash correctly.Libravatar Avery Pennarun1-2/+3
We should implement it as git fetch ... git subtree merge ... But we were instead just calling git pull -s subtree ... because 'git subtree merge' used to be just an alias for 'git merge -s subtree', but it no longer is.
2009-10-02Fix a minor problem in identifying squashes vs. normal splits.Libravatar Avery Pennarun1-1/+3
This didn't seem to have any noticeable side effects other than suspicious-looking log messages when you used -d.
2009-10-02If someone provides a --prefix that ends with slash, strip the slash.Libravatar Avery Pennarun1-3/+3
Prefixes that differ only in the trailing slash should be considered identical. Also update the test to check that this works.
2009-09-30Check that the type of the tree really is a tree and not a commit as it ↵Libravatar Pelle Wessman1-0/+1
seems to sometimes become when eg. a submodule has existed in the same position previously.
2009-08-26Fix behaviour if you have a branch named the same as your --prefixLibravatar Avery Pennarun1-1/+1
We were trying to 'git checkout $prefix', which is ambiguous if $prefix names a directory *and* a branch. Do 'git checkout -- $prefix' instead. The main place this appeared was in 'git subtree add'. Reported by several people.
2009-08-26Improve patch to use git --exec-path: add to PATH instead.Libravatar Avery Pennarun1-1/+2
If you (like me) are using a modified git straight out of its source directory (ie. without installing), then --exec-path isn't actually correct. Add it to the PATH instead, so if it is correct, it'll work, but if it's not, we fall back to the previous behaviour.
2009-08-20Add explicit path of git installation by 'git --exec-path'.Libravatar kTln21-1/+1
As pointed out by documentation, the correct use of 'git-sh-setup' is using $(git --exec-path) to avoid problems with not standard installations. Signed-off-by: gianluca.pacchiella <pacchiel@studenti.ph.unito.it>
2009-05-30Make --squash work with the 'add' command too.Libravatar Avery Pennarun1-18/+39
2009-05-30Fix splitting after using a squash merge.Libravatar Avery Pennarun1-2/+6
2009-05-30Don't squash-merge if the old and new commits are the same.Libravatar Avery Pennarun1-0/+4
2009-05-30Basic "subtree merge --squash" support.Libravatar Avery Pennarun1-1/+77
Instead of merging in the history of the entire subproject, just squash it all into one commit, but try to at least track which commits we used so that we can do future merges correctly. Bonus feature: we can actually switch branches of the subproject this way, just by "squash merging" back and forth from one tag to another.
2009-05-30merge_msg() is really more like rejoin_msg().Libravatar Avery Pennarun1-5/+8
2009-05-30FIXME help for --squash optionLibravatar Avery Pennarun1-0/+5
2009-05-30slightly rearrange help message for split.Libravatar Avery Pennarun1-2/+2
2009-05-30New --branch option to split command.Libravatar Avery Pennarun1-2/+24
This is just a handy way to create a new branch from the newly-split subtree.
2009-05-30typo in commentLibravatar Avery Pennarun1-1/+1
2009-04-30Abort if --rejoin fails.Libravatar Avery Pennarun1-1/+1
Thanks to Eduardo Kienetz for noticing this.
2009-04-26debug messages are off by default; use -d to enable.Libravatar Avery Pennarun1-2/+18
Instead of debug messages, we print a progress counter to stderr.
2009-04-26Simplify merges even more aggressively.Libravatar Avery Pennarun1-1/+1
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.
2009-04-26Only copy a commit if it has at least one nonidentical parent.Libravatar Avery Pennarun1-1/+4
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.
2009-04-26Trim some extra merge commits that don't need to go into the split tree.Libravatar Avery Pennarun1-3/+16
...and update test.sh to test for this.
2009-04-26Clarify why we can't do 'git rev-list' with a path.Libravatar Avery Pennarun1-3/+3
2009-04-26Typo when searching for existing splits.Libravatar Avery Pennarun1-1/+1
2009-04-26Add --annotate option, and create recognizable file content during tests.Libravatar Avery Pennarun1-1/+5
2009-04-25Handle it successfully if a given parent commit has no parents.Libravatar Avery Pennarun1-1/+12
2009-04-24Add 'git subtree merge' and 'git subtree pull'.Libravatar Avery Pennarun1-15/+40
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.
2009-04-24Add a new 'git subtree add' command for adding subtrees from a given rev.Libravatar Avery Pennarun1-3/+53
2009-04-24Pass the path using the --prefix option instead of on the command line.Libravatar Avery Pennarun1-12/+16
I like this better. It's more like git-read-tree and some other commands.
2009-04-24Okay, that was a little too aggressive.Libravatar Avery Pennarun1-14/+32
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.
2009-04-24Even more aggressive commit trimming.Libravatar Avery Pennarun1-10/+24
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...
2009-04-24Prune out some extra merge commits by comparing their parents correctly.Libravatar Avery Pennarun1-5/+13
2009-04-24Quick test script for generating reasonably complex merge scenarios.Libravatar Avery Pennarun1-2/+3
2009-04-24Skip over empty commits.Libravatar Avery Pennarun1-13/+42
But we still need to get rid of unnecessary merge commits somehow...
2009-04-24Hmm... can't actually filter rev-list on the subdir name.Libravatar Avery Pennarun1-6/+9
Otherwise we can't keep track of parent relationships. Argh. This change makes it "work", but we get a bunch of empty commits.
2009-04-24Added a --onto option, but it's so complicated I can't tell if it works.Libravatar Avery Pennarun1-1/+11
2009-04-24Use information about prior splits to make sure merges work right.Libravatar Avery Pennarun1-4/+36
2009-04-24Add a new --rejoin option.Libravatar Avery Pennarun1-9/+44
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.
2009-04-24Print out the newly created commitid at the end, for use in other scripts.Libravatar Avery Pennarun1-2/+7
2009-04-24We now copy the other stuff about a commit (changelog, author, etc).Libravatar Avery Pennarun1-4/+21
2009-04-24'git subtree split' now basically works.Libravatar Avery Pennarun1-4/+18
2009-04-24basic options parsing and whatnot.Libravatar Avery Pennarun1-0/+123