def relocate_with_relative_externals(sbox): "relocate a directory containing relative externals" sbox.build() wc_dir = sbox.wc_dir # Add a relative external. change_external(os.path.join(wc_dir, 'A', 'B'), "^/A/D/G G-ext\n../D/H H-ext", commit=True) svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir) # Move our repository to another location. repo_dir = sbox.repo_dir repo_url = sbox.repo_url other_repo_dir, other_repo_url = sbox.add_repo_path('other') svntest.main.copy_repos(repo_dir, other_repo_dir, 2, 0) svntest.main.safe_rmtree(repo_dir, 1) # Now relocate our working copy. svntest.actions.run_and_verify_svn(None, None, [], 'relocate', repo_url, other_repo_url, wc_dir) # Check the URLs of the externals -- were they updated to point to the # .other repository URL? svntest.actions.run_and_verify_info([{ 'URL' : '.*.other/A/D/G$' }], os.path.join(wc_dir, 'A', 'B', 'G-ext')) svntest.actions.run_and_verify_info([{ 'URL' : '.*.other/A/D/H$' }], os.path.join(wc_dir, 'A', 'B', 'H-ext'))
def relocate_with_relative_externals(sbox): "relocate a directory containing relative externals" sbox.build() wc_dir = sbox.wc_dir # Add a relative external. change_external(os.path.join(wc_dir, 'A', 'B'), "^/A/D/G G-ext\n../D/H H-ext", commit=True) svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir) # Move our repository to another location. repo_dir = sbox.repo_dir repo_url = sbox.repo_url other_repo_dir, other_repo_url = sbox.add_repo_path('other') svntest.main.copy_repos(repo_dir, other_repo_dir, 2, 0) svntest.main.safe_rmtree(repo_dir, 1) # Now relocate our working copy. svntest.actions.run_and_verify_svn(None, None, [], 'relocate', repo_url, other_repo_url, wc_dir) # Check the URLs of the externals -- were they updated to point to the # .other repository URL? svntest.actions.run_and_verify_info([{ 'URL': '.*.other/A/D/G$' }], os.path.join(wc_dir, 'A', 'B', 'G-ext')) svntest.actions.run_and_verify_info([{ 'URL': '.*.other/A/D/H$' }], os.path.join(wc_dir, 'A', 'B', 'H-ext'))