kfogel@collab.net writes:
> > Running all tests in merge_tests.py...FAILURE
> > Running all tests in stat_tests.py...success
> > Running all tests in trans_tests.py...success
> > Running all tests in autoprop_tests.py...success
> > Running all tests in svnadmin_tests.py...success
> > Running all tests in svnlook_tests.py...success
> > Running all tests in svnversion_tests.py...success
> > At least one test FAILED, checking /home/brane/svn/obj-sh/tests.log
> > FAIL: merge_tests.py 2: merge and add new files/dirs with history
> > FAIL: merge_tests.py 8: merging similar trees ancestrally unrelated
> > FAIL: merge_tests.py 10: merge change into unchanged binary file
> > FAIL: merge_tests.py 12: diff after merge that creates a new file
> > FAIL: merge_tests.py 13: merge should skip over unversioned obstructions
> > make: *** [check] Error 1
> > Complete log saved in /home/brane/svn/LOG_svn_check_shared_ra_local.7611.failed
> > FAIL: make check
>
> It looks like all these are failing due to a combination of the new
> tmpfile-finding code and lack of support for cross-device renames?
> The failures all look the same, here's merge_tests.py 2 for example:
>
> CMD: svn "merge" "-r" "1:2" blah blah blah
> svn: Invalid cross-device link
> svn: install_file: move failed
> svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'
> EXCEPTION: Failure: ['svn: Invalid cross-device link\n', 'svn: install_file: move failed\n', "svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'\n"]
> FAIL: merge_tests.py 2: merge and add new files/dirs with history
>
> I'm guessing the solution is for svn_io_file_rename() to catch this
> error and handle it by doing a copy (at the cost of atomicity).
> Thoughts?
After thinking more about this problem (and talking to Karl), I
realized something that hadn't occured to me before -- I can't think
of a single place in our code where we need to *both* use
svn_io_temp_dir() and rename those tmpfiles.
The reason we went down the svn_io_temp_dir() path was to ask the
system for a safe place to write temporary files for Subversion
operations which should be able to run on a read-only working copy.
If an operation requires write access to a working copy, then it can
use the .svn/tmp directory in that working copy for its temporary
directory.
Diff is a read-only operation. Merge, on the other, is not, and
therefore should not be using the svn_io_temp_dir() code.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Nov 4 17:10:32 2003