Author: svn-role Date: Sat Jan 30 04:00:58 2021 New Revision: 1886044 URL: http://svn.apache.org/viewvc?rev=1886044&view=rev Log: Merge r1885983 from trunk:
* r1885983 Fix issue #4869: 'svn info --xml' gives wrong 'source-right' of conflict Justification: Bugfix; 'svn info --xml' should give correct results; user complained. Votes: +1: hartmannathan, stsp, jcorvel Modified: subversion/branches/1.14.x/ (props changed) subversion/branches/1.14.x/STATUS subversion/branches/1.14.x/subversion/svn/cl-conflicts.c subversion/branches/1.14.x/subversion/tests/cmdline/info_tests.py Propchange: subversion/branches/1.14.x/ ------------------------------------------------------------------------------ Merged /subversion/trunk:r1885983 Merged /subversion/branches/issue-4869:r1885862-1885981 Modified: subversion/branches/1.14.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.14.x/STATUS?rev=1886044&r1=1886043&r2=1886044&view=diff ============================================================================== --- subversion/branches/1.14.x/STATUS (original) +++ subversion/branches/1.14.x/STATUS Sat Jan 30 04:00:58 2021 @@ -67,13 +67,6 @@ Veto-blocked changes: Approved changes: ================= - * r1885983 - Fix issue #4869: 'svn info --xml' gives wrong 'source-right' of conflict - Justification: - Bugfix; 'svn info --xml' should give correct results; user complained. - Votes: - +1: hartmannathan, stsp, jcorvel - * r1886029 Fix several crashes and JNI warnings in javahl TunnelAgent. Justification: Modified: subversion/branches/1.14.x/subversion/svn/cl-conflicts.c URL: http://svn.apache.org/viewvc/subversion/branches/1.14.x/subversion/svn/cl-conflicts.c?rev=1886044&r1=1886043&r2=1886044&view=diff ============================================================================== --- subversion/branches/1.14.x/subversion/svn/cl-conflicts.c (original) +++ subversion/branches/1.14.x/subversion/svn/cl-conflicts.c Sat Jan 30 04:00:58 2021 @@ -452,7 +452,7 @@ append_tree_conflict_info_xml(svn_string repos_root_url, repos_relpath, peg_rev, node_kind, pool)); - SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(&repos_relpath, + SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(&repos_relpath, &peg_rev, &node_kind, conflict, @@ -529,7 +529,7 @@ svn_cl__append_conflict_info_xml(svn_str repos_root_url, repos_relpath, peg_rev, node_kind, scratch_pool)); - SVN_ERR(svn_client_conflict_get_incoming_old_repos_location( + SVN_ERR(svn_client_conflict_get_incoming_new_repos_location( &repos_relpath, &peg_rev, &node_kind, conflict, scratch_pool, scratch_pool)); if (repos_root_url && repos_relpath) @@ -576,7 +576,7 @@ svn_cl__append_conflict_info_xml(svn_str repos_root_url, repos_relpath, peg_rev, node_kind, scratch_pool)); - SVN_ERR(svn_client_conflict_get_incoming_old_repos_location( + SVN_ERR(svn_client_conflict_get_incoming_new_repos_location( &repos_relpath, &peg_rev, &node_kind, conflict, scratch_pool, scratch_pool)); if (repos_root_url && repos_relpath) Modified: subversion/branches/1.14.x/subversion/tests/cmdline/info_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/1.14.x/subversion/tests/cmdline/info_tests.py?rev=1886044&r1=1886043&r2=1886044&view=diff ============================================================================== --- subversion/branches/1.14.x/subversion/tests/cmdline/info_tests.py (original) +++ subversion/branches/1.14.x/subversion/tests/cmdline/info_tests.py Sat Jan 30 04:00:58 2021 @@ -843,6 +843,127 @@ def info_file_in_file_replaced_dir(sbox) svntest.actions.run_and_verify_info([expected], sbox.repo_url + '/dir/file@1') +@Issue(4869) +def info_tree_conflict_source(sbox): + "info --xml: verify source-left, source-right" + + sbox.build() + wc_dir = sbox.wc_dir + + B_path = os.path.join(wc_dir, 'A', 'B') + lambda_path = os.path.join(B_path, 'lambda') + alpha_path = os.path.join(B_path, 'E', 'alpha') + F_path = os.path.join(B_path, 'F') + + B2_url = sbox.repo_url + '/A/B2' + B2_path = os.path.join(wc_dir, 'A', 'B2') + lambda2_path = os.path.join(B2_path, 'lambda') + + # Rev 2 copy B to B2 + sbox.simple_repo_copy('A/B', 'A/B2') + sbox.simple_update() + + # Rev 3: + # edit A/B/lambda to test text conflict case + # add property to A/B/E/alpha to test property conflict case + # rename A/B/F to A/B/Z to test tree conflict case + + svntest.main.file_write(lambda_path, 'B/lambda side of conflict') + sbox.simple_propset('blue', 'azul', 'A/B/E/alpha') + sbox.simple_move('A/B/F', 'A/B/Z'); + sbox.simple_commit() + + # Rev 4: + # edit A/B2/lambda + # add property to A/B2/E/alpha + # rename A/B2/F to A/B2/Y + + svntest.main.file_write(lambda2_path, 'B2/lambda side of conflict') + sbox.simple_propset('blue', 'bleue', 'A/B2/E/alpha') + sbox.simple_move('A/B2/F', 'A/B2/Y'); + sbox.simple_commit() + + # Now merge B2 into B to cause a text conflict, property conflict, and + # tree conflict + sbox.simple_update() + + svntest.actions.run_and_verify_svn2(svntest.verify.AnyOutput, [], + 0, 'merge', B2_url, B_path) + + # Verify 'svn info --xml' on the text conflicted case + + exit_code, output, error = svntest.actions.run_and_verify_svn(None, + [], 'info', + lambda_path, + '--xml') + + verify_xml_elements(output, + [('version', {'revision' : '1', + 'side' : 'source-left', + 'kind' : 'file', + 'path-in-repos': 'A/B/lambda', + 'repos-url' : sbox.repo_url, + }, + )]) + + verify_xml_elements(output, + [('version', {'revision' : '4', + 'side' : 'source-right', + 'kind' : 'file', + 'path-in-repos': 'A/B2/lambda', + 'repos-url' : sbox.repo_url, + }, + )]) + + # Verify 'svn info --xml' on the property conflicted case + + exit_code, output, error = svntest.actions.run_and_verify_svn(None, + [], 'info', + alpha_path, + '--xml') + + verify_xml_elements(output, + [('version', {'revision' : '1', + 'side' : 'source-left', + 'kind' : 'file', + 'path-in-repos': 'A/B/E/alpha', + 'repos-url' : sbox.repo_url, + }, + )]) + + verify_xml_elements(output, + [('version', {'revision' : '4', + 'side' : 'source-right', + 'kind' : 'file', + 'path-in-repos': 'A/B2/E/alpha', + 'repos-url' : sbox.repo_url, + }, + )]) + + # Verify 'svn info --xml' on the tree conflicted case + + exit_code, output, error = svntest.actions.run_and_verify_svn(None, + [], 'info', + F_path, + '--xml') + + verify_xml_elements(output, + [('version', {'revision' : '1', + 'side' : 'source-left', + 'kind' : 'dir', + 'path-in-repos': 'A/B/F', + 'repos-url' : sbox.repo_url, + }, + )]) + + verify_xml_elements(output, + [('version', {'revision' : '4', + 'side' : 'source-right', + 'kind' : 'none', + 'path-in-repos': 'A/B2/F', + 'repos-url' : sbox.repo_url, + }, + )]) ######################################################################## # Run the tests @@ -869,6 +990,7 @@ test_list = [ None, info_item_size_repos_recursive, info_item_failures, info_file_in_file_replaced_dir, + info_tree_conflict_source, ] if __name__ == '__main__':