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

Merge tries to move added file across devices

From: Erik Huelsmann <ehuels_at_gmail.com>
Date: 2005-09-26 21:40:07 CEST

'svn merge' and 'svn diff' share the same implementation for receiving
added files from the repository, which uses
libsvn_client/repos_diff.c:create_empty_file().

The create_empty_file() routine prefers the cwd to create its
temporaries in. Which is fine for diff (probably), but is a problem
for merge if the cwd is on a different device than the target working
copy.

The diff-editor doesn't know whether it's driving a merge or a diff,
meaning that there is no way to keep the old behaviour for diff and
the new one for merge. Is it acceptable for diff to start requiring
write access to the .svn/tmp areas in order to solve the problem with
merge?

I used this scenario to find the problem:

- mount a RAM disk at subversion/tests/clients/cmdline/svn-test-work
- build the wc-replacements branch sources (in-tree)
- run the tests from the root of your working copy

These tests should FAIL:
* merge_tests.py 26: merge a replacement of a file
* revert_tests.py 5: revert a merged replacement of a file with history

bye,

Erik.
Received on Mon Sep 26 21:41:06 2005

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