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

Re: svn commit: r1036686 - /subversion/branches/1.6.x/STATUS

From: Paul Burba <ptburba_at_gmail.com>
Date: Fri, 19 Nov 2010 11:56:03 -0500

On Thu, Nov 18, 2010 at 8:12 PM, Paul Burba <ptburba_at_gmail.com> wrote:
> On Thu, Nov 18, 2010 at 7:11 PM,  <stsp_at_apache.org> wrote:
>> Author: stsp
>> Date: Fri Nov 19 00:11:15 2010
>> New Revision: 1036686
>>
>> URL: http://svn.apache.org/viewvc?rev=1036686&view=rev
>> Log:
>> * STATUS: Downgrade my vote for r1036429.
>>
>> Modified:
>>    subversion/branches/1.6.x/STATUS
>>
>> Modified: subversion/branches/1.6.x/STATUS
>> URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=1036686&r1=1036685&r2=1036686&view=diff
>> ==============================================================================
>> --- subversion/branches/1.6.x/STATUS (original)
>> +++ subversion/branches/1.6.x/STATUS Fri Nov 19 00:11:15 2010
>> @@ -111,7 +111,9 @@ Candidate changes:
>>    Justification:
>>      Avoids an assert in the server.
>>    Votes:
>> -     +1: philip, stsp
>> +     +1: philip
>> +     +0: stsp (it fixes the test, but pburba asked on IRC how this change
>> +               will affect replaced directories and I'm not sure about that)
>
> Hi Philip,
>
> My question was what happens if, in svnsync test 29, if in r3,
> ^/trunk/H/B is not a replacement resulting from a copy, but is a
> replacement without history from svn mkdir.  I momentarily thought
> that we'd end up in replay.c:add_subdir and would hit this block:
>
>              if (! change->copyfrom_known)
>                {
>                  SVN_ERR(svn_fs_copied_from(&change->copyfrom_rev,
>                                             &change->copyfrom_path,
>                                             target_root, new_path, pool));
>                  change->copyfrom_known = TRUE;
>                }
>
> and call svn_fs_copied_from() for a path-rev that wasn't actually
> copied.  But when looking closer into this that seems impossible,
> because we'd never be in add_subdir() in the first place...I
> *think*...this part of the code is quite unfamiliar to me :-\

Scratch that, there *is* a problem:

First apply this patch to break out of the svnsync tests before we
remove the svn:sync* revprops:

[[[
Index: subversion/tests/cmdline/svnsync_tests.py
===================================================================
--- subversion/tests/cmdline/svnsync_tests.py (revision 1036857)
+++ subversion/tests/cmdline/svnsync_tests.py (working copy)
@@ -159,6 +159,7 @@
   run_sync(dest_sbox.repo_url)
   run_copy_revprops(dest_sbox.repo_url)

+ exit(0)
   # Remove some SVNSync-specific housekeeping properties from the
   # mirror repository in preparation for the comparison dump.
   for prop_name in ("svn:sync-from-url", "svn:sync-from-uuid",
]]]

### Then run svnsync_tests.py 29 with BDB:

C:\SVN\src-branch-1.6.x>run.python.test.DEBUG.bat svnsync 29 --fs-type bdb -v
C:\SVN\src-branch-1.6.x>set TESTNAME=svnsync
C:\SVN\src-branch-1.6.x>set CONFIG=Debug
C:\SVN\src-branch-1.6.x>if not exist Debug\subversion\tests\cmdline
mkdir Debug\subversion\tests\cmdline
C:\SVN\src-branch-1.6.x>pushd Debug\subversion\tests\cmdline
C:\SVN\src-branch-1.6.x\Debug\subversion\tests\cmdline>python
C:\SVN\src-branch-1.6.x\\subversion\tests\cmdline\svnsync_tests.py 29
--fs-type bdb -v
CMD: svnadmin.exe create "svn-test-work\local_tmp\repos"
--bdb-txn-nosync "--fs-type=bdb" <TIME = 0.127000>
CMD: svn.exe import -m "Log message for revision 1."
"svn-test-work\local_tmp\greekfiles"
"file:///C%3A/SVN/src-branch-1.6.x/Debug/subversion/tests/cmdline/svn-
test-work/local_tmp/repos" --config-dir
"C:\SVN\src-branch-1.6.x\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\config"
--password rayjandom --no-auth-c
ache --username jrandom <TIME = 0.077000>
Adding svn-test-work\local_tmp\greekfiles\A
Adding svn-test-work\local_tmp\greekfiles\A\B
Adding svn-test-work\local_tmp\greekfiles\A\B\lambda
Adding svn-test-work\local_tmp\greekfiles\A\B\E
Adding svn-test-work\local_tmp\greekfiles\A\B\E\alpha
Adding svn-test-work\local_tmp\greekfiles\A\B\E\beta
Adding svn-test-work\local_tmp\greekfiles\A\B\F
Adding svn-test-work\local_tmp\greekfiles\A\mu
Adding svn-test-work\local_tmp\greekfiles\A\C
Adding svn-test-work\local_tmp\greekfiles\A\D
Adding svn-test-work\local_tmp\greekfiles\A\D\gamma
Adding svn-test-work\local_tmp\greekfiles\A\D\G
Adding svn-test-work\local_tmp\greekfiles\A\D\G\pi
Adding svn-test-work\local_tmp\greekfiles\A\D\G\rho
Adding svn-test-work\local_tmp\greekfiles\A\D\G\tau
Adding svn-test-work\local_tmp\greekfiles\A\D\H
Adding svn-test-work\local_tmp\greekfiles\A\D\H\chi
Adding svn-test-work\local_tmp\greekfiles\A\D\H\omega
Adding svn-test-work\local_tmp\greekfiles\A\D\H\psi
Adding svn-test-work\local_tmp\greekfiles\iota

Committed revision 1.
CMD: svnadmin.exe create "svn-test-work\repositories\svnsync_tests-29"
--bdb-txn-nosync "--fs-type=bdb" <TIME = 0.150000>
CMD: svnadmin.exe load --force-uuid --quiet
"svn-test-work\repositories\svnsync_tests-29" <TIME = 0.090000>
CMD: svnadmin.exe create
"svn-test-work\repositories\svnsync_tests-29-1" --bdb-txn-nosync
"--fs-type=bdb" <TIME = 0.150000>
CMD: svnlook.exe uuid "svn-test-work\repositories\svnsync_tests-29"
<TIME = 0.026000>
b105e986-03ce-ba4b-b01a-b7a10dd0b7f5
CMD: svnadmin.exe setuuid
"svn-test-work\repositories\svnsync_tests-29-1"
b105e986-03ce-ba4b-b01a-b7a10dd0b7f5 <TIME = 0.027000>
CMD: svnsync.exe initialize
"file:///C%3A/SVN/src-branch-1.6.x/Debug/subversion/tests/cmdline/svn-test-work/repositories/svnsync_tests-29-1"
"file:///C%3A/SVN/s
rc-branch-1.6.x/Debug/subversion/tests/cmdline/svn-test-work/repositories/svnsync_tests-29/trunk/H"
--username jrandom --password rayjandom --config-dir "C:\SVN
\src-branch-1.6.x\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\config"
<TIME = 0.339000>
Copied properties for revision 0.
CMD: svnsync.exe synchronize
"file:///C%3A/SVN/src-branch-1.6.x/Debug/subversion/tests/cmdline/svn-test-work/repositories/svnsync_tests-29-1"
--username jrandom
 --password rayjandom --config-dir
"C:\SVN\src-branch-1.6.x\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\config"
<TIME = 0.929000>
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Transmitting file data ........
Committed revision 3.
Copied properties for revision 3.
CMD: svnsync.exe copy-revprops
"file:///C%3A/SVN/src-branch-1.6.x/Debug/subversion/tests/cmdline/svn-test-work/repositories/svnsync_tests-29-1"
--username jrand
om --password rayjandom --config-dir
"C:\SVN\src-branch-1.6.x\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\config"
<TIME = 0.690000>
Copied properties for revision 0.
Copied properties for revision 1.
Copied properties for revision 2.
Copied properties for revision 3.
EXCEPTION: SystemExit(0), skipping cleanup
PASS: svnsync_tests.py 29: descending into replaced dir looks in src

### Notice that r3 was successfully synced above

### To spare you looking at the test, r3 is a copy with a replacement
with history within it:

C:\SVN\src-branch-1.6.x>svn log -v -r3 %URL%
------------------------------------------------------------------------
r3 | Daniel | 2010-07-08 17:25:07 -0400 (Thu, 08 Jul 2010) | 1 line
Changed paths:
   A /trunk/H (from /trunk/A:2)
   R /trunk/H/B (from /trunk/X:2)

cp
------------------------------------------------------------------------

### Now use svnmucc to create r4, a change similar to r3, but this
time the replacement
### is without history:

C:\SVN\src-branch-1.6.x>set
URL=file:///C%3A/SVN/src-branch-1.6.x/Debug/subversion/tests/cmdline/svn-test-work/repositories/svnsync_tests-29

C:\SVN\src-branch-1.6.x>svnmucc.exe -mm cp head %URL%/trunk/A
%URL%/trunk/H/H1 rm %URL%/trunk/H/H1/B mkdir %URL%/trunk/H/H1/B
r4 committed by pburba at 2010-11-19T16:49:47.096098Z

### And boom, the svnsync sync is broken:

C:\SVN\src-branch-1.6.x>svnsync synchronize %URL%-1
Transmitting file data ...\..\..\subversion\libsvn_fs_base\tree.c:739:
(apr_err=160013)
svnsync: File not found: revision 4, path '/trunk/H/H1/B/lambda'

Paul
Received on 2010-11-19 17:56:44 CET

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