If an update pulls in a null delta --- eg, because it updates across two revisions that revert each other --- then it should behave as though it pulled nothing at all: output no 'U filename' lines, and print "At revision %ld".
Right? [[[ Index: subversion/tests/cmdline/update_tests.py =================================================================== --- subversion/tests/cmdline/update_tests.py (revision 1397561) +++ subversion/tests/cmdline/update_tests.py (working copy) @@ -5881,7 +5881,40 @@ def update_with_parents_and_exclude(sbox): '--parents', sbox.ospath('A/B')) +@XFail() +def null_delta(sbox): + "pulling a null delta not output" + sbox.build() + wc_dir = sbox.wc_dir + + iota = sbox.ospath('iota') + iota_contents = open(iota).read() + + # r2 + open(iota, 'w').write('foo\n') + sbox.simple_commit() + + # r3 + open(iota, 'w').write(iota_contents) + sbox.simple_commit() + + # A no-op update should have the same output as one pulling a null change. + sbox.simple_update(revision=3) + exit_code, output2, errput = svntest.main.run_svn(None, 'update', '-r3', iota) + if exit_code or errput: + raise svntest.Failure("update from r3 failed: %r" % [exit_code, errput]) + + sbox.simple_update(revision=1) + exit_code, output3, errput = svntest.main.run_svn(None, 'update', '-r3', iota) + if exit_code or errput: + raise svntest.Failure("update from r1 failed: %r" % [exit_code, errput]) + + if output2 != output3: + raise svntest.Failure("Test failed: two no-op updates have different " + "outputs:\n" + "%r\n%r\n" % (output2, output3)) + ####################################################################### # Run the tests @@ -5957,6 +5990,7 @@ test_list = [ None, update_move_text_mod, update_nested_move_text_mod, update_with_parents_and_exclude, + null_delta, ] if __name__ == '__main__': ]]]