You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2013/02/01 12:52:55 UTC
svn commit: r1441400 -
/subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py
Author: ivan
Date: Fri Feb 1 11:52:55 2013
New Revision: 1441400
URL: http://svn.apache.org/viewvc?rev=1441400&view=rev
Log:
Add test case for reintegrate-like automatic merge with file replacement [1]
[1] http://svn.haxx.se/dev/archive-2013-01/0449.shtml
* subversion/tests/cmdline/merge_automatic_tests.py
(merge_replacement): New test.
(test_list): Add merge_replacement test.
Modified:
subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py
Modified: subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py?rev=1441400&r1=1441399&r2=1441400&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_automatic_tests.py Fri Feb 1 11:52:55 2013
@@ -984,6 +984,99 @@ def merge_to_reverse_cherry_subtree_to_m
None, None, None, None,
None, 1, 0, A_COPY_path)
+#----------------------------------------------------------------------
+# Automatic merges should notice ancestory for replaced files
+@SkipUnless(server_has_mergeinfo)
+def merge_replacement(sbox):
+ "notice ancestory for replaced files"
+
+ A_path = sbox.ospath('A')
+ A_COPY_path = sbox.ospath('A_copy')
+ A_COPY_mu_path = sbox.ospath('A_copy/mu')
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ sbox.simple_copy('A', 'A_copy')
+ # Commit as r2
+ sbox.simple_commit()
+
+ sbox.simple_rm('A_copy/B/lambda')
+ sbox.simple_copy('A_copy/D/gamma', 'A_copy/B/lambda')
+
+ sbox.simple_rm('A_copy/mu')
+ svntest.main.file_write(A_COPY_mu_path, "Branch edit to 'mu'.\n")
+ sbox.simple_add('A_copy/mu')
+
+ # Commit as r3
+ sbox.simple_commit()
+
+ expected_output = wc.State(A_path, {
+ 'B/lambda' : Item(status='R '),
+ 'mu' : Item(status='R '),
+ })
+ expected_mergeinfo_output = wc.State(A_path, {
+ '' : Item(status=' U'),
+ })
+ expected_elision_output = wc.State(A_path, {
+ })
+
+ expected_status = wc.State(A_path, {
+ '' : Item(status=' M', wc_rev='1'),
+ 'B' : Item(status=' ', wc_rev='1'),
+ 'mu' : Item(status='R ', copied='+', wc_rev='-'),
+ 'B/E' : Item(status=' ', wc_rev='1'),
+ 'B/E/alpha' : Item(status=' ', wc_rev='1'),
+ 'B/E/beta' : Item(status=' ', wc_rev='1'),
+ 'B/lambda' : Item(status='R ', copied='+', wc_rev='-'),
+ 'B/F' : Item(status=' ', wc_rev='1'),
+ 'C' : Item(status=' ', wc_rev='1'),
+ 'D' : Item(status=' ', wc_rev='1'),
+ 'D/G' : Item(status=' ', wc_rev='1'),
+ 'D/G/pi' : Item(status=' ', wc_rev='1'),
+ 'D/G/rho' : Item(status=' ', wc_rev='1'),
+ 'D/G/tau' : Item(status=' ', wc_rev='1'),
+ 'D/gamma' : Item(status=' ', wc_rev='1'),
+ 'D/H' : Item(status=' ', wc_rev='1'),
+ 'D/H/chi' : Item(status=' ', wc_rev='1'),
+ 'D/H/psi' : Item(status=' ', wc_rev='1'),
+ 'D/H/omega' : Item(status=' ', wc_rev='1'),
+ })
+
+ expected_disk = wc.State('', {
+ '' : Item(props={SVN_PROP_MERGEINFO : '/A_copy:2-3'}),
+ 'B' : Item(),
+ 'mu' : Item("Branch edit to 'mu'.\n"),
+ 'B/E' : Item(),
+ 'B/E/alpha' : Item("This is the file 'alpha'.\n"),
+ 'B/E/beta' : Item("This is the file 'beta'.\n"),
+ 'B/lambda' : Item("This is the file 'gamma'.\n"),
+ 'B/F' : Item(),
+ 'C' : Item(),
+ 'D' : Item(),
+ 'D/G' : Item(),
+ 'D/G/pi' : Item("This is the file 'pi'.\n"),
+ 'D/G/rho' : Item("This is the file 'rho'.\n"),
+ 'D/G/tau' : Item("This is the file 'tau'.\n"),
+ 'D/gamma' : Item("This is the file 'gamma'.\n"),
+ 'D/H' : Item(),
+ 'D/H/chi' : Item("This is the file 'chi'.\n"),
+ 'D/H/psi' : Item("This is the file 'psi'.\n"),
+ 'D/H/omega' : Item("This is the file 'omega'.\n"),
+ })
+
+ expected_skip = wc.State(A_COPY_path, { })
+
+ svntest.actions.run_and_verify_merge(A_path, None, None,
+ sbox.repo_url + '/A_copy', None,
+ expected_output,
+ expected_mergeinfo_output,
+ expected_elision_output,
+ expected_disk,
+ expected_status,
+ expected_skip,
+ None, None, None, None,
+ None, 1, 0, A_path)
+
########################################################################
# Run the tests
@@ -1009,6 +1102,7 @@ test_list = [ None,
cherry3_fwd,
subtree_to_and_fro,
merge_to_reverse_cherry_subtree_to_merge_to,
+ merge_replacement,
]
if __name__ == '__main__':