On Mon, Jul 08, 2013 at 11:30:28AM +0200, Eric Estievenart wrote:
> I'm currently investigating the details and implications of these horrors, 
> but I feel we are a bit doomed.

You could rewrite history, creating copyfrom pointers in old revisions.

Create a new repository, create the common ancestor branch in the first
commit, create the other branches as copies, and then replay your existing
history on top of that using svnadmin dump/load.
See 
http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate
for more information.

That's an involved process. But it should fix your history and make 1.8
clients happy. It might also invalidate all existing working copies,
so everyone will need to run 'svn checkout' again...

> Daniel Shahaf wrote on Sat, Jul 06, 2013 at 18:00:
> > I believe '--ignore-ancestry' is supposed to override this particular check.
> 
> Well, I already tested that, with and without --force, without more success.

The --ignore-ancestry switch also disables merge-tracking, which is
not ideal in this case.

 
> > The code has changed on 1.8.x@HEAD since 1.8.0[1], so 1.8.1 will behave 
> > differently.  (It will probably just issue a different error message, since 
> > [1] claims that it didn't change the checks being done.)
> So I just compiled a svn (on trunk@1500602), and get the following errors:
> 
> $ svn --version
> .... svn, version 1.9.0-dev (under development) ....
> $ cd svn/v3-dev
> $ svn merge ^/app/v2-dev
> svn: E195016: 'svn://......./app/v2-dev@70081' must be ancestrally related to 
> 'svn://......./app/v3-dev@70081'
> $ svn merge ^/app/v2-dev  --ignore-ancestry
> svn: E200004: Cannot merge automatically while ignoring mergeinfo
> 
> We'll continue our investigations, and keep you updated.

You could use the 2-URL merge syntax for the time being:

 svn merge ^/app/v2-dev@70081 ^/app/v2-dev@HEAD svn/v3-dev

That should work since it won't trigger the new "automatic
sync/reintegrate merge" logic in Subversion 1.8.
However, it also requires you to keep track of the number of the revision
number the v3 branch was last synced up to (r70081 in this example).

Reply via email to