bzr-svn forgets relationship

Bug #210705 reported by Andreas Kostyrka
This bug report is a duplicate of:  Bug #130372: Abandon branching schemes. Edit Remove
2
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
New
Undecided
Unassigned

Bug Description

Version info: bzr.dev r3310
bzr-svn: r1039

Now comes the fun:
Using last location: svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
You have 4 extra revision(s):
------------------------------------------------------------
revno: 4
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery-memberfind
timestamp: Wed 2008-04-02 10:05:12 +0200
message:
  fixed workload __init__.py to take the opt object
------------------------------------------------------------
revno: 3
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery-memberfind
timestamp: Fri 2008-03-28 14:12:37 +0100
message:
  fixed namespace packages
------------------------------------------------------------
revno: 2
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery_memberfind
timestamp: Tue 2008-03-18 17:32:04 +0100
message:
  redid mf.py as workload class
------------------------------------------------------------
revno: 1
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery_memberfind
timestamp: Tue 2008-03-18 12:05:33 +0100
message:
  work in progress: facebook lookups.

You are missing 3 revision(s):
------------------------------------------------------------
revno: 3
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery-memberfind
timestamp: Fri 2008-03-28 14:12:37 +0100
message:
  fixed namespace packages
------------------------------------------------------------
revno: 2
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery_memberfind
timestamp: Tue 2008-03-18 17:32:04 +0100
message:
  redid mf.py as workload class
------------------------------------------------------------
revno: 1
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery_memberfind
timestamp: Tue 2008-03-18 12:05:33 +0100
message:
  work in progress: facebook lookups.
(lpython)andreas@andi-lap:~/lookery/lookery-memberfind> bzr merge
Merging from remembered location svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
bzr: ERROR: Branches have no common ancestor, and no merge base revision was specified.

This SVN location has been created via svn-push. The bzr branch this has been commited to has been created by pulling it fresh from the SVN location after the initial svn-push.

(lpython)andreas@andi-lap:~/lookery/lookery-memberfind> bzr info
Standalone tree (format: rich-root-pack)
Location:
  branch root: .

Related branches:
    push branch: svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
  parent branch: svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
(lpython)andreas@andi-lap:~/lookery/lookery-memberfind> bzr push
Using saved location: svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
bzr: ERROR: These branches have diverged. Try using "merge" and then "push".

Andreas

Revision history for this message
Andreas Kostyrka (andreas-kostyrka) wrote :

Ok, I've tracked it down to bzr-svn using the whole scheme "name" to build the revision ids.

Which breaks neatly when you have a list scheme and need to access one more path in the repository.

Simple deal:

1.) add one path to your list scheme.
2.) break all branches that have been branched before (1) ;)

Andreas

Revision history for this message
Andreas Kostyrka (andreas-kostyrka) wrote :

This interpretation is confirmed by changing the scheme in .bazaar/subversion.conf to the old value:

(lpython)andreas@andi-lap:~/lookery/lookery-memberfind> bzr missing
Using last location: svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-memberfind
You have 1 extra revision(s):
------------------------------------------------------------
revno: 4
committer: Andreas Kostyrka <andreas@andi-lap>
branch nick: lookery-memberfind
timestamp: Wed 2008-04-02 10:05:12 +0200
message:
  fixed workload __init__.py to take the opt object

Revision history for this message
Andreas Kostyrka (andreas-kostyrka) wrote :

I've implemented a new scheme that might work better for my repo, allpaths.

But that does not solve my problem, mostly, because the svn repo contains pointers to the old "revision names".

Any ideas how to solve this demonic problem:

parent: svn-v3-list-QlpoOTFBWSZTWYDqAEcAADdRgAAQAAK3r94gIABISkMo0zUaemoEkkaZMAm1IM83f4FQYGxfzVWsvATONoa96yIoS8IEx1BxVRIGB_MCYIMwX5NxaET_F3JFOFCQgOoARw..:3e2713fb-81e7-48d5-8ee4-88d6b0cf85af:trunk%2Flogs%2Flookery-dailysites:59

(lpython)andreas@andi-lap:~/lookery> bzr branch svn+https://<email address hidden>/svn/lookery_process/trunk/logs/lookery-dailysites
bzr: ERROR: Revision {('svn-v3-allpaths:3e2713fb-81e7-48d5-8ee4-88d6b0cf85af:trunk%2Flogs%2Flookery-dailysites:59',)} not present in "<bzrlib.knit.KnitGraphIndex object at 0xb5a9ab0c>".

Meaning that in practice it seems hard if at all possible to switch bzr scheme mappings after the fact?

(And no, I have no way to edit revision properties on this SVN repository. Sorry)

Andreas

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Unfortunately branching schemes suck :-( I hope to get rid of them at some point, see bug 130372.

The allpaths branching scheme is invalid because it will consider all directories inside a branch branches too.

For example, the unprefix function will be called with ("/trunk/logs/lookery-dailysites") while fetching /trunk and will then confuse bzr-svn by telling it that the branches' path is "/trunk/logs/lookery-dailysites" and the path inside the branch is "".

Revision history for this message
Andreas Kostyrka (andreas-kostyrka) wrote : Re: [Bug 210705] Re: bzr-svn forgets relationship
  • unnamed Edit (189 bytes, application/pgp-signature; name=signature.asc)

Unfortune as this might be, branches inside branches are quite normal
with svn:

/trunk - Project X
/trunk/subprojecta - Subproject A of Project X
/trunk/subprojectb - Subproject B of Project X

Depending upon which view a user has, one of the different "views" is
correct. And for some users might need multiple views of the remote
repository.

Worse, the current list scheme is broken, because you cannot change the
list of branches after you start working.

Andreas

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.