You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2013/01/06 03:33:39 UTC
svn commit: r1429457 [17/21] - in /subversion/branches/tree-read-api: ./
build/ build/ac-macros/ build/generator/templates/ build/win32/
contrib/server-side/svncutter/ doc/ subversion/bindings/cxxhl/include/
subversion/bindings/cxxhl/include/svncxxhl/ ...
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/changelist_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/changelist_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/changelist_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/changelist_tests.py Sun Jan 6 02:33:34 2013
@@ -1189,57 +1189,6 @@ def readd_after_revert(sbox):
svntest.actions.run_and_verify_svn(None, None, [],
'add', dummy)
-def empty_pseudo_changelist(sbox):
- "the empty pseudo-changelist"
-
- # Boilerplate.
- sbox.build(read_only = True)
- wc_dir = sbox.wc_dir
-
- # Helper functions.
-
- def found_nodes(*args):
- # Extract the Greek-tree-relative paths.
- return set(map(lambda info: info['Path'][len(wc_dir)+1:],
- svntest.actions.run_and_parse_info(*args)))
-
- def find_nodes(nodeset, *args):
- assert isinstance(nodeset, set)
- foundset = found_nodes(*args)
- nodeset = set(map(lambda path: path.replace('/', os.path.sep), nodeset))
- if nodeset != foundset:
- raise svntest.Failure("Expected nodeset %s but found %s"
- % (nodeset, foundset))
-
- # Convenience variables.
- E_path = sbox.ospath('A/B/E')
- alpha_path = sbox.ospath('A/B/E/alpha')
- beta_path = sbox.ospath('A/B/E/beta')
- iota_path = sbox.ospath('iota')
-
- # Can't add an item to the empty changelist.
- expected_err = 'svn: E125014: .*'
- svntest.actions.run_and_verify_svn(None, [], expected_err,
- 'changelist', '', iota_path)
-
- # Modify alpha and beta
- svntest.main.file_append(alpha_path, "More stuff in alpha\n")
- svntest.main.file_append(beta_path, "More stuff in beta\n")
-
- # Add beta to 'testlist'.
- svntest.actions.run_and_verify_svn(None, None, [],
- 'changelist', 'testlist', beta_path)
-
- # Convenience variables.
- changelist = {
- 'testlist' : set(['A/B/E/beta']),
- '' : set(['A/B/E', 'A/B/E/alpha']),
- }
-
- # Some basic validations.
- find_nodes(changelist['testlist'] | changelist[''], '-R', E_path)
- find_nodes(changelist['testlist'], '--cl', 'testlist', '-R', E_path)
- find_nodes(changelist[''], '--cl', '', '-R', E_path)
########################################################################
# Run the tests
@@ -1263,7 +1212,6 @@ test_list = [ None,
add_remove_non_existent_target,
add_remove_unversioned_target,
readd_after_revert,
- empty_pseudo_changelist,
]
if __name__ == '__main__':
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/commit_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/commit_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/commit_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/commit_tests.py Sun Jan 6 02:33:34 2013
@@ -1974,6 +1974,7 @@ def from_wc_top_with_bad_editor(sbox):
exit_code, out, err = svntest.actions.run_and_verify_svn(
"Commit succeeded when should have failed.",
None, svntest.verify.AnyOutput,
+ '--force-interactive',
'ci', '--editor-cmd', 'no_such-editor')
err = " ".join([x.strip() for x in err])
@@ -2920,8 +2921,8 @@ def commit_danglers(sbox):
# dir/subdir should bump LastChangedRev of subdir in originating WC
@XFail()
@Issue(4203)
-def commit_moved_dir_with_nested_mod_in_subdir(sbox):
- "commit of moved dir with nested mod in subdir"
+def last_changed_of_copied_subdir(sbox):
+ "last changed of copied subdir"
sbox.build()
wc_dir = sbox.wc_dir
@@ -3012,7 +3013,7 @@ test_list = [ None,
commit_incomplete,
commit_add_subadd,
commit_danglers,
- commit_moved_dir_with_nested_mod_in_subdir,
+ last_changed_of_copied_subdir,
]
if __name__ == '__main__':
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/copy_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/copy_tests.py Sun Jan 6 02:33:34 2013
@@ -2458,22 +2458,11 @@ def move_dir_back_and_forth(sbox):
# Move the moved dir: D_moved back to its starting
# location at A/D.
- if svntest.main.wc_is_singledb(wc_dir):
- # In single-db target is gone on-disk after it was moved away, so this
- # move works ok
- expected_err = []
- else:
- # In !SINGLE_DB the target of the copy exists on-dir, so svn tries
- # to move the file below the deleted directory
- expected_err = '.*Cannot copy to .*as it is scheduled for deletion'
-
- svntest.actions.run_and_verify_svn(None, None, expected_err,
- 'mv', D_move_path, D_path)
-
- if svntest.main.wc_is_singledb(wc_dir):
- # Verify that the status indicates a replace with history
- expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.add({
+ svntest.actions.run_and_verify_svn(None, None, [], 'mv', D_move_path, D_path)
+
+ # Verify that the status indicates a replace with history
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
'A/D' : Item(status='R ', copied='+', wc_rev='-'),
'A/D/G' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/G/pi' : Item(status=' ', copied='+', wc_rev='-'),
@@ -2484,8 +2473,8 @@ def move_dir_back_and_forth(sbox):
'A/D/H/chi' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/H/omega' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/H/psi' : Item(status=' ', copied='+', wc_rev='-'),
- })
- svntest.actions.run_and_verify_status(wc_dir, expected_status)
+ })
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
def copy_move_added_paths(sbox):
"copy and move added paths without commits"
@@ -4364,9 +4353,9 @@ def copy_added_dir_with_copy(sbox):
sbox.build(read_only=True)
wc_dir = sbox.wc_dir
- new_dir = sbox.ospath('NewDir');
- new_dir2 = sbox.ospath('NewDir2');
- new_dir3 = sbox.ospath('NewDir3');
+ new_dir = sbox.ospath('NewDir')
+ new_dir2 = sbox.ospath('NewDir2')
+ new_dir3 = sbox.ospath('NewDir3')
# Alias for svntest.actions.run_and_verify_svn
rav_svn = svntest.actions.run_and_verify_svn
@@ -4398,7 +4387,6 @@ def copy_added_dir_with_copy(sbox):
svntest.actions.run_and_verify_status(wc_dir, expected_status)
-@SkipUnless(svntest.main.is_posix_os)
@Issue(3303)
def copy_broken_symlink(sbox):
"""copy broken symlink"""
@@ -4408,14 +4396,14 @@ def copy_broken_symlink(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- new_symlink = sbox.ospath('new_symlink');
- copied_symlink = sbox.ospath('copied_symlink');
- os.symlink('linktarget', new_symlink)
+ new_symlink = sbox.ospath('new_symlink')
+ copied_symlink = sbox.ospath('copied_symlink')
# Alias for svntest.actions.run_and_verify_svn
rav_svn = svntest.actions.run_and_verify_svn
- rav_svn(None, None, [], 'add', new_symlink)
+ sbox.simple_add_symlink('linktarget', 'new_symlink')
+
rav_svn(None, None, [], 'cp', new_symlink, copied_symlink)
# Check whether both new_symlink and copied_symlink are added to the
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/davautocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/davautocheck.sh?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/davautocheck.sh (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/davautocheck.sh Sun Jan 6 02:33:34 2013
@@ -219,7 +219,13 @@ fi
[ -r "$MOD_AUTHZ_SVN" ] \
|| fail "authz_svn_module not found, please use '--enable-shared --enable-dso --with-apxs' with your 'configure' script"
-BUILDDIR_LIBRARY_PATH="$ABS_BUILDDIR/subversion/libsvn_ra_neon/.libs:$ABS_BUILDDIR/subversion/libsvn_ra_local/.libs:$ABS_BUILDDIR/subversion/libsvn_ra_svn/.libs"
+for d in "$ABS_BUILDDIR"/subversion/*/.libs; do
+ if [ -z "$BUILDDIR_LIBRARY_PATH" ]; then
+ BUILDDIR_LIBRARY_PATH="$d"
+ else
+ BUILDDIR_LIBRARY_PATH="$BUILDDIR_LIBRARY_PATH:$d"
+ fi
+done
case "`uname`" in
Darwin*)
@@ -435,7 +441,7 @@ MaxRequestsPerChild 0
<IfModule worker.c>
ThreadsPerChild 8
</IfModule>
-MaxClients 16
+MaxClients 32
HostNameLookups Off
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" format
CustomLog "$HTTPD_ROOT/req" format
@@ -517,6 +523,12 @@ if [ $# -eq 1 ] && [ "x$1" = 'x--no-test
exit
fi
+if type time > /dev/null; then
+ TIME_CMD=time
+else
+ TIME_CMD=""
+fi
+
say "starting the tests..."
CLIENT_CMD="$ABS_BUILDDIR/subversion/svn/svn"
@@ -534,13 +546,13 @@ else
fi
if [ $# = 0 ]; then
- time make check "BASE_URL=$BASE_URL" $SSL_MAKE_VAR
+ $TIME_CMD make check "BASE_URL=$BASE_URL" $SSL_MAKE_VAR
r=$?
else
(cd "$ABS_BUILDDIR/subversion/tests/cmdline/"
TEST="$1"
shift
- time "$ABS_SRCDIR/subversion/tests/cmdline/${TEST}_tests.py" "--url=$BASE_URL" $SSL_TEST_ARG "$@")
+ $TIME_CMD "$ABS_SRCDIR/subversion/tests/cmdline/${TEST}_tests.py" "--url=$BASE_URL" $SSL_TEST_ARG "$@")
r=$?
fi
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/depth_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/depth_tests.py Sun Jan 6 02:33:34 2013
@@ -2084,9 +2084,9 @@ def excluded_path_update_operation(sbox)
'A/B/E' : Item(status='D '),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
expected_disk = svntest.main.greek_state.copy()
- expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
@@ -2124,8 +2124,8 @@ def excluded_path_update_operation(sbox)
expected_output = svntest.wc.State(wc_dir, {
'A/B' : Item(status='D '),
})
- expected_status.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B');
- expected_disk.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B');
+ expected_status.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B')
+ expected_disk.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
@@ -2158,8 +2158,8 @@ def excluded_path_update_operation(sbox)
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='D '),
})
- expected_status.remove('iota');
- expected_disk.remove('iota');
+ expected_status.remove('iota')
+ expected_disk.remove('iota')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
@@ -2202,9 +2202,9 @@ def excluded_path_misc_operation(sbox):
'A/B/E' : Item(status='D '),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
expected_disk = svntest.main.greek_state.copy()
- expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
@@ -2452,9 +2452,8 @@ def make_depth_tree_conflicts(sbox):
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('A/mu',
'A/B', 'A/B/lambda', 'A/B/E/alpha', 'A/B/E/beta',
- 'A/D/gamma');
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- expected_disk.remove('A/B/E', 'A/B/F')
+ 'A/D/gamma',
+ 'A/B/E', 'A/B/F')
# This test is set XFail because this (correct) status cannot be
# verified due to an "svn update" bug. The tree-conflict on A/B
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/diff_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/diff_tests.py Sun Jan 6 02:33:34 2013
@@ -3336,12 +3336,18 @@ def diff_url_against_local_mods(sbox):
'up')
# In A, add, remove and change a file, and commit.
- make_file_edit_del_add(A);
+ make_file_edit_del_add(A)
svntest.actions.run_and_verify_svn(None, None, [],
'ci', '-m', 'committing A')
# In A2, do the same changes but leave uncommitted.
- make_file_edit_del_add(A2);
+ make_file_edit_del_add(A2)
+
+ # Diff Path of A against working copy of A2.
+ # Output using arbritrary diff handling should be empty.
+ expected_output = []
+ svntest.actions.run_and_verify_svn(None, expected_output, [],
+ 'diff', '--old', A, '--new', A2)
# Diff URL of A against working copy of A2. Output should be empty.
expected_output = []
@@ -3352,7 +3358,6 @@ def diff_url_against_local_mods(sbox):
#----------------------------------------------------------------------
# Diff against old revision of the parent directory of a removed and
# locally re-added file.
-@XFail()
@Issue(3797)
def diff_preexisting_rev_against_local_add(sbox):
"diff -r1 of dir with removed-then-readded file"
@@ -3711,7 +3716,7 @@ def diff_git_with_props(sbox):
make_diff_prop_header("new") + \
make_diff_prop_added("svn:eol-style", "native") + \
make_git_diff_header(iota_path, "iota",
- "revision 1", "working copy",
+ "revision 2", "working copy",
text_changes=False) + \
make_diff_prop_header("iota") + \
make_diff_prop_added("svn:keywords", "Id")
@@ -3722,7 +3727,6 @@ def diff_git_with_props(sbox):
svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff',
'--git', wc_dir)
-@XFail()
@Issue(4010)
def diff_correct_wc_base_revnum(sbox):
"diff WC-WC shows the correct base rev num"
@@ -3769,24 +3773,31 @@ def diff_git_with_props_on_dir(sbox):
# Now commit the local mod, creating rev 2.
expected_output = svntest.wc.State(wc_dir, {
'.' : Item(verb='Sending'),
+ 'A' : Item(verb='Sending'),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.add({
'' : Item(status=' ', wc_rev=2),
})
+ expected_status.tweak('A', wc_rev=2)
- svntest.main.run_svn(None, 'ps', 'a','b', wc_dir)
+ sbox.simple_propset('k','v', '', 'A')
svntest.actions.run_and_verify_commit(wc_dir, expected_output,
expected_status, None, wc_dir)
was_cwd = os.getcwd()
os.chdir(wc_dir)
- expected_output = make_git_diff_header(".", "", "revision 1",
+ expected_output = make_git_diff_header("A", "A", "revision 1",
+ "revision 2",
+ add=False, text_changes=False) + \
+ make_diff_prop_header("A") + \
+ make_diff_prop_added("k", "v") + \
+ make_git_diff_header(".", "", "revision 1",
"revision 2",
add=False, text_changes=False) + \
make_diff_prop_header("") + \
- make_diff_prop_added("a", "b")
+ make_diff_prop_added("k", "v")
svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff',
'-c2', '--git')
@@ -3981,7 +3992,7 @@ def diff_arbitrary_files_and_dirs(sbox):
wc_dir = sbox.wc_dir
# diff iota with A/mu
- expected_output = make_diff_header("mu", "working copy", "working copy",
+ expected_output = make_diff_header("iota", "working copy", "working copy",
"iota", "A/mu") + [
"@@ -1 +1 @@\n",
"-This is the file 'iota'.\n",
@@ -4108,7 +4119,7 @@ def diff_properties_no_newline(sbox):
# may not be predictable.)
for pname, old_val, new_val in subtests:
expected_output = \
- make_diff_header("iota", "revision 1", "working copy") + \
+ make_diff_header("iota", "revision 2", "working copy") + \
make_diff_prop_header("iota") + \
make_diff_prop_modified(pname, old_val, new_val)
@@ -4118,6 +4129,28 @@ def diff_properties_no_newline(sbox):
os.chdir(old_cwd)
+def diff_arbitrary_same(sbox):
+ "diff arbitrary files and dirs but same"
+
+ sbox.build(read_only = True)
+
+ sbox.simple_propset('k', 'v', 'A', 'A/mu', 'A/D/G/pi')
+
+ svntest.main.file_write(sbox.ospath('A/mu'), "new mu")
+
+ sbox.simple_copy('A', 'A2')
+
+ svntest.actions.run_and_verify_svn(None, [], [],
+ 'diff',
+ '--old', sbox.ospath('A'),
+ '--new', sbox.ospath('A2'))
+
+ svntest.actions.run_and_verify_svn(None, [], [],
+ 'diff', '--summarize',
+ '--old', sbox.ospath('A'),
+ '--new', sbox.ospath('A2'))
+
+
########################################################################
#Run the tests
@@ -4190,6 +4223,7 @@ test_list = [ None,
diff_arbitrary_files_and_dirs,
diff_properties_only,
diff_properties_no_newline,
+ diff_arbitrary_same,
]
if __name__ == '__main__':
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/entries_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/entries_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/entries_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/entries_tests.py Sun Jan 6 02:33:34 2013
@@ -185,11 +185,8 @@ def obstructed_entries(sbox):
entries = svntest.main.run_entriesdump(D_path)
check_names(entries, 'H')
- if svntest.main.wc_is_singledb(wc_dir):
- # Data is not missing in single-db
- validate(entries['H'], revision=1)
- else:
- validate(entries['H'], revision=-1)
+ # Data is not missing in single-db
+ validate(entries['H'], revision=1)
### need to get svn_wc__db_read_info() to generate obstructed_add
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/export_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/export_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/export_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/export_tests.py Sun Jan 6 02:33:34 2013
@@ -370,9 +370,12 @@ def export_working_copy_at_base_revision
gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
E_path = os.path.join(wc_dir, 'A', 'B', 'E')
rho_path = os.path.join(wc_dir, 'A', 'D', 'G', 'rho')
+ H_path = os.path.join(wc_dir, 'A', 'D', 'H')
+ phi_path = os.path.join(wc_dir, 'A', 'D', 'H', 'phi')
+ chi_path = os.path.join(wc_dir, 'A', 'D', 'H', 'chi')
# Make some local modifications: modify mu and C, add kappa and K, delete
- # gamma and E, and replace rho. (Directories can't yet be replaced.)
+ # gamma and E, and replace rho and H.
# These modifications should *not* get exported at the base revision.
svntest.main.file_append(mu_path, 'Appended text')
svntest.main.run_svn(None, 'propset', 'p', 'v', mu_path, C_path)
@@ -383,6 +386,12 @@ def export_working_copy_at_base_revision
svntest.main.run_svn(None, 'rm', rho_path)
svntest.main.file_append(rho_path, "Replacement file 'rho'.")
svntest.main.run_svn(None, 'add', rho_path)
+ svntest.main.run_svn(None, 'rm', H_path)
+ svntest.main.run_svn(None, 'mkdir', H_path)
+ svntest.main.file_append(phi_path, "This is the file 'phi'.")
+ svntest.main.run_svn(None, 'add', phi_path)
+ svntest.main.file_append(chi_path, "Replacement file 'chi'.")
+ svntest.main.run_svn(None, 'add', chi_path)
# Note that we don't tweak the expected disk tree at all,
# since the modifications should not be present.
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests.py Sun Jan 6 02:33:34 2013
@@ -59,6 +59,9 @@ def load_expected_output(basename):
return exp_stdout, exp_stderr
+# With plaintext password storage enabled, `svn --version' emits a warning:
+warn_line_re = re.compile("WARNING: Plaintext password storage")
+
# This is a list of lines to delete.
del_lines_res = [
# In 'svn --version', the date line is variable, for example:
@@ -100,6 +103,7 @@ rep_lines_res = [
switch_res_line = 'System information:'
# This is a list of lines to delete after having seen switch_res_line.
+switched_warn_line_re = None
switched_del_lines_res = [
# In svn --version --verbose, dependent libs loaded
# shared libs are optional.
@@ -119,20 +123,31 @@ switched_rep_lines_res = [
def process_lines(lines):
"delete lines that should not be compared and search and replace the rest"
output = [ ]
+ warn_re = warn_line_re
del_res = del_lines_res
rep_res = rep_lines_res
+ skip_next_line = 0
for line in lines:
+ if skip_next_line:
+ skip_next_line = 0
+ continue
+
if line.startswith(switch_res_line):
+ warn_re = switched_warn_line_re
del_res = switched_del_lines_res
rep_res = switched_rep_lines_res
# Skip these lines from the output list.
delete_line = 0
- for delete_re in del_res:
- if delete_re.match(line):
- delete_line = 1
- break
+ if warn_re and warn_re.match(line):
+ delete_line = 1
+ skip_next_line = 1 # Ignore the empty line after the warning
+ else:
+ for delete_re in del_res:
+ if delete_re.match(line):
+ delete_line = 1
+ break
if delete_line:
continue
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout Sun Jan 6 02:33:34 2013
@@ -116,7 +116,10 @@ Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG
--no-auth-cache : do not cache authentication tokens
- --non-interactive : do no interactive prompting
+ --non-interactive : do no interactive prompting (default is to prompt
+ only if standard input is a terminal device)
+ --force-interactive : do interactive prompting even if standard input
+ is not a terminal device
--trust-server-cert : accept SSL server certificates from unknown
certificate authorities without prompting (but only
with '--non-interactive')
@@ -196,7 +199,10 @@ Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG
--no-auth-cache : do not cache authentication tokens
- --non-interactive : do no interactive prompting
+ --non-interactive : do no interactive prompting (default is to prompt
+ only if standard input is a terminal device)
+ --force-interactive : do interactive prompting even if standard input
+ is not a terminal device
--trust-server-cert : accept SSL server certificates from unknown
certificate authorities without prompting (but only
with '--non-interactive')
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/history_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/history_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/history_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/history_tests.py Sun Jan 6 02:33:34 2013
@@ -64,7 +64,7 @@ def cat_traces_renames(sbox):
'A/D/G/bloo' : Item(verb='Adding')
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/D/G/rho');
+ expected_status.remove('A/D/G/rho')
expected_status.add({ 'A/D/G/bloo' :
Item(wc_rev=2, status=' ') })
@@ -87,7 +87,7 @@ def cat_traces_renames(sbox):
'A/D/G/rho' : Item(verb='Adding')
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/D/G/pi');
+ expected_status.remove('A/D/G/pi')
expected_status.tweak('A/D/G/rho', wc_rev=3)
expected_status.add({ 'A/D/G/bloo' :
Item(wc_rev=2, status=' ') })
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/info_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/info_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/info_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/info_tests.py Sun Jan 6 02:33:34 2013
@@ -522,8 +522,65 @@ def binary_tree_conflict(sbox):
}]
svntest.actions.run_and_verify_info(expected_info, iota)
+def relpath_escaping(sbox):
+ "relpath escaping should be usable as-is"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ name = 'path with space, +, % and #'
+ name2 = 'path with %20'
+ sbox.simple_copy('iota', name)
+ sbox.simple_copy('iota', name2)
+ sbox.simple_commit()
+
+ testpath = sbox.ospath(name)
+
+ expected = {'Path' : re.escape(testpath),
+ 'URL' : '.*/path.*with.*space.*',
+ 'Relative URL' : '.*/path.*with.*space.*',
+ }
+
+ svntest.actions.run_and_verify_info([expected], sbox.ospath(name))
+
+ info = svntest.actions.run_and_parse_info(sbox.ospath(name), sbox.ospath(name2))
+
+ # And now verify that the returned URL and relative url are usable
+
+ # Also test the local path (to help resolving the relative path) and an
+ # unescaped path which the client should automatically encode
+ svntest.actions.run_and_verify_svn(None, None, [], 'info',
+ info[0]['Relative URL'],
+ info[0]['URL'],
+ testpath,
+ '^/' + name,
+
+ info[1]['Relative URL'],
+ info[1]['URL'])
+
+ # And now do the same thing with a the file external handling
+ sbox.simple_propset('svn:externals',
+ info[0]['Relative URL'] + " f1\n" +
+ info[0]['URL'] + " f2\n" +
+ '"^/' + name + "\" f3\n" +
+
+ info[1]['Relative URL'] + " g1\n" +
+ info[1]['URL'] + " g2\n",
+ ''
+ )
+
+ # And now we expect to see 3 file externals
+ expected_output = svntest.wc.State(wc_dir, {
+ 'f1' : Item(status='A '),
+ 'f2' : Item(status='A '),
+ 'f3' : Item(status='A '),
+
+ 'g1' : Item(status='A '),
+ 'g2' : Item(status='A '),
+ })
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output, None, None)
########################################################################
# Run the tests
@@ -539,6 +596,7 @@ test_list = [ None,
info_repos_root_url,
info_show_exclude,
binary_tree_conflict,
+ relpath_escaping,
]
if __name__ == '__main__':
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/lock_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/lock_tests.py Sun Jan 6 02:33:34 2013
@@ -855,12 +855,7 @@ def lock_switched_files(sbox):
expected_status.tweak('A/D/gamma', 'A/B/lambda', writelocked='K')
# In WC-NG locks are kept per working copy, not per file
- if svntest.main.wc_is_singledb(wc_dir):
- # In single-db you see these files are locked locally
- expected_status.tweak('A/B/E/alpha', 'iota', writelocked='K')
- else:
- # In multi-db you see these files are not locked in the right dir
- expected_status.tweak('A/B/E/alpha', 'iota', writelocked='O')
+ expected_status.tweak('A/B/E/alpha', 'iota', writelocked='K')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
@@ -1437,15 +1432,10 @@ def lock_twice_in_one_wc(sbox):
os.chmod(mu2_path, 0700)
svntest.main.file_append(mu2_path, "Updated text")
- if svntest.main.wc_is_singledb(wc_dir):
- # Commit will just succeed as the DB owns the lock. It's a user decision
- # to commit the other target instead of the one originally locked
- expected_err = []
- else:
- # Commit should fail because it is locked in the other location
- expected_err = '.*(([Nn]o)|(Server)).*[lL]ock.*'
+ # Commit will just succeed as the DB owns the lock. It's a user decision
+ # to commit the other target instead of the one originally locked
- svntest.actions.run_and_verify_svn(None, None, expected_err,
+ svntest.actions.run_and_verify_svn(None, None, [],
'commit', mu2_path, '-m', '')
#----------------------------------------------------------------------
@@ -1520,7 +1510,7 @@ def verify_path_escaping(sbox):
'file #1' : Item(status=' ', writelocked='K', wc_rev='2'),
'file #2' : Item(status=' ', writelocked='O', wc_rev='2'),
'file #3' : Item(status=' ', writelocked='B', wc_rev='2')
- });
+ })
# Make sure the file locking is reported correctly
svntest.actions.run_and_verify_status(wc_dir, expected_status)
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/log_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/log_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/log_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/log_tests.py Sun Jan 6 02:33:34 2013
@@ -1006,7 +1006,7 @@ def log_xml_empty_date(sbox):
# Create the revprop-change hook for this test
svntest.actions.enable_revprop_changes(sbox.repo_dir)
- date_re = re.compile('<date');
+ date_re = re.compile('<date')
# Ensure that we get a date before we delete the property.
exit_code, output, errput = svntest.actions.run_and_verify_svn(
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/merge_authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/merge_authz_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/merge_authz_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/merge_authz_tests.py Sun Jan 6 02:33:34 2013
@@ -184,7 +184,7 @@ def mergeinfo_and_skipped_paths(sbox):
'C' : Item(),
})
expected_skip = wc.State(A_COPY_path, {
- 'B/E' : Item(),
+ 'B/E' : Item(verb='Skipped missing target'),
})
svntest.actions.run_and_verify_merge(A_COPY_path, '4', '8',
sbox.repo_url + '/A', None,
@@ -256,9 +256,9 @@ def mergeinfo_and_skipped_paths(sbox):
'C' : Item(),
})
expected_skip = wc.State(A_COPY_2_path, {
- 'B/E' : Item(),
- 'D/G' : Item(),
- 'D/H/psi' : Item(),
+ 'B/E' : Item(verb='Skipped missing target'),
+ 'D/G/rho' : Item(verb='Skipped'),
+ 'D/H/psi' : Item(verb='Skipped missing target'),
})
svntest.actions.run_and_verify_merge(A_COPY_2_path, '4', '8',
sbox.repo_url + '/A', None,
@@ -323,7 +323,8 @@ def mergeinfo_and_skipped_paths(sbox):
'mu' : Item("This is the file 'mu'.\n"),
'C' : Item(),
})
- expected_skip = wc.State(A_COPY_3_path, {'B/E' : Item()})
+ expected_skip = wc.State(A_COPY_3_path,
+ {'B/E' : Item(verb='Skipped missing target')})
svntest.actions.run_and_verify_merge(A_COPY_3_path, '5', '7',
sbox.repo_url + '/A', None,
expected_output,
@@ -361,7 +362,7 @@ def mergeinfo_and_skipped_paths(sbox):
'chi' : Item("This is the file 'chi'.\n"),
})
expected_skip = wc.State(A_COPY_2_H_path, {
- 'psi' : Item(),
+ 'psi' : Item(verb='Skipped missing target'),
})
# Note we don't bother checking expected mergeinfo output because the
# multiple merges being performed here, -c5 and -c8, will result in
@@ -470,7 +471,7 @@ def mergeinfo_and_skipped_paths(sbox):
props={SVN_PROP_MERGEINFO : '/A/D/H/zeta:9'}),
})
expected_skip = wc.State(A_COPY_2_H_path, {
- 'psi' : Item(),
+ 'psi' : Item(verb='Skipped missing target'),
})
svntest.actions.run_and_verify_merge(A_COPY_2_H_path, '4', '9',
sbox.repo_url + '/A/D/H', None,
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/merge_automatic_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/merge_automatic_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/merge_automatic_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/merge_automatic_tests.py Sun Jan 6 02:33:34 2013
@@ -762,10 +762,11 @@ def cherry3_fwd(sbox):
def subtree_to_and_fro(sbox):
"reintegrate considers source subtree mergeinfo"
-# A (--o-o-o-o---------x
-# ( \ \ /
-# ( \ \ /
-# B ( o--o------s--
+ # A (-----o-o-o-o------------x
+ # ( \ \ /
+ # ( \ \ /
+ # A_COPY ( o---------o--s--o--
+ # 2 3 4 5 6 7 8 9
# Some paths we'll care about.
A_COPY_gamma_path = sbox.ospath('A_COPY/D/gamma')
@@ -777,7 +778,7 @@ def subtree_to_and_fro(sbox):
wc_dir = sbox.wc_dir
# Setup a simple 'trunk & branch': Copy ^/A to ^/A_COPY in r2 and then
- # make a few edits under A in r3-6:
+ # make a few edits under A in r3-6 (edits r3, r4, r6 are under subtree 'D'):
wc_disk, wc_status = set_up_branch(sbox)
# r7 - Edit a file on the branch.
@@ -803,21 +804,12 @@ def subtree_to_and_fro(sbox):
# not considered a merge. So the changes which exist on A/D and were
# merged to A_COPY/D, are merged *back* to A, resulting in a conflict:
#
- # C:\SVN\src-trunk\Debug\subversion\tests\cmdline\svn-test-work\
- # working_copies\merge_automatic_tests-18>svn merge ^^/A_COPY A
- # DBG: merge.c:11461: base on source: file:///C:/SVN/src-trunk/Debug/
- # subversion/tests/cmdline/svn-test-work/repositories/
- # merge_automatic_tests-18/A@1
- # DBG: merge.c:11462: base on target: file:///C:/SVN/src-trunk/Debug/
- # subversion/tests/cmdline/svn-test-work/repositories/
- # merge_automatic_tests-18/A@1
- # DBG: merge.c:11567: yca file:///C:/SVN/src-trunk/Debug/subversion/
- # tests/cmdline/svn-test-work/repositories/merge_automatic_tests-18/A@1
- # DBG: merge.c:11568: base file:///C:/SVN/src-trunk/Debug/subversion/
- # tests/cmdline/svn-test-work/repositories/merge_automatic_tests-18/A@1
- # DBG: merge.c:11571: right file:///C:/SVN/src-trunk/Debug/subversion/
- # tests/cmdline/svn-test-work/repositories/merge_automatic_tests-18/
- # A_COPY@8
+ # C:\...\working_copies\merge_automatic_tests-18>svn merge ^^/A_COPY A
+ # DBG: merge.c:11461: base on source: ^/A@1
+ # DBG: merge.c:11462: base on target: ^/A@1
+ # DBG: merge.c:11567: yca ^/A@1
+ # DBG: merge.c:11568: base ^/A@1
+ # DBG: merge.c:11571: right ^/A_COPY@8
# Conflict discovered in file 'A\D\H\psi'.
# Select: (p) postpone, (df) diff-full, (e) edit,
# (mc) mine-conflict, (tc) theirs-conflict,
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/merge_reintegrate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/merge_reintegrate_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/merge_reintegrate_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/merge_reintegrate_tests.py Sun Jan 6 02:33:34 2013
@@ -818,13 +818,13 @@ def reintegrate_on_shallow_wc(sbox):
# Now revert the reintegrate and make a second change on the
# branch in r4, but this time change a subtree that corresponds
# to the missing (shallow) portion of the source. The reintegrate
- # should still succeed, albeit skipping some paths.
+ # should still succeed.
svntest.actions.run_and_verify_svn(None, None, [], 'revert', '-R', wc_dir)
svntest.main.file_write(psi_COPY_path, "more branch work")
svntest.main.run_svn(None, 'commit', '-m',
'Some more work on the A_COPY branch', wc_dir)
- # Reuse the same expectations as the prior merge, except that
- # non-inheritable mergeinfo is set on the root of the missing subtree...
+ # Reuse the same expectations as the prior merge, except for the mergeinfo
+ # on the target root that now includes the latest rev on the branch.
expected_mergeinfo_output.add({
'D' : Item(status=' U')
})
@@ -832,9 +832,11 @@ def reintegrate_on_shallow_wc(sbox):
expected_A_disk.tweak('D', props={SVN_PROP_MERGEINFO : '/A_COPY/D:2-4*'})
# ... a depth-restricted item is skipped ...
expected_A_skip.add({
- 'D/H' : Item()
+ 'D/H/psi' : Item(verb='Skipped')
})
- # ... and the mergeinfo on the target root includes the latest rev on the branch.
+ # Currently this fails due to r1424469. For a full explanation see
+ # http://svn.haxx.se/dev/archive-2012-12/0472.shtml
+ # and http://svn.haxx.se/dev/archive-2012-12/0475.shtml
expected_A_disk.tweak('', props={SVN_PROP_MERGEINFO : '/A_COPY:2-4'})
svntest.actions.run_and_verify_merge(A_path, None, None,
sbox.repo_url + '/A_COPY', None,
@@ -858,9 +860,9 @@ def reintegrate_fail_on_stale_source(sbo
mu_path = os.path.join(A_path, "mu")
svntest.main.file_append(mu_path, 'some text appended to mu\n')
svntest.actions.run_and_verify_svn(None, None, [], 'commit',
- '-m', 'a change to mu', mu_path);
+ '-m', 'a change to mu', mu_path)
# Unmix the revisions in the working copy.
- svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir);
+ svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir)
# The merge --reintegrate succeeds but since there were no changes
# on A_COPY after it was branched the only result is updated mergeinfo
# on the reintegrate target.
@@ -1265,8 +1267,7 @@ def reintegrate_with_subtree_mergeinfo(s
# rev N+3. The renamed subtree on 'branch' now has additional explicit
# mergeinfo decribing the synch merge from trunk@N+1 to trunk@N+2.
#
- # E) Reintegrate 'branch' to 'trunk'. This fails as it appears not all
- # of 'trunk' was previously merged to 'branch'
+ # E) Reintegrate 'branch' to 'trunk'.
#
# Step: A B C D E
# A_COPY_3 ---[9]--
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tests.py Sun Jan 6 02:33:34 2013
@@ -1490,7 +1490,7 @@ def merge_skips_obstructions(sbox):
'Q/bar' : Item(status=' ', wc_rev='-', copied='+'),
})
expected_skip = wc.State(C_path, {
- 'foo' : Item(),
+ 'foo' : Item(verb='Skipped'),
})
# Unversioned:
svntest.main.file_append(os.path.join(C_path, "foo"), "foo")
@@ -1534,8 +1534,8 @@ def merge_skips_obstructions(sbox):
'foo' : Item(status='A ', wc_rev='-', copied='+'),
})
expected_skip = wc.State(C_path, {
- 'Q' : Item(),
- 'Q/bar' : Item(),
+ 'Q' : Item(verb='Skipped'),
+ 'Q/bar' : Item(verb='Skipped'),
})
svntest.actions.run_and_verify_merge(C_path, '1', '2', F_url, None,
@@ -1595,8 +1595,8 @@ def merge_skips_obstructions(sbox):
# No-op merge still sets mergeinfo
expected_status.tweak('', status=' M')
expected_skip = wc.State(wc_dir, {
- 'iota' : Item(),
- 'A/D/G' : Item(),
+ 'iota' : Item(verb='Skipped'),
+ 'A/D/G' : Item(verb='Skipped'),
})
svntest.actions.run_and_verify_merge(wc_dir, '2', '3',
sbox.repo_url, None,
@@ -1657,7 +1657,7 @@ def merge_skips_obstructions(sbox):
expected_disk.remove('A/D/G')
expected_disk.tweak('', props={SVN_PROP_MERGEINFO : '/:4'})
expected_skip = wc.State(wc_dir, {
- 'A/B/lambda' : Item(),
+ 'A/B/lambda' : Item(verb='Skipped'),
})
# No-op merge still sets mergeinfo.
expected_status_short = expected_status.copy(wc_dir)
@@ -1705,6 +1705,9 @@ def merge_skips_obstructions(sbox):
expected_disk.remove('A/B/lambda')
expected_status.tweak('A/B/lambda', status='! ')
expected_status.tweak('', status=' ')
+ expected_skip = wc.State(wc_dir, {
+ 'A/B/lambda' : Item(verb='Skipped missing target'),
+ })
# Why do we need to --ignore-ancestry? Because the previous merge of r4,
# despite being inoperative, set mergeinfo for r4 on the WC. With the
# advent of merge tracking this repeat merge attempt would not be attempted.
@@ -1735,8 +1738,6 @@ def merge_into_missing(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- single_db = svntest.main.wc_is_singledb(wc_dir)
-
F_path = sbox.ospath('A/B/F')
F_url = sbox.repo_url + '/A/B/F'
Q_path = os.path.join(F_path, 'Q')
@@ -1798,23 +1799,16 @@ def merge_into_missing(sbox):
expected_status = wc.State(F_path, {
'' : Item(status=' ', wc_rev=1),
'foo' : Item(status='! ', wc_rev=2),
- 'Q' : Item(status='! ', wc_rev='?'),
- })
- expected_skip = wc.State(F_path, {
- 'Q' : Item(),
- 'foo' : Item(),
- })
-
- if single_db:
- # Revision not lost
- expected_status.tweak('Q', wc_rev=2)
+ 'Q' : Item(status='! ', wc_rev=2),
# Missing data still available
- expected_status.add({
- 'Q/R' : Item(status='! ', wc_rev='3'),
- 'Q/R/bar' : Item(status='! ', wc_rev='3'),
- 'Q/baz' : Item(status='! ', wc_rev='3'),
+ 'Q/R' : Item(status='! ', wc_rev=3),
+ 'Q/R/bar' : Item(status='! ', wc_rev=3),
+ 'Q/baz' : Item(status='! ', wc_rev=3),
+ })
+ expected_skip = wc.State(F_path, {
+ 'Q' : Item(verb='Skipped missing target'),
+ 'foo' : Item(verb='Skipped missing target'),
})
-
# Use --ignore-ancestry because merge tracking aware merges raise an
# error when the merge target is missing subtrees due to OS-level
# deletes.
@@ -1837,20 +1831,15 @@ def merge_into_missing(sbox):
expected_status = wc.State(F_path, {
'' : Item(status=' ', wc_rev=1),
'foo' : Item(status='! ', wc_rev=2),
- 'Q' : Item(status='! ', wc_rev='?'),
- })
- expected_mergeinfo_output = wc.State(F_path, {
- })
-
- if single_db:
+ 'Q' : Item(status='! ', entry_rev='?', wc_rev='2'),
# Revision is known and we can record mergeinfo
- expected_status.tweak('Q', wc_rev='2', entry_rev='?')
- expected_status.add({
- 'Q/R' : Item(status='! ', wc_rev='3'),
- 'Q/R/bar' : Item(status='! ', wc_rev='3'),
- 'Q/baz' : Item(status='! ', wc_rev='3'),
+ 'Q/R' : Item(status='! ', wc_rev='3'),
+ 'Q/R/bar' : Item(status='! ', wc_rev='3'),
+ 'Q/baz' : Item(status='! ', wc_rev='3'),
+ })
+ expected_mergeinfo_output = wc.State(F_path, {
})
-
+
svntest.actions.run_and_verify_merge(F_path, '1', '2', F_url, None,
expected_output,
expected_mergeinfo_output,
@@ -1879,18 +1868,11 @@ def merge_into_missing(sbox):
expected_status.add({
'A/B/F' : Item(status=' ', wc_rev=1),
'A/B/F/foo' : Item(status='! ', wc_rev=2),
- 'A/B/F/Q' : Item(status='! ', wc_rev='?'),
- })
- if single_db:
- # Revision known and mergeinfo recorded
- expected_status.tweak('A/B/F/Q', wc_rev='2')
- # Missing data still available
- expected_status.add({
- 'A/B/F/Q' : Item(status='! ', wc_rev='2'),
- 'A/B/F/Q/baz' : Item(status='! ', wc_rev='3'),
- 'A/B/F/Q/R' : Item(status='! ', wc_rev='3'),
- 'A/B/F/Q/R/bar' : Item(status='! ', wc_rev='3'),
- })
+ 'A/B/F/Q' : Item(status='! ', wc_rev=2),
+ 'A/B/F/Q/baz' : Item(status='! ', wc_rev='3'),
+ 'A/B/F/Q/R' : Item(status='! ', wc_rev='3'),
+ 'A/B/F/Q/R/bar' : Item(status='! ', wc_rev='3'),
+ })
svntest.actions.run_and_verify_status(wc_dir, expected_status)
@@ -4941,56 +4923,54 @@ def mergeinfo_inheritance(sbox):
# In single-db mode you can't create a disconnected working copy by just
# copying a subdir
- if svntest.main.wc_is_singledb(wc_dir):
- return
- # Copy the subtree A_COPY/B/E from the working copy, making the
- # disconnected WC E_only.
- other_wc = sbox.add_wc_path('E_only')
- svntest.actions.duplicate_dir(E_COPY_path, other_wc)
-
- # Update the disconnected WC it so it will get the most recent mergeinfo
- # from the repos when merging.
- svntest.actions.run_and_verify_svn(None, exp_noop_up_out(7), [], 'up',
- other_wc)
-
- # Merge r5:4 into the root of the disconnected WC.
- # E_only has no explicit mergeinfo and since it's the root of the WC
- # cannot inherit any mergeinfo from a working copy ancestor path. Nor
- # does it have any mergeinfo explicitly set on it in the repository.
- # An ancestor path on the repository side, A_COPY/B does have the merge
- # info '/A/B:5' however and E_only should inherit this, resulting in
- # empty mergeinfo after the removal of r5 (A_COPY has mergeinfo of
- # '/A:3' so this empty mergeinfo is needed to override that.
- expected_output = wc.State(other_wc,
- {'beta' : Item(status='U ')})
- expected_mergeinfo_output = wc.State(other_wc, {
- '' : Item(status=' G')
- })
- expected_elision_output = wc.State(other_wc, {
- })
- expected_status = wc.State(other_wc, {
- '' : Item(status=' M', wc_rev=7),
- 'alpha' : Item(status=' ', wc_rev=7),
- 'beta' : Item(status='M ', wc_rev=7),
- })
- expected_disk = wc.State('', {
- '' : Item(props={SVN_PROP_MERGEINFO : ''}),
- 'alpha' : Item("This is the file 'alpha'.\n"),
- 'beta' : Item("This is the file 'beta'.\n"),
- })
- expected_skip = wc.State(other_wc, { })
-
- svntest.actions.run_and_verify_merge(other_wc, '5', '4',
- sbox.repo_url + '/A/B/E', None,
- expected_output,
- expected_mergeinfo_output,
- expected_elision_output,
- expected_disk,
- expected_status,
- expected_skip,
- None, None, None, None,
- None, 1)
+ ## Copy the subtree A_COPY/B/E from the working copy, making the
+ ## disconnected WC E_only.
+ #other_wc = sbox.add_wc_path('E_only')
+ #svntest.actions.duplicate_dir(E_COPY_path, other_wc)
+ #
+ ## Update the disconnected WC it so it will get the most recent mergeinfo
+ ## from the repos when merging.
+ #svntest.actions.run_and_verify_svn(None, exp_noop_up_out(7), [], 'up',
+ # other_wc)
+ #
+ ## Merge r5:4 into the root of the disconnected WC.
+ ## E_only has no explicit mergeinfo and since it's the root of the WC
+ ## cannot inherit any mergeinfo from a working copy ancestor path. Nor
+ ## does it have any mergeinfo explicitly set on it in the repository.
+ ## An ancestor path on the repository side, A_COPY/B does have the merge
+ ## info '/A/B:5' however and E_only should inherit this, resulting in
+ ## empty mergeinfo after the removal of r5 (A_COPY has mergeinfo of
+ ## '/A:3' so this empty mergeinfo is needed to override that.
+ #expected_output = wc.State(other_wc,
+ # {'beta' : Item(status='U ')})
+ #expected_mergeinfo_output = wc.State(other_wc, {
+ # '' : Item(status=' G')
+ # })
+ #expected_elision_output = wc.State(other_wc, {
+ # })
+ #expected_status = wc.State(other_wc, {
+ # '' : Item(status=' M', wc_rev=7),
+ # 'alpha' : Item(status=' ', wc_rev=7),
+ # 'beta' : Item(status='M ', wc_rev=7),
+ # })
+ #expected_disk = wc.State('', {
+ # '' : Item(props={SVN_PROP_MERGEINFO : ''}),
+ # 'alpha' : Item("This is the file 'alpha'.\n"),
+ # 'beta' : Item("This is the file 'beta'.\n"),
+ # })
+ #expected_skip = wc.State(other_wc, { })
+ #
+ #svntest.actions.run_and_verify_merge(other_wc, '5', '4',
+ # sbox.repo_url + '/A/B/E', None,
+ # expected_output,
+ # expected_mergeinfo_output,
+ # expected_elision_output,
+ # expected_disk,
+ # expected_status,
+ # expected_skip,
+ # None, None, None, None,
+ # None, 1)
#----------------------------------------------------------------------
@SkipUnless(server_has_mergeinfo)
@@ -6964,9 +6944,7 @@ def merge_loses_mergeinfo(sbox):
expected_elision_output = wc.State(A_C_wc_dir, {
'' : Item(status=' U'),
})
- expected_disk = wc.State('', {'J': Item()})
- if svntest.main.wc_is_singledb(wc_dir):
- expected_disk.remove('J')
+ expected_disk = wc.State('', {})
expected_status = wc.State(A_C_wc_dir,
{ '' : Item(wc_rev=4, status=' M'),
'J' : Item(wc_rev=4, status='D ')
@@ -6985,11 +6963,8 @@ def merge_loses_mergeinfo(sbox):
expected_output = wc.State(A_C_wc_dir, {'K' : Item(status='A ')})
expected_disk = wc.State('', {
'K' : Item(),
- 'J' : Item(),
'' : Item(props={SVN_PROP_MERGEINFO : '/A/B:3'}),
})
- if svntest.main.wc_is_singledb(wc_dir):
- expected_disk.remove('J')
expected_status = wc.State(A_C_wc_dir,
{ '' : Item(wc_rev=4, status=' M'),
'K' : Item(status='A ',
@@ -7652,7 +7627,7 @@ def merge_away_subtrees_noninheritable_r
None, None, None, None, None, 1, 1,
'--depth', 'empty', H_COPY_2_path)
svntest.actions.run_and_verify_svn(None, None, [], 'commit', '-m',
- 'log msg', wc_dir);
+ 'log msg', wc_dir)
svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
# Now reverse the prior merge. Issue #3392 manifests itself here with
# a mergeinfo parsing error:
@@ -7816,6 +7791,10 @@ def merge_to_sparse_directories(sbox):
# by the merge, 'B' and 'D', get non-inheritable mergeinfo for r4:9.
# The root and 'D' do should also get the changes
# that affect them directly (the prop adds from r8 and r9).
+ #
+ # Currently this fails due to r1424469. For a full explanation see
+ # http://svn.haxx.se/dev/archive-2012-12/0472.shtml
+ # and http://svn.haxx.se/dev/archive-2012-12/0475.shtml
expected_output = wc.State(immediates_dir, {
'D' : Item(status=' U'),
'mu' : Item(status='U '),
@@ -7845,8 +7824,8 @@ def merge_to_sparse_directories(sbox):
"prop:name" : "propval"}),
})
expected_skip = svntest.wc.State(immediates_dir, {
- 'D/H' : Item(),
- 'B/E' : Item(),
+ 'D/H/omega' : Item(verb="Skipped"),
+ 'B/E/beta' : Item(verb="Skipped"),
})
svntest.actions.run_and_verify_merge(immediates_dir, '4', '9',
sbox.repo_url + '/A', None,
@@ -7899,8 +7878,9 @@ def merge_to_sparse_directories(sbox):
props={SVN_PROP_MERGEINFO : '/A/mu:5-9'}),
})
expected_skip = svntest.wc.State(files_dir, {
- 'D' : Item(),
- 'B' : Item(),
+ 'D' : Item(verb="Skipped"),
+ 'D/H/omega' : Item(verb="Skipped"),
+ 'B/E/beta' : Item(verb="Skipped"),
})
svntest.actions.run_and_verify_merge(files_dir, '4', '9',
sbox.repo_url + '/A', None,
@@ -7942,9 +7922,10 @@ def merge_to_sparse_directories(sbox):
"prop:name" : "propval"}),
})
expected_skip = svntest.wc.State(empty_dir, {
- 'mu' : Item(),
- 'D' : Item(),
- 'B' : Item(),
+ 'mu' : Item(verb="Skipped missing target"),
+ 'D' : Item(verb="Skipped"),
+ 'D/H/omega' : Item(verb="Skipped"),
+ 'B/E/beta' : Item(verb="Skipped"),
})
svntest.actions.run_and_verify_merge(empty_dir, '4', '9',
sbox.repo_url + '/A', None,
@@ -14014,7 +13995,6 @@ def no_self_referential_filtering_on_add
'/A_COPY/C:8\n' +
'/A_COPY/C_MOVED:8',
'propname' : 'propval'}),
- 'C' : Item(),
'D' : Item(),
'D/G' : Item(),
'D/G/pi' : Item("This is the file 'pi'.\n"),
@@ -14026,8 +14006,6 @@ def no_self_referential_filtering_on_add
'D/H/psi' : Item("New content"),
'D/H/omega' : Item("New content"),
})
- if svntest.main.wc_is_singledb(wc_dir):
- expected_A_COPY_2_disk.remove('C')
expected_A_COPY_2_skip = wc.State(A_COPY_2_path, { })
svntest.actions.run_and_verify_merge(A_COPY_2_path, None, None,
sbox.repo_url + '/A', None,
@@ -14842,7 +14820,7 @@ def noop_file_merge(sbox):
[], 'merge', '-c5', sbox.repo_url + '/A', A_COPY_path)
svntest.actions.run_and_verify_svn(None, None, [], 'commit', '-m',
'Merge r5 from A to A_COPY',
- wc_dir);
+ wc_dir)
# Update working copy to allow full inheritance and elision.
svntest.actions.run_and_verify_svn(None, exp_noop_up_out(7), [],
@@ -15434,9 +15412,10 @@ def skipped_files_get_correct_mergeinfo(
'D/gamma' : Item("This is the file 'gamma'.\n"),
'D/H' : Item(props={SVN_PROP_MERGEINFO : '/A/D/H:2*,3,4-8*'}),
})
- expected_skip = wc.State(A_COPY_path,
- {'D/H/psi' : Item(),
- 'D/H/omega' : Item()})
+ expected_skip = wc.State(
+ A_COPY_path,
+ {'D/H/psi' : Item(verb='Skipped missing target'),
+ 'D/H/omega' : Item(verb='Skipped missing target')})
expected_output = wc.State(A_COPY_path,
{'B/E/beta' : Item(status='U '),
'D/G/rho' : Item(status='U ')})
@@ -15591,14 +15570,13 @@ def committed_case_only_move_and_revert(
})
expected_disk.tweak('', props={SVN_PROP_MERGEINFO : '/A:3,5'})
expected_disk.add({'c' : Item()})
- if svntest.main.wc_is_singledb(wc_dir):
- expected_disk.remove('C')
+ expected_disk.remove('C')
expected_status.tweak('MU', status=' ', wc_rev=4, copied=None)
expected_status.remove('mu')
expected_status.tweak('C', status='D ')
expected_status.tweak('', wc_rev=4)
expected_status.add({'c' : Item(status='A ', copied='+', wc_rev='-')})
- # This merge succeeds, but A_COPY/c is in a strange state, added with
+ # This merge succeeds. It used to leave a strange state, added with
# history but missing:
#
# M merge_tests-139\A_COPY
@@ -15734,7 +15712,7 @@ def foreign_repos_del_and_props(sbox):
wc_dir = sbox.wc_dir
wc2_dir = sbox.add_wc_path('wc2')
- (r2_path, r2_url) = sbox.add_repo_path('fgn');
+ (r2_path, r2_url) = sbox.add_repo_path('fgn')
svntest.main.create_repos(r2_path)
svntest.actions.run_and_verify_svn(None, None, [], 'checkout',
@@ -16135,7 +16113,7 @@ def merge_into_locally_added_file(sbox):
shutil.copy(pi_path, new_path)
svntest.main.file_append(pi_path, "foo\n")
- sbox.simple_commit(); # r2
+ sbox.simple_commit() # r2
sbox.simple_add('A/D/G/new')
@@ -16180,7 +16158,7 @@ def merge_into_locally_added_directory(s
new_dir_path = sbox.ospath("A/D/new_dir")
svntest.main.file_append_binary(pi_path, "foo\n")
- sbox.simple_commit(); # r2
+ sbox.simple_commit() # r2
os.mkdir(new_dir_path)
svntest.main.file_append_binary(os.path.join(new_dir_path, 'pi'),
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/merge_tree_conflict_tests.py Sun Jan 6 02:33:34 2013
@@ -625,7 +625,6 @@ def mergeinfo_recording_in_skipped_merge
'B' : Item(),
'B/lambda' : Item(contents="This is the file 'lambda'.\n"),
'B/F' : Item(),
- 'B/E' : Item(),
'D/gamma' : Item("This is the file 'gamma'.\n"),
'D/G' : Item(),
'D/G/pi' : Item("This is the file 'pi'.\n"),
@@ -636,9 +635,6 @@ def mergeinfo_recording_in_skipped_merge
'D/H/omega': Item("This is the file 'omega'.\n"),
'D/H/psi' : Item("This is the file 'psi'.\n"),
})
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- # Delete removes directories in single-db
- expected_disk.remove('B/E')
expected_skip = wc.State(A_COPY_path, {})
svntest.actions.run_and_verify_merge(A_COPY_path, None, None,
A_url, None,
@@ -769,7 +765,7 @@ def tree_conflicts_and_obstructions(sbox
'beta' : Item(status=' ', wc_rev=3),
})
expected_skip = wc.State(branch_path, {
- 'alpha-moved' : Item(),
+ 'alpha-moved' : Item(verb='Skipped'),
})
svntest.actions.run_and_verify_merge(branch_path,
@@ -1299,48 +1295,38 @@ def tree_conflicts_merge_edit_onto_missi
'F' : Item(status=' ', wc_rev=3),
'F/alpha' : Item(status='! ', wc_rev=3),
'D' : Item(status=' ', wc_rev=3),
- 'D/D1' : Item(status='! ', wc_rev='?'),
+ 'D/D1' : Item(status='! ', wc_rev='3', entry_rev='?'),
'DF' : Item(status=' ', wc_rev=3),
- 'DF/D1' : Item(status='! ', wc_rev='?'),
- 'DF/D1/beta' : Item(status=' '),
+ 'DF/D1' : Item(status='! ', wc_rev=3, entry_rev='?'),
+ 'DF/D1/beta' : Item(status='! ', wc_rev=3),
'DD' : Item(status=' ', wc_rev=3),
- 'DD/D1' : Item(status='! ', wc_rev='?'),
- 'DD/D1/D2' : Item(status=' '),
+ 'DD/D1' : Item(status='! ', wc_rev=3, entry_rev='?'),
+ 'DD/D1/D2' : Item(status='! ', wc_rev=3),
'DDF' : Item(status=' ', wc_rev=3),
- 'DDF/D1' : Item(status='! ', wc_rev='?'),
- 'DDF/D1/D2' : Item(status=' '),
- 'DDF/D1/D2/gamma' : Item(status=' '),
+ 'DDF/D1' : Item(status='! ', wc_rev=3, entry_rev='?'),
+ 'DDF/D1/D2' : Item(status='! ', wc_rev=3),
+ 'DDF/D1/D2/gamma' : Item(status='! ', wc_rev=3),
'DDD' : Item(status=' ', wc_rev=3),
- 'DDD/D1' : Item(status='! ', wc_rev='?'),
- 'DDD/D1/D2' : Item(status=' '),
- 'DDD/D1/D2/D3' : Item(status=' '),
- })
-
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- expected_status.tweak('D/D1', wc_rev=3, entry_rev='?')
- expected_status.tweak('DF/D1', wc_rev=3, entry_rev='?')
- expected_status.tweak('DF/D1/beta', wc_rev=3, status='! ')
- expected_status.tweak('DD/D1', wc_rev=3, entry_rev='?')
- expected_status.tweak('DD/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDF/D1', wc_rev=3, entry_rev='?')
- expected_status.tweak('DDF/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDF/D1/D2/gamma', wc_rev=3, status='! ')
- expected_status.tweak('DDD/D1', wc_rev=3, entry_rev='?')
- expected_status.tweak('DDD/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDD/D1/D2/D3', wc_rev=3, status='! ')
+ 'DDD/D1' : Item(status='! ', wc_rev=3, entry_rev='?'),
+ 'DDD/D1/D2' : Item(status='! ', wc_rev=3),
+ 'DDD/D1/D2/D3' : Item(status='! ', wc_rev=3),
+ })
expected_skip = svntest.wc.State('', {
- 'F/alpha' : Item(),
- # BH: After fixing several issues in the obstruction handling
- # I get the following Skip notifications. Please review!
- 'D/D1' : Item(),
- 'DD/D1' : Item(),
- 'DF/D1' : Item(),
- 'DDD/D1' : Item(),
- 'DDF/D1' : Item(),
+ 'F/alpha' : Item(verb='Skipped missing target'),
+ # Obstruction handling improvements in 1.7 and 1.8 added
+ 'DF/D1/beta' : Item(verb='Skipped missing target'),
+ 'DDD/D1/D2/D3/zeta' : Item(verb='Skipped'),
+ 'DDD/D1/D2/D3' : Item(verb='Skipped missing target'),
+ 'DDF/D1/D2/gamma' : Item(verb='Skipped missing target'),
+ 'D/D1/delta' : Item(verb='Skipped'),
+ 'D/D1' : Item(verb='Skipped missing target'),
+ 'DD/D1/D2/epsilon' : Item(verb='Skipped'),
+ 'DD/D1/D2' : Item(verb='Skipped missing target'),
})
-
+ # Currently this test fails because some parts of the merge
+ # start succeeding.
svntest.actions.deep_trees_run_tests_scheme_for_merge(sbox,
[ DeepTreesTestCase(
"local_tree_missing_incoming_leaf_edit",
@@ -1381,46 +1367,32 @@ def tree_conflicts_merge_del_onto_missin
'F' : Item(status=' ', wc_rev=3),
'F/alpha' : Item(status='! ', wc_rev=3),
'D' : Item(status=' ', wc_rev=3),
- 'D/D1' : Item(status='! ', wc_rev='?'),
+ 'D/D1' : Item(status='! ', wc_rev=3),
'DF' : Item(status=' ', wc_rev=3),
- 'DF/D1' : Item(status='! ', wc_rev='?'),
- 'DF/D1/beta' : Item(status=' '),
+ 'DF/D1' : Item(status='! ', wc_rev=3),
+ 'DF/D1/beta' : Item(status='! ', wc_rev=3),
'DD' : Item(status=' ', wc_rev=3),
- 'DD/D1' : Item(status='! ', wc_rev='?'),
- 'DD/D1/D2' : Item(status=' '),
+ 'DD/D1' : Item(status='! ', wc_rev=3),
+ 'DD/D1/D2' : Item(status='! ', wc_rev=3),
'DDF' : Item(status=' ', wc_rev=3),
- 'DDF/D1' : Item(status='! ', wc_rev='?'),
- 'DDF/D1/D2' : Item(status=' '),
- 'DDF/D1/D2/gamma' : Item(status=' '),
+ 'DDF/D1' : Item(status='! ', wc_rev=3),
+ 'DDF/D1/D2' : Item(status='! ', wc_rev=3),
+ 'DDF/D1/D2/gamma' : Item(status='! ', wc_rev=3),
'DDD' : Item(status=' ', wc_rev=3),
- 'DDD/D1' : Item(status='! ', wc_rev='?'),
- 'DDD/D1/D2' : Item(status=' '),
- 'DDD/D1/D2/D3' : Item(status=' '),
- })
-
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- expected_status.tweak('D/D1', wc_rev=3)
- expected_status.tweak('DF/D1', wc_rev=3)
- expected_status.tweak('DF/D1/beta', wc_rev=3, status='! ')
- expected_status.tweak('DD/D1', wc_rev=3)
- expected_status.tweak('DD/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDF/D1', wc_rev=3)
- expected_status.tweak('DDF/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDF/D1/D2/gamma', wc_rev=3, status='! ')
- expected_status.tweak('DDD/D1', wc_rev=3)
- expected_status.tweak('DDD/D1/D2', wc_rev=3, status='! ')
- expected_status.tweak('DDD/D1/D2/D3', wc_rev=3, status='! ')
+ 'DDD/D1' : Item(status='! ', wc_rev=3),
+ 'DDD/D1/D2' : Item(status='! ', wc_rev=3),
+ 'DDD/D1/D2/D3' : Item(status='! ', wc_rev=3),
+ })
expected_skip = svntest.wc.State('', {
- 'F/alpha' : Item(),
- 'D/D1' : Item(),
- # BH: After fixing several issues in the obstruction handling
- # I get the following Skip notifications. Please review!
- 'D/D1' : Item(),
- 'DD/D1' : Item(),
- 'DF/D1' : Item(),
- 'DDD/D1' : Item(),
- 'DDF/D1' : Item(),
+ 'F/alpha' : Item(verb='Skipped missing target'),
+ 'D/D1' : Item(verb='Skipped missing target'),
+ # Obstruction handling improvements in 1.7 and 1.8 added
+ 'D/D1' : Item(verb='Skipped missing target'),
+ 'DD/D1/D2' : Item(verb='Skipped missing target'),
+ 'DF/D1/beta' : Item(verb='Skipped missing target'),
+ 'DDD/D1/D2/D3' : Item(verb='Skipped missing target'),
+ 'DDF/D1/D2/gamma' : Item(verb='Skipped missing target'),
})
svntest.actions.deep_trees_run_tests_scheme_for_merge(sbox,
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/patch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/patch_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/patch_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/patch_tests.py Sun Jan 6 02:33:34 2013
@@ -278,7 +278,7 @@ def patch_absolute_paths(sbox):
expected_status.tweak('A/B/E/alpha', status='M ')
expected_skip = wc.State('', {
- lambda_path: Item(),
+ lambda_path: Item(verb='Skipped missing target'),
})
svntest.actions.run_and_verify_patch('.', os.path.abspath(patch_file_path),
@@ -999,11 +999,7 @@ def patch_add_new_dir(sbox):
'X/Y/new' : Item(contents='new\n'),
'A/Z' : Item()
})
- expected_disk.remove('A/B/E/alpha')
- expected_disk.remove('A/B/E/beta')
- if svntest.main.wc_is_singledb(wc_dir):
- expected_disk.remove('A/B/E')
- expected_disk.remove('A/C')
+ expected_disk.remove('A/B/E', 'A/B/E/alpha', 'A/B/E/beta', 'A/C')
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.add({
@@ -1016,9 +1012,11 @@ def patch_add_new_dir(sbox):
'A/C' : Item(status='D ', wc_rev=1),
})
- expected_skip = wc.State('', {A_Z_new_path : Item(),
- A_B_E_Y_new_path : Item(),
- A_C_new_path : Item()})
+ expected_skip = wc.State(
+ '',
+ {A_Z_new_path : Item(verb='Skipped missing target'),
+ A_B_E_Y_new_path : Item(verb='Skipped missing target'),
+ A_C_new_path : Item(verb='Skipped missing target')})
svntest.actions.run_and_verify_patch(wc_dir,
os.path.abspath(patch_file_path),
@@ -1103,16 +1101,15 @@ def patch_remove_empty_dirs(sbox):
]
expected_disk = svntest.main.greek_state.copy()
- expected_disk.remove('A/D/H/chi')
- expected_disk.remove('A/D/H/psi')
- expected_disk.remove('A/D/H/omega')
- expected_disk.remove('A/B/lambda')
- expected_disk.remove('A/B/E/alpha')
- expected_disk.remove('A/B/E/beta')
- if svntest.main.wc_is_singledb(wc_dir):
- expected_disk.remove('A/B/E')
- expected_disk.remove('A/B/F')
- expected_disk.remove('A/B')
+ expected_disk.remove('A/D/H/chi',
+ 'A/D/H/psi',
+ 'A/D/H/omega',
+ 'A/B/lambda',
+ 'A/B',
+ 'A/B/E',
+ 'A/B/E/alpha',
+ 'A/B/E/beta',
+ 'A/B/F')
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.add({'A/D/H/chi' : Item(status='! ', wc_rev=1)})
@@ -2457,7 +2454,7 @@ def patch_same_twice(sbox):
' Skipped paths: 1\n',
]
- expected_skip = wc.State('', {beta_path : Item()})
+ expected_skip = wc.State('', {beta_path : Item(verb='Skipped')})
# See above comment about the iota patch being applied twice.
iota_contents += "Some more bytes\n"
@@ -3978,7 +3975,9 @@ def patch_delete_and_skip(sbox):
expected_status.tweak('A/B/E/alpha', status='D ')
expected_status.tweak('A/B/E/beta', status='D ')
- expected_skip = wc.State('', {skipped_path: Item()})
+ expected_skip = wc.State(
+ '',
+ {skipped_path: Item(verb='Skipped missing target')})
svntest.actions.run_and_verify_patch('.', os.path.abspath(patch_file_path),
expected_output,
@@ -4202,6 +4201,7 @@ def patch_git_with_index_line(sbox):
1) # dry-run
@XFail()
+@Issue(4273)
def patch_change_symlink_target(sbox):
"patch changes symlink target"
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/prop_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/prop_tests.py Sun Jan 6 02:33:34 2013
@@ -2535,11 +2535,11 @@ def inheritable_ignores(sbox):
sbox.simple_propset('svn:ignore', '*.foo', 'A/B/E')
sbox.simple_commit()
- # Some directories and files that should be added because they don't
- # match any applicable ignores.
- X_dir_path = os.path.join(wc_dir, 'ADD-ME-DIR-X')
- Y_dir_path = os.path.join(wc_dir, 'A', 'ADD-ME-DIR-Y.doo')
- Z_dir_path = os.path.join(wc_dir, 'A', 'D', 'G', 'ADD-ME-DIR-Z.doo')
+ # Some directories and files that should always be added because they
+ # don't match any applicable ignore patterns.
+ X_dir_path = sbox.ospath('ADD-ME-DIR-X')
+ Y_dir_path = sbox.ospath('A/ADD-ME-DIR-Y.doo')
+ Z_dir_path = sbox.ospath('A/D/G/ADD-ME-DIR-Z.doo')
os.mkdir(X_dir_path)
os.mkdir(Y_dir_path)
os.mkdir(Z_dir_path)
@@ -2547,11 +2547,11 @@ def inheritable_ignores(sbox):
# Some directories and files that should be ignored when adding
# because they match an ignore pattern (unless of course they are
# the direct target of an add, which we always add).
- boo_dir_path = os.path.join(wc_dir, 'IGNORE-ME-DIR.boo')
- goo_dir_path = os.path.join(wc_dir, 'IGNORE-ME-DIR.boo', 'IGNORE-ME-DIR.goo')
- doo_dir_path = os.path.join(wc_dir, 'A', 'B', 'IGNORE-ME-DIR.doo')
- moo_dir_path = os.path.join(wc_dir, 'A', 'D', 'IGNORE-ME-DIR.moo')
- foo_dir_path = os.path.join(wc_dir, 'A', 'B', 'E', 'IGNORE-ME-DIR.foo')
+ boo_dir_path = sbox.ospath('IGNORE-ME-DIR.boo')
+ goo_dir_path = sbox.ospath('IGNORE-ME-DIR.boo/IGNORE-ME-DIR.goo')
+ doo_dir_path = sbox.ospath('A/B/IGNORE-ME-DIR.doo')
+ moo_dir_path = sbox.ospath('A/D/IGNORE-ME-DIR.moo')
+ foo_dir_path = sbox.ospath('A/B/E/IGNORE-ME-DIR.foo')
os.mkdir(boo_dir_path)
os.mkdir(goo_dir_path)
os.mkdir(doo_dir_path)
@@ -2650,8 +2650,8 @@ def inheritable_ignores(sbox):
'--config-dir', config_dir)
os.chdir(saved_wd)
- # Now revert and try the add with the --no-ignore flag, only the
- # svn:global-ignores should be enforced.
+ # Now revert and try the add with the --no-ignore flag, nothing should
+ # be ignored.
svntest.actions.run_and_verify_svn(None, None, [], 'revert', wc_dir, '-R')
saved_wd = os.getcwd()
os.chdir(sbox.wc_dir)
@@ -2665,15 +2665,25 @@ def inheritable_ignores(sbox):
'IGNORE-ME-DIR.goo') + '\n',
'A ' + os.path.join('A', 'B', 'E', 'IGNORE-ME-DIR.foo') + '\n',
'A ' + os.path.join('A', 'B', 'E', 'ignore-me-file.foo') + '\n',
- 'A ' + os.path.join('A', 'D', 'G', 'ignore-me-file.goo') + '\n'])
- svntest.actions.run_and_verify_svn("Adds in spite of ignores", expected,
- [], 'add', '.', '--force','--no-ignore',
- '--config-dir', config_dir)
+ 'A ' + os.path.join('A', 'D', 'G', 'ignore-me-file.goo') + '\n',
+
+ 'A ' + os.path.join('A', 'B', 'E', 'ignore-me-file.doo') + '\n',
+ 'A ' + os.path.join('A', 'B', 'IGNORE-ME-DIR.doo') + '\n',
+ 'A ' + os.path.join('A', 'B', 'IGNORE-ME-DIR.doo',
+ 'ignore-me-file.doo') + '\n',
+ 'A ' + os.path.join('A', 'B', 'IGNORE-ME-DIR.doo',
+ 'ignore-me-file.roo') + '\n',
+ 'A ' + os.path.join('A', 'D', 'IGNORE-ME-DIR.moo') + '\n',
+ 'A ' + os.path.join('A', 'D', 'ignore-me-file.moo') + '\n'])
+ svntest.actions.run_and_verify_svn("Files ignored with --no-ignore",
+ expected, [], 'add', '.', '--force',
+ '--no-ignore', '--config-dir',
+ config_dir)
def almost_known_prop_names(sbox):
"propset with svn: prefix but unknown name"
- sbox.build()
+ sbox.build(read_only=True)
wc_dir = sbox.wc_dir
iota_path = sbox.ospath('iota')
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/relocate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/relocate_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/relocate_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/relocate_tests.py Sun Jan 6 02:33:34 2013
@@ -88,10 +88,7 @@ def relocate_deleted_missing_copied(sbox
'A/D2/H/omega' : Item(status=' ', wc_rev='-', copied='+'),
'A/D2/H/psi' : Item(status=' ', wc_rev='-', copied='+'),
})
- if svntest.main.wc_is_singledb(wc_dir):
- expected_status.tweak('A/B/F', status='! ', wc_rev='1')
- else:
- expected_status.tweak('A/B/F', status='! ', wc_rev='?')
+ expected_status.tweak('A/B/F', status='! ', wc_rev='1')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
# Relocate
@@ -105,14 +102,10 @@ def relocate_deleted_missing_copied(sbox
# Deleted and missing entries should be preserved, so update should
# show only A/B/F being reinstated
- if svntest.main.wc_is_singledb(wc_dir):
- expected_output = svntest.wc.State(wc_dir, {
+ expected_output = svntest.wc.State(wc_dir, {
'A/B/F' : Item(verb='Restored'),
- })
- else:
- expected_output = svntest.wc.State(wc_dir, {
- 'A/B/F' : Item(status='A '),
- })
+ })
+
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('A/mu')
expected_disk.add({
@@ -123,10 +116,7 @@ def relocate_deleted_missing_copied(sbox
'A/D2/H/omega' : Item("This is the file 'omega'.\n"),
'A/D2/H/psi' : Item("This is the file 'psi'.\n"),
})
- if not svntest.main.wc_is_singledb(wc_dir):
- expected_disk.add({
- 'A/D2/G' : Item(),
- })
+
expected_status.add({
'A/B/F' : Item(status=' ', wc_rev='2'),
})
Modified: subversion/branches/tree-read-api/subversion/tests/cmdline/resolved_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/subversion/tests/cmdline/resolved_tests.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/subversion/tests/cmdline/resolved_tests.py (original)
+++ subversion/branches/tree-read-api/subversion/tests/cmdline/resolved_tests.py Sun Jan 6 02:33:34 2013
@@ -111,11 +111,11 @@ def resolved_on_wc_root(sbox):
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('iota',
+ 'A/B',
'A/B/lambda',
- 'A/B/E/alpha', 'A/B/E/beta',
+ 'A/B/E', 'A/B/E/alpha', 'A/B/E/beta',
+ 'A/B/F',
'A/D/gamma')
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- expected_disk.remove('A/B/E', 'A/B/F', 'A/B')
expected_status = svntest.actions.get_virginal_state(wc, 2)
expected_status.tweak('iota', 'A/B', 'A/D/gamma',