can't replay, need maptree support in rebase
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Invalid
|
Wishlist
|
Unassigned | ||
bzr-rewrite |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
I have 2 VCSes whose history I am trying to stitch together (cvs then svn). After managing to add 1 or 2 revisions to the cvs branch to make it match the contents of the svn one, I tried rebasing but it fails (it seems?), even though the contents are identical.
jeff@khloe:
Branched 263 revision(s).
jeff@khloe:
jeff@khloe:
Conflict adding files to data. Moved to root.
Conflict adding files to launch.sh. Moved to root.
Conflict adding files to po. Moved to root.
Conflict adding files to setup.py. Moved to root.
Conflict adding files to specto.desktop. Moved to root.
Conflict adding files to specto.png. Moved to root.
Conflict adding files to src. Moved to root.
Conflict adding files to src. Created directory.
Conflict because src is not versioned, but has versioned children. Versioned directory.
Conflict adding file src. Moved existing file to src.moved.
Conflict adding files to src/specto. Created directory.
Conflict because src/specto is not versioned, but has versioned children. Versioned directory.
Contents conflict in src/specto/main.py
Contents conflict in src/specto/watch.py
14 conflicts encountered.
bzr: ERROR: Working tree has conflicts.
<jelmer> nekohayo: the branches probably have different file ids
<nekohayo> jelmer: well, I assume so, they were different branches... what do I do?
<jelmer> the maptree stuff should be able to help there (it makes rebase/replay use paths rather than file ids) but that's not hooked up to the rebase ui yet (only used by svn-upgrade)
so it's not really possible to use rebase/replay in this case
<nekohayo> >_<?! I don't exactly see what's so unusual with my case :|
<jelmer> different file ids
<nekohayo> jelmer: what is a fileid actually? and how could branches that were not historically connected ever have matching file ids?
<jelmer> nekohayo: a file id is a unique string that identifies a file. It's generated when it is first added to bzr. there's no way for historically not connected branches to have the same file ids
<nekohayo> so there's no way to go further now? solving the conflicts wouldn't do it?
<jelmer> nekohayo: you can use diff + patch manually to replay each commit so you end up using the file ids from the branch you're building on rather than the branch you're replaying
<nekohayo> basically recommitting everything by hand
<jelmer> yes
I'm not aware of any bzr plugins at that can do that for you
rebase/replay could do it if you hooked up the maptree stuff
<nekohayo> how hard is that?
<jelmer> should be a matter of adding a call to MapTree() in the function that replays a delta in rebase
<nekohayo> rebase.py:410:def replay_
jelmer: I see that there is a file bzr-rebase/
<nekohayo> but I don't understand it
<jelmer> nekohayo: you'd need the code in maptree.py
<jelmer> and wrap the other tree specified to merge in replay_
<nekohayo> x_x beyond my skillset I guess... or is there a bug/blueprint I can subscribe to for rebase to support maptree?
<jelmer> no, though you could file one
Bazaar 1.5 from the PPA.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
status triaged enigmail. mozdev. org
importance wishlist
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://
iQCVAwUBSDBQXQy 0JeEGD2blAQLNYQ P9GIcdHWWYnWHkE UIYPYl2pfXGl+ xpimZZ LGSNx4cYGd/ d5PoeyloUTrjf7U u5Y+P41aCJGPWEb ys4on0mZ //bkni+ Awv5e0s9w+ 1pCEz3qS4Hj3/ 6nXREIVJZQt2n5o 49Ko
4JATfxUdG8Q0qqc
rvkgIFMyhu1vvXK
bwmh4P6UHBE=
=5ZED
-----END PGP SIGNATURE-----