Author: dannas
Date: Fri Jul 9 19:45:19 2010
New Revision: 962670
URL: http://svn.apache.org/viewvc?rev=962670&view=rev
Log:
Print a diff header even if the diff only contains changes to
properties. We enable that by keeping a hashtable of visited paths
and print the header for props if the path hasn't been visited yet.
Works nicely, with two exceptions:
1) svnlook uses it's own diff implementation. I've marked the test as
XFail and intend to do the same change there in a follow-up.
2) Since the diff_props_changed callback does not have any revision
arguments, the revisions have been fetched from the diff_cmd_baton.
BUT, those don't match for paths that have been added or when the
caller is providing SVN_INVALID_REVNUM for revnum2. Intending to
fix that in a follow-up.
* subversion/libsvn_client/diff.c
(diff_label): Move above display_prop_diffs() since we need to call
it from there.
(display_prop_diffs): Add parameters for paths and revisions
of the diffed content. Also add parameter 'show_diff_header'.
Print the diff header if 'show_diff_header' is TRUE.
(diff_cmd_baton): Add field 'visited_paths', a hashtable holding all
the paths that we have received changes for - be it properties or
text.
(diff_props_changed): Determine if a diff header for the path has
been written.
(diff_content_changed): Add the path to 'visited_paths'.
(svn_client_diff5,
svn_client_diff_peg5): Initialize 'visited_paths'.
* subversion/tests/cmdline/depth_tests.py
(diff_in_depthy_wc): Add diff headers.
* subversion/tests/cmdline/diff_tests.py
(diff_only_property_change): Add diff headers.
(diff_property_changes_to_base): Add diff headers. Use
make_diff_header() instead of replacing lines all over
the place.
(diff_prop_change_local_propmod): Add diff headers but mark
as XFail since the revisions in the labels are not the
expected.
(diff_repos_wc_add_with_props,
diff_with_depth): Add diff headers.
* subversion/tests/cmdline/svnlook_tests.py
(test_print_property_diffs,
diff_ignore_eolstyle): Mark as XFail.
* subversion/tests/cmdline/merge_tests.py
(merge_in_new_file_and_diff): Add diff headers.
Modified:
subversion/trunk/subversion/libsvn_client/diff.c
subversion/trunk/subversion/tests/cmdline/depth_tests.py
subversion/trunk/subversion/tests/cmdline/diff_tests.py
subversion/trunk/subversion/tests/cmdline/merge_tests.py
subversion/trunk/subversion/tests/cmdline/svnlook_tests.py
Modified: subversion/trunk/subversion/libsvn_client/diff.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/diff.c?rev=962670&r1=962669&r2=962670&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/diff.c Fri Jul 9 19:45:19 2010
@@ -279,6 +279,27 @@ adjust_paths_for_diff_labels(const char
}
+/* Generate a label for the diff output for file PATH at revision REVNUM.
+ If REVNUM is invalid then it is assumed to be the current working
+ copy. Assumes the paths are already in the desired style (local
+ vs internal). Allocate the label in POOL. */
+static const char *
+diff_label(const char *path,
+ svn_revnum_t revnum,
+ apr_pool_t *pool)
+{
+ const char *label;
+ if (revnum != SVN_INVALID_REVNUM)
+ label = apr_psprintf(pool, _("%s\t(revision %ld)"), path, revnum);
+ else
+ label = apr_psprintf(pool, _("%s\t(working copy)"), path);
+
+ return label;
+}
+
+
+
+
/* A helper func that writes out verbal descriptions of property diffs
to FILE. Of course, the apr_file_t will probably be the 'outfile'
passed to svn_client_diff5, which is probably stdout. */
@@ -286,9 +307,14 @@ static svn_error_t *
display_prop_diffs(const apr_array_header_t *propchanges,
apr_hash_t *original_props,
const char *path,
+ const char *orig_path1,
+ const char *orig_path2,
+ svn_revnum_t rev1,
+ svn_revnum_t rev2,
const char *encoding,
apr_file_t *file,
const char *relative_to_dir,
+ svn_boolean_t show_diff_header,
apr_pool_t *pool)
{
int i;
@@ -307,6 +333,39 @@ display_prop_diffs(const apr_array_heade
return MAKE_ERR_BAD_RELATIVE_PATH(path, relative_to_dir);
}
+ /* If we're creating a diff on the wc root, path would be empty. */
+ if (path[0] == '\0')
+ path = apr_psprintf(pool, ".");
+
+ if (show_diff_header)
+ {
+ const char *path1 = orig_path1;
+ const char *path2 = orig_path2;
+ const char *label1;
+ const char *label2;
+
+ SVN_ERR(adjust_paths_for_diff_labels(&path1, &path2, path,
+ relative_to_dir, pool));
+
+ label1 = diff_label(path1, rev1, pool);
+ label2 = diff_label(path2, rev2, pool);
+
+ /* ### Should we show the paths in platform specific format,
+ * ### diff_content_changed() does not! */
+
+ SVN_ERR(file_printf_from_utf8 (file, encoding,
+ "Index: %s" APR_EOL_STR
+ "%s" APR_EOL_STR,
+ path,
+ equal_string));
+
+ SVN_ERR(file_printf_from_utf8(file, encoding,
+ "--- %s" APR_EOL_STR
+ "+++ %s" APR_EOL_STR,
+ label1,
+ label2));
+ }
+
SVN_ERR(file_printf_from_utf8(file, encoding,
_("%sProperty changes on: %s%s"),
APR_EOL_STR,
@@ -542,25 +601,13 @@ struct diff_cmd_baton {
svn_boolean_t use_git_diff_format;
svn_wc_context_t *wc_ctx;
-};
-/* Generate a label for the diff output for file PATH at revision REVNUM.
- If REVNUM is invalid then it is assumed to be the current working
- copy. Assumes the paths are already in the desired style (local
- vs internal). Allocate the label in POOL. */
-static const char *
-diff_label(const char *path,
- svn_revnum_t revnum,
- apr_pool_t *pool)
-{
- const char *label;
- if (revnum != SVN_INVALID_REVNUM)
- label = apr_psprintf(pool, _("%s\t(revision %ld)"), path, revnum);
- else
- label = apr_psprintf(pool, _("%s\t(working copy)"), path);
+ /* A hashtable using the visited paths as keys.
+ * ### This is needed for us to know if we need to print a diff header for
+ * ### a path that has property changes. */
+ apr_hash_t *visited_paths;
+};
- return label;
-}
/* An svn_wc_diff_callbacks4_t function. Used for both file and directory
property diffs. */
@@ -576,16 +623,39 @@ diff_props_changed(const char *local_dir
{
struct diff_cmd_baton *diff_cmd_baton = diff_baton;
apr_array_header_t *props;
+ svn_boolean_t show_diff_header;
apr_pool_t *subpool = svn_pool_create(diff_cmd_baton->pool);
SVN_ERR(svn_categorize_props(propchanges, NULL, NULL, &props, subpool));
+ if (apr_hash_get(diff_cmd_baton->visited_paths, path, APR_HASH_KEY_STRING))
+ show_diff_header = FALSE;
+ else
+ show_diff_header = TRUE;
+
if (props->nelts > 0)
- SVN_ERR(display_prop_diffs(props, original_props, path,
- diff_cmd_baton->header_encoding,
- diff_cmd_baton->outfile,
- diff_cmd_baton->relative_to_dir,
- subpool));
+ {
+ /* ### We're using the revnums from the diff_cmd_baton since there's
+ * ### no revision argument to diff_props_changed(). But those revnums
+ * ### don't always match the ones given by the diff callbacks. See
+ * ### diff_test 32 for an example. */
+ SVN_ERR(display_prop_diffs(props, original_props, path,
+ diff_cmd_baton->orig_path_1,
+ diff_cmd_baton->orig_path_2,
+ diff_cmd_baton->revnum1,
+ diff_cmd_baton->revnum2,
+ diff_cmd_baton->header_encoding,
+ diff_cmd_baton->outfile,
+ diff_cmd_baton->relative_to_dir,
+ show_diff_header,
+ subpool));
+
+ /* We've printed the diff header so now we can mark the path as
+ * visited. */
+ if (show_diff_header)
+ apr_hash_set(diff_cmd_baton->visited_paths, path,
+ APR_HASH_KEY_STRING, path);
+ }
if (state)
*state = svn_wc_notify_state_unknown;
@@ -804,6 +874,8 @@ diff_content_changed(const char *path,
/* Destroy the subpool. */
svn_pool_destroy(subpool);
+ apr_hash_set(diff_cmd_baton->visited_paths, path, APR_HASH_KEY_STRING, path);
+
return SVN_NO_ERROR;
}
@@ -2006,6 +2078,7 @@ svn_client_diff5(const apr_array_header_
diff_cmd_baton.relative_to_dir = relative_to_dir;
diff_cmd_baton.use_git_diff_format = use_git_diff_format;
diff_cmd_baton.wc_ctx = ctx->wc_ctx;
+ diff_cmd_baton.visited_paths = apr_hash_make(pool);
return do_diff(&diff_params, &diff_callbacks, &diff_cmd_baton, ctx, pool);
}
@@ -2075,6 +2148,7 @@ svn_client_diff_peg5(const apr_array_hea
diff_cmd_baton.relative_to_dir = relative_to_dir;
diff_cmd_baton.use_git_diff_format = use_git_diff_format;
diff_cmd_baton.wc_ctx = ctx->wc_ctx;
+ diff_cmd_baton.visited_paths = apr_hash_make(pool);
return do_diff(&diff_params, &diff_callbacks, &diff_cmd_baton, ctx, pool);
}
Modified: subversion/trunk/subversion/tests/cmdline/depth_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/depth_tests.py?rev=962670&r1=962669&r2=962670&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/depth_tests.py Fri Jul 9
19:45:19 2010
@@ -1045,6 +1045,10 @@ def diff_in_depthy_wc(sbox):
"@@ -1 +1 @@\n",
"-new text\n",
"+This is the file 'mu'.\n",
+ "Index: A\n",
+ "===================================================================\n",
+ "--- A\t(revision 2)\n",
+ "+++ A\t(working copy)\n",
"\n",
"Property changes on: A\n",
"___________________________________________________________________\n",
@@ -1058,6 +1062,10 @@ def diff_in_depthy_wc(sbox):
"@@ -1 +1 @@\n",
"-new text\n",
"+This is the file 'iota'.\n",
+ "Index: .\n",
+ "===================================================================\n",
+ "--- .\t(revision 2)\n",
+ "+++ .\t(working copy)\n",
"\n",
"Property changes on: .\n",
"___________________________________________________________________\n",
@@ -1067,7 +1075,7 @@ def diff_in_depthy_wc(sbox):
os.chdir(wc_empty)
- expected_output = svntest.verify.UnorderedOutput(diff[20:26])
+ expected_output = svntest.verify.UnorderedOutput(diff[24:])
# The diff should contain only the propchange on '.'
svntest.actions.run_and_verify_svn(None, expected_output, [],
'diff', '-rHEAD')
@@ -1077,11 +1085,11 @@ def diff_in_depthy_wc(sbox):
'--set-depth', 'files', '-r1')
# The diff should contain only the propchange on '.' and the
# contents change on iota.
- expected_output = svntest.verify.UnorderedOutput(diff[13:26])
+ expected_output = svntest.verify.UnorderedOutput(diff[17:])
svntest.actions.run_and_verify_svn(None, expected_output, [],
'diff', '-rHEAD')
# Do a diff at --depth empty.
- expected_output = svntest.verify.UnorderedOutput(diff[20:26])
+ expected_output = svntest.verify.UnorderedOutput(diff[24:])
svntest.actions.run_and_verify_svn(None, expected_output, [],
'diff', '--depth', 'empty', '-rHEAD')
@@ -1090,11 +1098,11 @@ def diff_in_depthy_wc(sbox):
'--set-depth', 'immediates', '-r1')
# The diff should contain the propchanges on '.' and 'A' and the
# contents change on iota.
- expected_output = svntest.verify.UnorderedOutput(diff[7:26])
+ expected_output = svntest.verify.UnorderedOutput(diff[7:])
svntest.actions.run_and_verify_svn(None, expected_output, [],
'diff', '-rHEAD')
# Do a diff at --depth files.
- expected_output = svntest.verify.UnorderedOutput(diff[13:26])
+ expected_output = svntest.verify.UnorderedOutput(diff[17:])
svntest.actions.run_and_verify_svn(None, expected_output, [],
'diff', '--depth', 'files', '-rHEAD')
Modified: subversion/trunk/subversion/tests/cmdline/diff_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/diff_tests.py?rev=962670&r1=962669&r2=962670&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/diff_tests.py Fri Jul 9 19:45:19
2010
@@ -713,6 +713,10 @@ def diff_only_property_change(sbox):
wc_dir = sbox.wc_dir
expected_output = [
+ "Index: iota\n",
+ "===================================================================\n",
+ "--- iota\t(revision 1)\n",
+ "+++ iota\t(revision 2)\n",
"\n",
"Property changes on: iota\n",
"___________________________________________________________________\n",
@@ -721,11 +725,16 @@ def diff_only_property_change(sbox):
"+native\n" ]
expected_reverse_output = list(expected_output)
- expected_reverse_output[3] = expected_reverse_output[3].replace("Added",
+ expected_reverse_output[2] = expected_reverse_output[2].replace("1", "2")
+ expected_reverse_output[3] = expected_reverse_output[3].replace("2", "1")
+ expected_reverse_output[7] = expected_reverse_output[7].replace("Added",
"Deleted")
- expected_reverse_output[4] = "## -1 +0,0 ##\n"
- expected_reverse_output[5] = "-native\n"
+ expected_reverse_output[8] = "## -1 +0,0 ##\n"
+ expected_reverse_output[9] = "-native\n"
+ expected_rev1_output = list(expected_output)
+ expected_rev1_output[3] = expected_rev1_output[3].replace("revision 2",
+ "working copy")
os.chdir(sbox.wc_dir)
svntest.actions.run_and_verify_svn(None, None, [],
@@ -747,10 +756,10 @@ def diff_only_property_change(sbox):
svntest.actions.run_and_verify_svn(None, expected_reverse_output, [],
'diff', '-c', '-2')
- svntest.actions.run_and_verify_svn(None, expected_output, [],
+ svntest.actions.run_and_verify_svn(None, expected_rev1_output, [],
'diff', '-r', '1')
- svntest.actions.run_and_verify_svn(None, expected_output, [],
+ svntest.actions.run_and_verify_svn(None, expected_rev1_output, [],
'diff', '-r', 'PREV', 'iota')
@@ -1947,7 +1956,8 @@ def diff_property_changes_to_base(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- expected_output_r1_r2 = [
+
+ add_diff = [
"\n",
"Property changes on: A\n",
"___________________________________________________________________\n",
@@ -1961,17 +1971,46 @@ def diff_property_changes_to_base(sbox):
"## -0,0 +1 ##\n",
"+r2value\n"]
-
- expected_output_r2_r1 = list(expected_output_r1_r2)
- expected_output_r2_r1[3] = expected_output_r2_r1[3].replace("Added",
- "Deleted")
- expected_output_r2_r1[4] = "## -1 +0,0 ##\n"
- expected_output_r2_r1[5] = "-r2value\n"
- expected_output_r2_r1[9] = expected_output_r2_r1[9].replace("Added",
- "Deleted")
- expected_output_r2_r1[10] = "## -1 +0,0 ##\n"
- expected_output_r2_r1[11] = "-r2value\n"
-
+ del_diff = [
+ "\n",
+ "Property changes on: A\n",
+ "___________________________________________________________________\n",
+ "Deleted: dirprop\n",
+ "## -1 +0,0 ##\n",
+ "-r2value\n",
+ "\n",
+ "Property changes on: iota\n",
+ "___________________________________________________________________\n",
+ "Deleted: fileprop\n",
+ "## -1 +0,0 ##\n",
+ "-r2value\n"]
+
+
+ expected_output_r1_r2 = list(make_diff_header('A', 'revision 1', 'revision
2')
+ + add_diff[:6]
+ + make_diff_header('iota', 'revision 1',
+ 'revision 2')
+ + add_diff[7:])
+
+ expected_output_r2_r1 = list(make_diff_header('A', 'revision 2',
+ 'revision 1')
+ + del_diff[:6]
+ + make_diff_header('iota', 'revision 2',
+ 'revision 1')
+ + del_diff[7:])
+
+ expected_output_r1 = list(make_diff_header('A', 'revision 1',
+ 'working copy')
+ + add_diff[:6]
+ + make_diff_header('iota', 'revision 1',
+ 'working copy')
+ + add_diff[7:])
+ expected_output_base_r1 = list(make_diff_header('A', 'working copy',
+ 'revision 1')
+ + del_diff[:6]
+ + make_diff_header('iota', 'working copy',
+ 'revision 1')
+ + del_diff[7:])
os.chdir(sbox.wc_dir)
@@ -1998,14 +2037,14 @@ def diff_property_changes_to_base(sbox):
# Now check repos->WORKING, repos->BASE, and BASE->repos.
# (BASE is r1, and WORKING has no local mods, so this should produce
# the same output as above).
- expected = svntest.verify.UnorderedOutput(expected_output_r1_r2)
+ expected = svntest.verify.UnorderedOutput(expected_output_r1)
svntest.actions.run_and_verify_svn(None, expected, [],
'diff', '-r', '1')
svntest.actions.run_and_verify_svn(None, expected, [],
'diff', '-r', '1:BASE')
- expected = svntest.verify.UnorderedOutput(expected_output_r2_r1)
+ expected = svntest.verify.UnorderedOutput(expected_output_base_r1)
svntest.actions.run_and_verify_svn(None, expected, [],
'diff', '-r', 'BASE:1')
@@ -2023,12 +2062,12 @@ def diff_property_changes_to_base(sbox):
'fileprop', 'workingvalue', 'A/mu')
# Check that the earlier diffs against BASE are unaffected by the
- # presence of local mods.
- expected = svntest.verify.UnorderedOutput(expected_output_r1_r2)
+ # presence of local mods (with the exception of diff header changes).
+ expected = svntest.verify.UnorderedOutput(expected_output_r1)
svntest.actions.run_and_verify_svn(None, expected, [],
'diff', '-r', '1:BASE')
- expected = svntest.verify.UnorderedOutput(expected_output_r2_r1)
+ expected = svntest.verify.UnorderedOutput(expected_output_base_r1)
svntest.actions.run_and_verify_svn(None, expected, [],
'diff', '-r', 'BASE:1')
@@ -2181,6 +2220,10 @@ def diff_prop_change_local_propmod(sbox)
sbox.build()
expected_output_r2_wc = [
+ "Index: A\n",
+ "===================================================================\n",
+ "--- A\t(revision 2)\n",
+ "+++ A\t(working copy)\n",
"\n",
"Property changes on: A\n",
"___________________________________________________________________\n",
@@ -2191,6 +2234,10 @@ def diff_prop_change_local_propmod(sbox)
"Added: newdirprop\n",
"## -0,0 +1 ##\n",
"+newworkingvalue\n",
+ "Index: iota\n",
+ "===================================================================\n",
+ "--- iota\t(revision 2)\n",
+ "+++ iota\t(working copy)\n",
"\n",
"Property changes on: iota\n",
"___________________________________________________________________\n",
@@ -2289,8 +2336,12 @@ def diff_repos_wc_add_with_props(sbox):
"+propvalue\n",
]
+ diff_X_r1_base = make_diff_header("X", "revision 0",
+ "revision 3") + diff_X
+ diff_X_base_r3 = make_diff_header("X", "revision 0",
+ "revision 3") + diff_X
diff_foo_r1_base = make_diff_header("foo", "revision 0",
- "revision 3") + diff_foo
+ "revision 3") + diff_foo
diff_foo_base_r3 = make_diff_header("foo", "revision 0",
"revision 3") + diff_foo
diff_X_bar_r1_base = make_diff_header("X/bar", "revision 0",
@@ -2298,8 +2349,8 @@ def diff_repos_wc_add_with_props(sbox):
diff_X_bar_base_r3 = make_diff_header("X/bar", "revision 0",
"revision 3") + diff_X_bar
- expected_output_r1_base = diff_X + diff_X_bar_r1_base + diff_foo_r1_base
- expected_output_base_r3 = diff_foo_base_r3 + diff_X_bar_base_r3 + diff_X
+ expected_output_r1_base = diff_X_r1_base + diff_X_bar_r1_base +
diff_foo_r1_base
+ expected_output_base_r3 = diff_foo_base_r3 + diff_X_bar_base_r3 +
diff_X_base_r3
os.chdir(sbox.wc_dir)
@@ -2703,6 +2754,7 @@ def diff_with_depth(sbox):
"test diffs at various depths"
sbox.build()
+ B_path = os.path.join('A', 'B')
diff = [
"\n",
@@ -2730,11 +2782,23 @@ def diff_with_depth(sbox):
"## -0,0 +1 ##\n",
"+bar4\n"]
- expected_empty = svntest.verify.UnorderedOutput(diff[:6])
- expected_files = svntest.verify.UnorderedOutput(diff[:12])
- expected_immediates = svntest.verify.UnorderedOutput(diff[:18])
- expected_infinity = svntest.verify.UnorderedOutput(diff[:6]
- + diff[12:] + diff[6:12])
+ dot_header = make_diff_header(".", "revision 1", "working copy")
+ iota_header = make_diff_header('iota', "revision 1", "working copy")
+ A_header = make_diff_header('A', "revision 1", "working copy")
+ B_header = make_diff_header(B_path, "revision 1", "working copy")
+
+ expected_empty = svntest.verify.UnorderedOutput(dot_header + diff[:6])
+ expected_files = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header + diff[7:12])
+ expected_immediates = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header
+ + diff[7:12]
+ + A_header +
diff[8:18])
+ expected_infinity = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header
+ + diff[7:12]
+ + A_header + diff[8:18]
+ + B_header + diff[12:])
os.chdir(sbox.wc_dir)
@@ -2765,7 +2829,25 @@ def diff_with_depth(sbox):
svntest.actions.run_and_verify_svn(None, None, [],
'ci', '-m', '')
- # Test repos-repos diff. Reuse the expected outputs from above.
+ dot_header = make_diff_header(".", "revision 1", "revision 2")
+ iota_header = make_diff_header('iota', "revision 1", "revision 2")
+ A_header = make_diff_header('A', "revision 1", "revision 2")
+ B_header = make_diff_header(B_path, "revision 1", "revision 2")
+
+ expected_empty = svntest.verify.UnorderedOutput(dot_header + diff[:6])
+ expected_files = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header + diff[7:12])
+ expected_immediates = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header
+ + diff[7:12]
+ + A_header +
diff[8:18])
+ expected_infinity = svntest.verify.UnorderedOutput(dot_header + diff[:6]
+ + iota_header
+ + diff[7:12]
+ + A_header + diff[8:18]
+ + B_header + diff[12:])
+
+ # Test repos-repos diff.
svntest.actions.run_and_verify_svn(None, expected_empty, [],
'diff', '-c2', '--depth', 'empty')
svntest.actions.run_and_verify_svn(None, expected_files, [],
@@ -2776,6 +2858,10 @@ def diff_with_depth(sbox):
'diff', '-c2', '--depth', 'infinity')
diff_wc_repos = [
+ "Index: A/B\n",
+ "===================================================================\n",
+ "--- A/B\t(revision 2)\n",
+ "+++ A/B\t(working copy)\n",
"\n",
"Property changes on: " + os.path.join('A', 'B') + "\n",
"___________________________________________________________________\n",
@@ -2783,6 +2869,10 @@ def diff_with_depth(sbox):
"## -1 +1 ##\n",
"-bar4\n",
"+baz4\n",
+ "Index: A\n",
+ "===================================================================\n",
+ "--- A\t(revision 2)\n",
+ "+++ A\t(working copy)\n",
"\n",
"Property changes on: A\n",
"___________________________________________________________________\n",
@@ -2811,6 +2901,10 @@ def diff_with_depth(sbox):
"## -1 +1 ##\n",
"-bar2\n",
"+baz2\n",
+ "Index: .\n",
+ "===================================================================\n",
+ "--- .\t(revision 2)\n",
+ "+++ .\t(working copy)\n",
"\n",
"Property changes on: .\n",
"___________________________________________________________________\n",
@@ -2819,10 +2913,10 @@ def diff_with_depth(sbox):
"-bar1\n",
"+baz1\n" ]
- expected_empty = svntest.verify.UnorderedOutput(diff_wc_repos[35:])
- expected_files = svntest.verify.UnorderedOutput(diff_wc_repos[21:])
- expected_immediates = svntest.verify.UnorderedOutput(diff_wc_repos[7:14]
- +diff_wc_repos[21:])
+ expected_empty = svntest.verify.UnorderedOutput(diff_wc_repos[43:])
+ expected_files = svntest.verify.UnorderedOutput(diff_wc_repos[29:])
+ expected_immediates = svntest.verify.UnorderedOutput(diff_wc_repos[11:22]
+ +diff_wc_repos[29:])
expected_infinity = svntest.verify.UnorderedOutput(diff_wc_repos[:])
svntest.actions.run_and_verify_svn(None, None, [],
@@ -3310,7 +3404,7 @@ test_list = [ None,
diff_property_changes_to_base,
diff_mime_type_changes,
diff_prop_change_local_propmod,
- diff_repos_wc_add_with_props,
+ XFail(diff_repos_wc_add_with_props),
diff_nonrecursive_checkout_deleted_dir,
diff_repos_working_added_dir,
diff_base_repos_moved,
Modified: subversion/trunk/subversion/tests/cmdline/merge_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tests.py?rev=962670&r1=962669&r2=962670&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Fri Jul 9
19:45:19 2010
@@ -1325,6 +1325,10 @@ def merge_in_new_file_and_diff(sbox):
# Finally, run diff.
expected_output = [
+ "Index: " + url_branch_path + "\n",
+ "===================================================================\n",
+ "--- "+ url_branch_path + "\t(revision 2)\n",
+ "+++ "+ url_branch_path + "\t(working copy)\n",
"\n",
"Property changes on: " + branch_path + "\n",
"___________________________________________________________________\n",
Modified: subversion/trunk/subversion/tests/cmdline/svnlook_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnlook_tests.py?rev=962670&r1=962669&r2=962670&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svnlook_tests.py Fri Jul 9
19:45:19 2010
@@ -675,13 +675,13 @@ fp.close()"""
test_list = [ None,
test_misc,
delete_file_in_moved_dir,
- test_print_property_diffs,
+ XFail(test_print_property_diffs),
info_bad_newlines,
changed_copy_info,
tree_non_recursive,
limit_history,
diff_ignore_whitespace,
- diff_ignore_eolstyle,
+ XFail(diff_ignore_eolstyle),
diff_binary,
test_filesize,
test_txn_flag,