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

The "merge path kludge" in merge_tests.py

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Wed, 20 Aug 2008 20:29:50 +0100

This kludge in merge_tests.py seems to be redundant now:

[[[
> ### "The Merge Kluge"
> ###
> ### *****************************************************
> ### *** ***
> ### *** Before erasing this comment, please check ***
> ### *** for references to "The Merge Kluge" ***
> ### *** elsewhere in this file, update_tests.py ***
> ### *** and switch_tests.py. ***
> ### *** ***
> ### *****************************************************
> ###
> ### The shortening of C_path and the chdir() below are a kluge to
> ### work around
> ###
> ### http://subversion.tigris.org/issues/show_bug.cgi?id=767#desc16
> ###
> ### Note that the problem isn't simply that 'svn merge' sometimes
> ### puts temp files in cwd. That's bad enough, but even if svn
> ### were to choose /tmp or some other static place blessed by
> ### apr_get_temp_dir(), we'd still experience the error
> ###
> ### svn: Move failed
> ### svn: Can't move 'tmp.2' to '.../.svn/tmp/text-base/file1.svn-base':
> ### Invalid cross-device link
> ###
> ### when running the tests on a ramdisk. After all, there's no
> ### reason why apr_get_temp_dir() would return a path inside
> ### svn-test-work/, which is the mount point for the ramdisk.
> ###
> ### http://subversion.tigris.org/issues/show_bug.cgi?id=767#desc20
> ### starts a discussion on how to solve this in Subversion itself.
> ### However, until that's settled, we still want to be able to run
> ### the tests in a ramdisk, hence this kluge.
]]]

As far as I can see, both that issue #767
<http://subversion.tigris.org/issues/show_bug.cgi?id=767> and issue
#2411 <http://subversion.tigris.org/issues/show_bug.cgi?id=2411> which
was split off it, have been fixed long ago. The former was (in the end)
about svn creating its temporary commit log message in the current
working directory, and the latter about svn creating a temporary copy
there of a file to be added by the merge. From what I can see, neither
happens any more.

A quick test on my system with the 'svn-test-work' directory mounted on
a RAM disk, and with the kludge disabled in some tests, indicates it
works fine.

The signal-to-noise ratio in merge_tests.py is a little dented by
frequent occurrences of the work-around. There are occurrences in
switch_tests.py, update_tests.py and log_tests.py too. It seems like an
obvious clean-up.

Does anyone know a reason not to remove all of this kludge?

(Related, but separate from this suggestion, is an idea I have that in
most of the tests we should indeed make the paths shorter, and so make
the diagnostic output shorter and easier to read, by changing into the
working-copy directory at the beginning of the test. Paths would then be
like "A/B/delta" instead of like
"svn-test-work/working-copies/merge_tests-101/A/B/delta". This would not
require a "shorten_path_kludge" function; instead, we would simply use
short paths from the beginning. In some tests there is more than one
working copy, but the principle still holds.)

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-20 21:30:17 CEST

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

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