Author: dannas
Date: Fri Jul 30 10:52:41 2010
New Revision: 980730
URL: http://svn.apache.org/viewvc?rev=980730&view=rev
Log:
Make 'svn diff' print the correct hunk delimiters for all property hunks. At
the same time, adjust expected paths for an earlier XFailing test.
Previously, only the last hunk would have '##' delimiters.
* subversion/libsvn_diff/diff_memory.c
(unified_output_baton_t): Add field 'hunk_delimiter'
(output_unified_diff_modified): Call output_unfied_flush_hunk() with
the hunk_delimiter from the baton.
(svn_diff_mem_string_output_unified2): Initialize 'btn->hunk_delimiter'.
* subversion/tests/cmdline/diff_tests.py
(diff_prop_multiple_hunks): Adjust expected paths.
(test_list): Remove XFail for diff_prop_multiple_hunks().
Modified:
subversion/trunk/subversion/libsvn_diff/diff_memory.c
subversion/trunk/subversion/tests/cmdline/diff_tests.py
Modified: subversion/trunk/subversion/libsvn_diff/diff_memory.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/diff_memory.c?rev=980730&r1=980729&r2=980730&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/diff_memory.c (original)
+++ subversion/trunk/subversion/libsvn_diff/diff_memory.c Fri Jul 30 10:52:41
2010
@@ -353,6 +353,10 @@ typedef struct unified_output_baton_t
apr_off_t hunk_length[2]; /* 0 == original; 1 == modified */
apr_off_t hunk_start[2]; /* 0 == original; 1 == modified */
+ /* The delimiters of the hunk header, '@@' for text hunks and '##' for
+ * property hunks. */
+ const char *hunk_delimiter;
+
/* Pool for allocation of temporary memory in the callbacks
Should be cleared on entry of each iteration of a callback */
apr_pool_t *pool;
@@ -516,7 +520,7 @@ output_unified_diff_modified(void *baton
targ_mod = modified_start;
if (btn->next_token + SVN_DIFF__UNIFIED_CONTEXT_SIZE < targ_orig)
- SVN_ERR(output_unified_flush_hunk(btn, NULL));
+ SVN_ERR(output_unified_flush_hunk(btn, btn->hunk_delimiter));
if (btn->hunk_length[0] == 0
&& btn->hunk_length[1] == 0)
@@ -569,6 +573,7 @@ svn_diff_mem_string_output_unified2(svn_
baton.pool = svn_pool_create(pool);
baton.header_encoding = header_encoding;
baton.hunk = svn_stringbuf_create("", pool);
+ baton.hunk_delimiter = hunk_delimiter;
SVN_ERR(svn_utf_cstring_from_utf8_ex2
(&(baton.prefix_str[unified_output_context]), " ",
Modified: subversion/trunk/subversion/tests/cmdline/diff_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/diff_tests.py?rev=980730&r1=980729&r2=980730&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/diff_tests.py Fri Jul 30 10:52:41
2010
@@ -3475,12 +3475,12 @@ def diff_prop_multiple_hunks(sbox):
svntest.main.run_svn(None,
"propset", "prop", prop_val, iota_path)
expected_output = [
- "Index: iota\n",
+ "Index: %s\n" % iota_path,
"===================================================================\n",
- "--- iota\t(revision 2)\n",
- "+++ iota\t(working copy)\n",
+ "--- %s\t(revision 2)\n" % iota_path,
+ "+++ %s\t(working copy)\n" % iota_path,
"\n",
- "Property changes on: iota\n",
+ "Property changes on: %s\n" % iota_path,
"___________________________________________________________________\n",
"Modified: prop\n",
"## -1,6 +1,7 ##\n",
@@ -3564,7 +3564,7 @@ test_list = [ None,
diff_git_format_url_wc,
diff_git_format_url_url,
XFail(diff_prop_missing_context),
- XFail(diff_prop_multiple_hunks),
+ diff_prop_multiple_hunks,
]
if __name__ == '__main__':