Michael J Gruber venit, vidit, dixit 14.08.2009 17:28: > Chris Marshall venit, vidit, dixit 14.08.2009 16:31: >> Michael J Gruber <git <at> drmicha.warpmail.net> writes: >>>> This strikes me as not too bad of a procedure, as long as there is a >> graceful >>>> way of determining the most recent common ancestor of br1 and master. >> What's >>>> the simplest way of doing that? >>>> >>> >>> That would be simply git merge-base master br1. >>> >>> BUT: The main problem here is that git is not file based, but >>> revision/commit/tree based. In the above, you're basically losing all >>> the history common_ancestor_commit..br1 which produced br1's version of >>> f1 and f2, in the sense that a git log master will not show that part of >>> the history at all. >> >> Well put, I agree. One of the main arguments I am going to use to try to >> convince my fellows to switch from perforce to git is the usefulness of git >> blame. I would be defeating that with my procedure. >> >>> >>> If it makes sense to change f1 and f2 without changing f3 that probably >>> means that the pertinent commit should have been split. Is it an option >>> for you to rewrite br1's history? That would be the most gittish solution. >> >> Yes, I like the idea of rewriting br1's history. >> >> So, given that f1, f2, ..., fn were changed together in one commit X on br1, I >> want to break f1 and f2 out of X and put them into X', then leave the rest of >> the f3,...,fn changes in Y'. >> >> Let's say X was the last commit on br1. >> >> What would the commands to do that look like? >> > > If you're on br1, I would: > > git rebase -i X^ > # change "pick" to "edit" in front of X in the list you get > git checkout X^ -- f3 f4 f5 > git commit --amend > git checkout X -- f3 f4 f5 > git commit followed by git rebase --continue of course ;) > > For the 2nd commit, using the -c option may be beneficial. > > Cheers, > Michael > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html