You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Z W <mp...@gmail.com> on 2013/10/21 19:10:35 UTC

svn "must be ancestrally related to" issue

Hi All

We are using 1.6 SVN.
We have been syncing trunk to branch A and they are both synced up and
ready for merge.
We are trying to svn merge branch A to our trunk.
But the branch was not created right in that it has a missing directory.

eg.
branch A has src directory
src


Trunk has src and install directories
src
install


[root@host Trunk]# svn merge --reintegrate --dry-run
https://url.com/svn/feature/atlas
svn: 'https://url.com/svn/feature/atlas@1234' must be ancestrally related
to 'https://url.com/svn/trunk@1234'


How do we overcome this as src folder has quite a few large projects code
base ?
Using ignore-ancestry would ignore mergeinfo metadata and we're want to
avoid duplicate code (from the trunk when merging from Trunk to Branch A)
from the branch back to the Trunk.
Mergeinfo property is only available at Trunk top level directory.
Other mergeinfo properties at subdir levels had been removed before the
trunk to branch A syncing began.

Please advice with steps on a workaround we need.
Any help is appreciated.

Thanks

Re: svn "must be ancestrally related to" issue

Posted by Branko Čibej <br...@wandisco.com>.
On 21.10.2013 23:11, Z W wrote:
> Hi Brane
>
> Thanks for responding.
>
> At ^/trunk, we have mergeinfo available.
> At ^/feature/atlas we have mergeinfo available.
> At ^/trunk/src, there's no mergeinfo available
> At ^/feature/atlas/src there's no mergeinfo available.
>
> So would merging at src level cause a problem (ie duplicated code in
> trunk as a result of missing mergeinfo at src level)  ?

Did you actually ever merge changes to ^/trunk/src to
^/feature/atlas/src? That seems to be the most important question.

If you consistently merged from trunk to branch, for example:

    cd feature/atlas
    svn merge ^/trunk .

then the mergeinfo will only be recorded on ^/feature/atlas and it's
expected that there's no mergeinfo on ^/feature/atlas/src.

>From your error message, it would appear the the src directory on the
feature branch was not created as the result of a merge from trunk. Is
that the case? If so, you might be able to use --ignore-ancestry to
reintergrate the src directory; but you'll still have the same problems
in future merges.

-- Brane

> On Mon, Oct 21, 2013 at 11:06 AM, Branko Čibej <brane@wandisco.com
> <ma...@wandisco.com>> wrote:
>
>     On 21.10.2013 19:10, Z W wrote:
>     > Hi All
>     >
>     > We are using 1.6 SVN.
>     > We have been syncing trunk to branch A and they are both synced
>     up and
>     > ready for merge.
>     > We are trying to svn merge branch A to our trunk.
>     > But the branch was not created right in that it has a missing
>     directory.
>     >
>     > eg.
>     > branch A has src directory
>     > src
>     >
>     >
>     > Trunk has src and install directories
>     > src
>     > install
>     >
>     >
>     > [root@host Trunk]# svn merge --reintegrate --dry-run
>     > https://url.com/svn/feature/atlas
>     > svn: 'https://url.com/svn/feature/atlas@1234' must be ancestrally
>     > related to 'https://url.com/svn/trunk@1234'
>     >
>     >
>     > How do we overcome this as src folder has quite a few large projects
>     > code base ?
>     > Using ignore-ancestry would ignore mergeinfo metadata and we're want
>     > to avoid duplicate code (from the trunk when merging from Trunk to
>     > Branch A) from the branch back to the Trunk.
>     > Mergeinfo property is only available at Trunk top level directory.
>     > Other mergeinfo properties at subdir levels had been removed before
>     > the trunk to branch A syncing began.
>     >
>     > Please advice with steps on a workaround we need.
>     > Any help is appreciated.
>
>     This all depends on how the branch was "not created right". I expect
>     that it you did not copy ^/trunk to ^/feature/atlas, yes?
>
>     Did you instead copy ^/trunk/src to ^/feature/atlas/src? Because then
>     the branch is the the latter, not ^/feature/atlas, and you should be
>     merging just the src directory.
>
>     -- Brane
>
>     --
>     Branko Čibej | Director of Subversion
>     WANdisco // Non-Stop Data
>     e. brane@wandisco.com <ma...@wandisco.com>
>
>


-- 
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane@wandisco.com

Re: svn "must be ancestrally related to" issue

Posted by Branko Čibej <br...@wandisco.com>.
On 21.10.2013 19:10, Z W wrote:
> Hi All
>
> We are using 1.6 SVN.
> We have been syncing trunk to branch A and they are both synced up and
> ready for merge.
> We are trying to svn merge branch A to our trunk.
> But the branch was not created right in that it has a missing directory.
>
> eg.
> branch A has src directory
> src
>
>
> Trunk has src and install directories
> src
> install
>
>
> [root@host Trunk]# svn merge --reintegrate --dry-run
> https://url.com/svn/feature/atlas
> svn: 'https://url.com/svn/feature/atlas@1234' must be ancestrally
> related to 'https://url.com/svn/trunk@1234'
>
>
> How do we overcome this as src folder has quite a few large projects
> code base ?
> Using ignore-ancestry would ignore mergeinfo metadata and we're want
> to avoid duplicate code (from the trunk when merging from Trunk to
> Branch A) from the branch back to the Trunk.
> Mergeinfo property is only available at Trunk top level directory. 
> Other mergeinfo properties at subdir levels had been removed before
> the trunk to branch A syncing began.
>
> Please advice with steps on a workaround we need.
> Any help is appreciated.

This all depends on how the branch was "not created right". I expect
that it you did not copy ^/trunk to ^/feature/atlas, yes?

Did you instead copy ^/trunk/src to ^/feature/atlas/src? Because then
the branch is the the latter, not ^/feature/atlas, and you should be
merging just the src directory.

-- Brane

-- 
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane@wandisco.com