I have merged the subversion package from sid aiming for lucid. The
merge was ... interesting ... and I'm initially chronicling my
experiences here - they can go into a bug once I understand exactly what
bug I'm filing.

In a nutshell, "bzr merge-package ../debian/sid" produced lots of
spurious conflicts. This turned out to be because it was trying re-merge
 changes from 1.6.{3,4,5}dfsg-1 into 1.6.5dfsg-1ubuntu1 which already
contained them.

The underlying cause here was that the karmic|lucid branch contains an
import of the 1.6.5-1ubuntu1 version without any recorded bzr ancestry
tying it to Debian revisions. It seems potentially relevant that the
1.6.5-1ubuntu1 upload was a merge from sid, where the previous merge was
from experimental.

I was able piece the history back into a sane state by:

1) Making a commit containing no changes with left-parent the Debian
upstream-1.6.5dfsg revision, right-parent the Ubuntu upstream-1.6.5dfsg
revision - i.e. tying together the two upstream-1.6.5dfsg imports in
history.

2) Merging said commit into the Ubuntu packaging branch, having the
effect of replacing all the differing file-ids in the Ubuntu branch with
the ones from the Debian branch.

3) Merging the Debian 1.6.5dfsg-1 revision into the Ubuntu branch (i.e.
the version which the Ubuntu branch was based on, but did not record
ancestry for), and dealing with the conflicts mainly by "bzr revert"ing
them, except where there was a file-id conflict, in which case picking
the text of the Ubuntu version *but* the file-id of the Debian version.

At which point I was in a position to simply "bzr merge" (not
merge-package) the debian/sid branch into karmic|lucid branch, resolve
the genuine conflicts between ubuntu and debian packagings and commit.

The branch, by the way, is at lp:~maxb/ubuntu/lucid/subversion/merge. I
recommend you examine it with "bzr qlog" if at all - the history is too
tortuous for a non-graphical visualization.


So the open questions:

1) What should the importer have actually done? Why didn't it record any
ancestry from Debian against the 1.6.5-1ubuntu1 import?

2) Did my way of tying the diverged ancestry back together make sense?

3) Do we want to retroactively replace history with a less contorted
version?

4) When an upload to unstable occurs with a higher version than the
version in experimental, should the importer pull experimental into
unstable before importing? That would seem to make sense to me, and
would eliminate one notable source of diverged upstream import branches
when the importer needed to pull the upstream import into an ubuntu branch.


Max.



Attachment: signature.asc
Description: OpenPGP digital signature

-- 
ubuntu-distributed-devel mailing list
ubuntu-distributed-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-distributed-devel

Reply via email to