Robert Collins wrote: > On Tue, 2006-10-17 at 01:19 +0200, Jakub Narebski wrote: >> >> I wonder if any SCM other than git has easy way to "rebase" a branch, >> i.e. cut branch at branching point, and transplant it to the tip >> of other branch. For example you work on 'xx/topic' topic branch, >> and want to have changes in those branch but applied to current work, >> not to the version some time ago when you have started working on >> said feature. > > Precisely how does this rebase operate in git ? > Does it preserve revision ids for the existing work, or do they all > change? Revision ids (commit ids) change of course. Therefore rebasing published branches is not recommended, as it is in fact rewriting history. It is however recommended before sending _series_ of patches (work on that series should be done using topic branch) to rebase topic branch they sit on for the patches to apply cleanly on top of current work. Or use StGit or other Quilt (patch management) equivalent. > bzr has a graft plugin which walks one branch applying all its changes > to another preserving the users metadata but changing the uuids for > revisions. This looks like "bzr graft" is the same as "git rebase". It can deal with conflict, cannot it? P.S. It looks like we have yet another terminology conflict. In git "graft" means "history graft" i.e. file which changes parents of some commits. For example if we have historical repositoy and current repositoy we can join together using grafts (otherwise we would need to rewrite history, as sha1 which serves as commit id includes parents information), e.g. x--*--*--*--*....x--*--*--*--* historical current where 'x' is 'root' (parentless) commit, '--' denotes parentship, and '....' denotes "history graft". -- Jakub Narebski Warsaw, Poland ShadeHawk on #git - 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