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

subversion-1.8.0-rc2: diff_test 60 fails

From: Tobias Bading <tbading_at_web.de>
Date: Thu, 23 May 2013 11:05:39 +0200

Hello everyone,

I'm having a bit of trouble with subversion-1.8.0-rc2 on my Ubuntu Lucid
(x86_64) machine. "make check" or "./diff_tests.py 60" (in directory
subversion/tests/cmdline) fails with:

---
W: =============================================================
Expected '3449_spurious' and actual '3449_spurious' in status tree are 
different!
=============================================================
EXPECTED NODE TO BE:
=============================================================
  * Node name:   3449_spurious
     Path:       svn-test-work/working_copies/diff_tests-60/3449_spurious
     Contents:   None
     Properties: {}
     Attributes: {'status': 'M ', 'wc_rev': '2'}
     Children:  None (node is probably a file)
=============================================================
ACTUAL NODE FOUND:
=============================================================
  * Node name:   3449_spurious
     Path:       svn-test-work/working_copies/diff_tests-60/3449_spurious
     Contents:   None
     Properties: {}
     Attributes: {'status': '  ', 'wc_rev': '2'}
     Children:  None (node is probably a file)
W: ACTUAL STATUS TREE:
svntest.wc.State(wc_dir, {
   ''                  : Item(status=' M', wc_rev='2'),
   'A'                 : Item(status='  ', wc_rev='2'),
   'A/B'               : Item(status='  ', wc_rev='2'),
   'A/B/F'             : Item(status='  ', wc_rev='2'),
   'A/B/E'             : Item(status='  ', wc_rev='2'),
   'A/B/E/alpha'       : Item(status='  ', wc_rev='2'),
   'A/B/E/beta'        : Item(status='  ', wc_rev='2'),
   'A/B/lambda'        : Item(status='  ', wc_rev='2'),
   'A/D'               : Item(status='  ', wc_rev='2'),
   'A/D/H'             : Item(status='  ', wc_rev='2'),
   'A/D/H/omega'       : Item(status='  ', wc_rev='2'),
   'A/D/H/psi'         : Item(status='  ', wc_rev='2'),
   'A/D/H/chi'         : Item(status='  ', wc_rev='2'),
   'A/D/gamma'         : Item(status='  ', wc_rev='2'),
   'A/D/G'             : Item(status='  ', wc_rev='2'),
   'A/D/G/tau'         : Item(status='  ', wc_rev='2'),
   'A/D/G/pi'          : Item(status='  ', wc_rev='2'),
   'A/D/G/rho'         : Item(status='  ', wc_rev='2'),
   'A/C'               : Item(status='  ', wc_rev='2'),
   'A/mu'              : Item(status='  ', wc_rev='2'),
   '3449_spurious'     : Item(status='  ', wc_rev='2'),
   'iota'              : Item(status='  ', wc_rev='2'),
})
W: CWD: [...]/subversion-1.8.0-rc2/subversion/tests/cmdline
W: EXCEPTION: SVNTreeUnequal
Traceback (most recent call last):
   File 
"[...]/subversion-1.8.0-rc2/subversion/tests/cmdline/svntest/main.py", 
line 1550, in run
     rc = self.pred.run(sandbox)
   File 
"[...]/subversion-1.8.0-rc2/subversion/tests/cmdline/svntest/testcase.py", 
line 176, in run
     return self.func(sandbox)
   File "./diff_tests.py", line 3878, in no_spurious_conflict
     svntest.actions.run_and_verify_status(wc_dir, expected_status)
   File 
"[...]/subversion-1.8.0-rc2/subversion/tests/cmdline/svntest/actions.py", line 
1479, in run_and_verify_status
     status_tree.compare_and_display('status', actual_status)
   File 
"[...]/subversion-1.8.0-rc2/subversion/tests/cmdline/svntest/wc.py", 
line 344, in compare_and_display
     raise svntest.tree.SVNTreeUnequal
SVNTreeUnequal
FAIL:  diff_tests.py 60: no spurious conflict on update
---
It seems that the test fails to prepare the working copy for the actual 
test. The "merge -c4 ^/" does not work as expected. Instead of merging 
the changes of file 3449_spurious into the working copy, only a 
svn:mergeinfo property is added to the working copy root.
Revision 4 itself seems fine in the repository. 
"[...]/subversion/svn/svn diff -c4 ^/" appears to show the correct 
changes in 3449_spurious.
Once the test fails, the incomplete merge is repeatable in directory 
subversion/tests/cmdline/svn-test-work/working_copies/diff_tests-60 by 
executing "[...]/subversion/svn/svn revert -R ." and then the merge 
again. The merge fails to update file 3449_spurious every time, no 
matter whether the last argument of the merge is "^/", 
"^/3449_spurious", 
"file://[...]/repositories/diff_tests-60/3449_spurious", or 
"file://[...]/repositories/diff_tests-60/3449_spurious". If the last 
argument refers to 3449_spurious, then a svn:mergeinfo property is added 
to file 3449_spurious in the working copy, otherwise the property is 
added to the root directory of the working copy. But the contents of 
file 3449_spurious are never changed :-(. (The file's timestamp doesn't 
change either.)
However, once I execute "[...]/svn revert -R .", "[...]/svn update", and 
"[...]/svn update -r2" in the working copy, the merge works just fine 
afterwards. And that "update -r2" is exactly what no_spurious_conflict 
in diff_tests.py does before the faulty merge, if I'm reading the code 
correctly.
Anyone else having this problem?
Ideas are welcome... :-)
Kind regards,
Tobias
Received on 2013-05-23 11:14:22 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.