[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Error svn: E155010 when merging Add then Delete in the same merge operation

From: Paul Burba <ptburba_at_gmail.com>
Date: Mon, 23 Apr 2012 16:38:24 -0400

On Fri, Apr 20, 2012 at 10:55 AM, Andrea Antonio Maleci
<A.Maleci_at_iwbank.it> wrote:
> Hi all,
>
> I’m doing some sparse merge operation, unsing –r option.
>
> If in the same merge action I merge a revision that contains an add action
> on a file and then another revision that contain a delete of the same file,
> I have the error:
>
> svn: E155010: The node 'file’ was not found.
>
>
>
> Here an example:
>
> In a branch:
>
> 1.       I add a file and commit;
>
> 2.       I delete the file and commit;
>
> 3.       I add another file and commit.
>
> I another branch:
>
> 1.       I merge 1,2 and 3
>
> 2.       I get the error.
>
>
>
> [csvn_at_scm-master ~] $ svnadmin create TST
>
> [csvn_at_scm-master ~] $ svn mkdir -m "Added branch"
> file://$HOME/tmp/wc/TST/branches file://$HOME/tmp/wc/TST/branches/branchA
> file://$HOME/tmp/wc/TST/branches/branchB
>
> Committed revision 1.
>
> [csvn_at_scm-master ~] $ cd branchA
>
> [csvn_at_scm-master ~/branchA]$ echo "Hello" > file1.txt
>
> [csvn_at_scm-master ~/branchA]$ svn add file1.txt
>
> A         file1.txt
>
> [csvn_at_scm-master ~/branchA]$ svn commit -m "Added" .
>
> Adding         file1.txt
>
> Transmitting file data .
>
> Committed revision 2.
>
> [csvn_at_scm-master ~/branchA]$ svn delete file1.txt
>
> D         file1.txt
>
> [csvn_at_scm-master ~/branchA]$ svn commit -m "Delete" .
>
> Deleting       file1.txt
>
> Committed revision 3.
>
> [csvn_at_scm-master ~/branchA]$ echo "Hello" > file2.txt
>
> [csvn_at_scm-master ~/branchA]$ svn add file2.txt
>
> A         file2.txt
>
> [csvn_at_scm-master ~/branchA]$ svn commit -m "Added 2" .
>
> Adding         file2.txt
>
> Transmitting file data .
>
> Committed revision 4.
>
>
>
> [csvn_at_scm-master ~/branchA]$ cd ..
>
> [csvn_at_scm-master ~]$ svn co
> file://$HOME/tmp/wc/TST/branches/branchB
>
> Checked out revision 4.
>
> [csvn_at_scm-master ~]$ cd branchB
>
> [csvn_at_scm-master ~/branchB]$ svn merge -r0:1 -r1:2 -r2:3 -r3:4
> file://$HOME/tmp/wc/TST/branches/branchA .
>
> --- Merging r2 into '.':
>
> A    file1.txt
>
> --- Recording mergeinfo for merge of r2 into '.':
>
> U   .
>
> --- Merging r3 into '.':
>
> D    file1.txt
>
> --- Recording mergeinfo for merge of r3 into '.':
>
> G   .
>
> svn: E155010: The node '/private/home/csvn/branchB/file1.txt' was not found.
>
> The same result if I use
>
> [csvn_at_scm-master ~/branchB]$ svn merge -c1 -c2 -c3 -c4
> file://$HOME/tmp/wc/TST/branches/branchA .
>
> I currently use svn, version 1.7.4 (r1295709)
>
> Any Idea ??

Hi Andrea,

That is a bug. I fixed it in r1329417 and nominated it for backport
to the next 1.7.x release. In the meantime if you are having
difficultly with this particular problem you can simply combine the
merge into a single range or break it into separate individual merges.
 For example:

Instead of this (FWIW r1 and r4 in your example had nothing to do with
the problem you saw, so I only worry about r2 and r3 in these
examples):

>svn merge -c2,3 %URL%/branches/branchA .
  --- Merging r2 into '.':
  A file1.txt
  --- Recording mergeinfo for merge of r2 into '.':
   U .
  --- Merging r3 into '.':
  D file1.txt
  --- Recording mergeinfo for merge of r3 into '.':
   G .
  ..\..\..\subversion\svn\util.c:913: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:10899: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:10853: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:10853: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:10823: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:8842: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\merge.c:7691: (apr_err=155010)
  ..\..\..\subversion\libsvn_client\mergeinfo.c:194: (apr_err=155010)
  ..\..\..\subversion\libsvn_wc\node.c:876: (apr_err=155010)
  ..\..\..\subversion\libsvn_wc\node.c:876: (apr_err=155010)
  ..\..\..\subversion\libsvn_wc\wc_db.c:6765: (apr_err=155010)
  ..\..\..\subversion\libsvn_wc\wc_db.c:6666: (apr_err=155010)
  ..\..\..\subversion\libsvn_wc\wc_db.c:6651: (apr_err=155010)
  svn: E155010: The node 'C:\SVN\src-branch-1.7.x\Debug\subversion
  \tests\cmdline\svn-test-work\working_copies\TST\branches\branchB\
  file1.txt' was not found.

Try this:

>svn merge -r1:3 %URL%/branches/branchA .
  --- Recording mergeinfo for merge of r2 through r3 into '.':
   U .

Or this:

>svn merge -c2 %URL%/branches/branchA .
  --- Merging r2 into '.':
  A file1.txt
  --- Recording mergeinfo for merge of r2 into '.':
   U .

>svn merge -c3 %URL%/branches/branchA .
  --- Merging r3 into '.':
  D file1.txt
  --- Recording mergeinfo for merge of r3 into '.':
   G .

These *should* all be equivalent, but you discovered a bug where that
is not the case.

Paul

> Thanks,
>
> Andrea
Received on 2012-04-23 22:38:56 CEST

This is an archived mail posted to the Subversion Dev mailing list.