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

Updating local-moves (was: svn commit: r1301390 ...)

From: Greg Stein <gstein_at_gmail.com>
Date: Fri, 16 Mar 2012 07:58:18 -0400

On Mar 16, 2012 5:30 AM, <philip_at_apache.org> wrote:
>...
> +++ subversion/trunk/subversion/tests/cmdline/update_tests.py Fri Mar 16
09:29:49 2012
> @@ -5696,6 +5696,101 @@ def update_moved_dir_file_move(sbox):
> None, None, None,
> None, None, 1)
>
> +@XFail()
> +def update_move_text_mod(sbox):
> + "text mod to moved files"
> +
> + sbox.build()
> + wc_dir = sbox.wc_dir
> + svntest.main.file_append(sbox.ospath('A/B/lambda'), "modified\n")
> + svntest.main.file_append(sbox.ospath('A/B/E/beta'), "modified\n")
> + sbox.simple_commit()
> + sbox.simple_update(revision=1)
> +
> + sbox.simple_move("A/B/E", "A/E2")
> + sbox.simple_move("A/B/lambda", "A/lambda2")
> +
> + expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
> + expected_status.tweak('A/B/E', 'A/B/E/alpha', 'A/B/E/beta',
'A/B/lambda',
> + status='D ')
> + expected_status.add({
> + 'A/E2' : Item(status='A ', copied='+', wc_rev='-'),
> + 'A/E2/alpha' : Item(status=' ', copied='+', wc_rev='-'),
> + 'A/E2/beta' : Item(status=' ', copied='+', wc_rev='-'),
> + 'A/lambda2' : Item(status='A ', copied='+', wc_rev='-'),
> + })
> +
> + svntest.actions.run_and_verify_status(wc_dir, expected_status)
> +
> + expected_output = svntest.wc.State(wc_dir, {
> + 'A/lambda2' : Item(status='U '),
> + 'A/E2/beta' : Item(status='U '),
> + })

The above output for an 'svn update ' implies that the incoming edits will
be applied to the moved files. I think that is wrong. I believe we should
mark a conflict: incoming edit vs local move. The default resolution would
be to apply, but I really do not believe we should silently update like
this.

Consider where I took some code that did X+Y and moved it to a new
location, for use there (but not yet committed). Somebody else edits the
code to remove Y, and commits.

If I update, then the code I moved *changes* on me. I grabbed the code
expecting X+Y. The removal of Y may have made sense in the old location,
but not the new location.

>...

Cheers,
-g
Received on 2012-03-16 12:58:52 CET

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