On Wed, 14 Nov 2007, jwhitlock@tigris.org wrote:
> http://subversion.tigris.org/issues/show_bug.cgi?id=2723
>
> ------- Additional comments from jwhitlock@tigris.org Tue Nov 13 20:41:30 -0800 2007 -------
> Attached next revision of Issue 2723 patch. Patch now completely outputs the proper diff output relative
> to a path and is unified diff compliant.
Comments inline below.
[[[
Added support to libsvn_client and libsvn_diff to allow consumers the ability
to print unified diff paths relative to a particular directory path. JavaHL
has been updated to take advantage of this new functionality per Issue 2723.
* subversion/include/svn_client.h
(svn_client_diff4, svn_client_diff_peg4): Add new relative_to_dir argument.
* subversion/include/svn_diff.h
(normalize_outputted_diff_path): New function.
-> APIs declared in this header file should typically use the "svn_diff_"
prefix. However, I'm unconvinced that this API belongs in the public
interface.
(svn_diff_file_output_unified): Revved to svn_diff_file_output_unified3()
for new relative_to_dir argument.
-> Was this actually the svn_diff_file_output_unified2 symbol?
* subversion/libsvn_client/diff.c
(diff_cmd_baton): Added relative_to_dir member.
(diff_content_changed, diff_file_deleted_no_diff, svn_client_diff4,
svn_client_diff_peg4): Added support for new relative_to_dir diff_cmd_baton
member.
-> One more char of indent for the above two lines.
(svn_client_diff3, svn_client_diff_peg3): Updated to handle relative_to_dir
argument in revved functions.
* subversion/libsvn_diff/diff_file.c
(svn_diff_file_output_unified): Implementation of
svn_diff_file_output_unified3 which handles relative_to_dir argument.
* subversion/libsvn_diff/util.c
(normalize_outputted_diff_path): New function.
* subversion/svn/diff-cmd.c
(svn_cl__diff): Updated to called revved versions of svn_client_diff and
svn_client_diff_peg.
* subversion/bindings/javahl/native/SVNClient.h
(diff): Add new relativeToDir argument.
* subversion/bindings/javahl/native/SVNClient.cpp
(diff): Add new relativeToDir argument.
* subversion/bindings/javahl/native/org_tigris_subversion_javahl_SVNClient.cpp
(diff): Add new jrelativeToDir argument.
* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
(diff): Add new relativeToDir argument.
* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java
(diff): Add new relativeToDir argument.
* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java
(diff): Add new relativeToDir argument.
* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
(testDiff): Unit tests.
]]]
Index: subversion/include/svn_diff.h
===================================================================
--- subversion/include/svn_diff.h (revision 27805)
+++ subversion/include/svn_diff.h (working copy)
@@ -58,6 +58,16 @@
+
+/* A helper function to determine the outputted path used in
+ * the index and header of the unified diff. If RELATIVE_TO_DIR
+ * is NULL, path is returned unmodified. If RELATIVE_TO_DIR is
+ * not NULL, this function will check to see if RELATIVE_TO_DIR
+ * is prexent at index 0 of PATH and will return PATH with
+ * RELATIVE_TO_DIR stripped from the beginning of PATH. (Issue 2723) */
As this is in the public header file, it should use the header file prefix
and Doxygen-formatted documentation (headed by /**).
+const char *
+normalize_outputted_diff_path(const char *path, const char *relative_to_dir);
+
/**
* Get libsvn_diff version information.
*
@@ -460,7 +470,7 @@
/** A convenience function to produce unified diff output from the
* diff generated by svn_diff_file_diff().
*
- * @since New in 1.3.
+ * @since New in 1.5.
*
* Output a @a diff between @a original_path and @a modified_path in unified
* context diff format to @a output_stream. Optionally supply
The new relative_to_dir parameter needs documentation, which should indicate
the behavior when @c NULL is passed.
@@ -470,6 +480,22 @@
* Output all headers and markers in @a header_encoding.
*/
svn_error_t *
+svn_diff_file_output_unified3(svn_stream_t *output_stream,
+ svn_diff_t *diff,
+ const char *original_path,
+ const char *modified_path,
+ const char *original_header,
+ const char *modified_header,
+ const char *header_encoding,
+ const char *relative_to_dir,
+ apr_pool_t *pool);
+
+/** Similar to svn_diff_file_output_unified3(), but with @a relative_to_dir
+ * set to NULL.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.4 API.
This should be 1.3, rather than 1.4.
+ */
+svn_error_t *
svn_diff_file_output_unified2(svn_stream_t *output_stream,
svn_diff_t *diff,
const char *original_path,
Index: subversion/include/svn_client.h
===================================================================
--- subversion/include/svn_client.h (revision 27805)
+++ subversion/include/svn_client.h (working copy)
@@ -1994,6 +1994,10 @@
* of the diff to @a outfile, and any errors to @a errfile. @a path1
* and @a path2 can be either working-copy paths or URLs.
*
+ * If @a relative_to_dir is not NULL, the path index will be relative
+ * to that directory path. If @a relative_to_dir is NULL, path index
+ * will be created just as Subversion did pre-1.5.
How about: "will be created just as by pre-1.5 versions."
+ *
* If either @a revision1 or @a revision2 has an `unspecified' or
* unrecognized `kind', return @c SVN_ERR_CLIENT_BAD_REVISION.
*
@@ -2035,6 +2039,9 @@
* @note @a header_encoding doesn't affect headers generated by external
* diff programs.
*
+ * @note @a relative_to_dir doesn't affect the path index generated by
+ * external diff programs.
+ *
* @since New in 1.5.
*/
svn_error_t *svn_client_diff4(const apr_array_header_t *diff_options,
@@ -2050,6 +2057,7 @@
apr_file_t *outfile,
apr_file_t *errfile,
svn_client_ctx_t *ctx,
+ const char *relative_to_dir,
apr_pool_t *pool);
@@ -2147,6 +2155,7 @@
apr_file_t *outfile,
apr_file_t *errfile,
svn_client_ctx_t *ctx,
+ const char *relative_to_dir,
apr_pool_t *pool);
/**
Index: subversion/libsvn_diff/diff_file.c
===================================================================
--- subversion/libsvn_diff/diff_file.c (revision 27805)
+++ subversion/libsvn_diff/diff_file.c (working copy)
@@ -1075,13 +1075,14 @@
};
svn_error_t *
-svn_diff_file_output_unified2(svn_stream_t *output_stream,
+svn_diff_file_output_unified3(svn_stream_t *output_stream,
svn_diff_t *diff,
const char *original_path,
const char *modified_path,
const char *original_header,
const char *modified_header,
const char *header_encoding,
+ const char *relative_to_dir,
apr_pool_t *pool)
{
svn_diff__file_output_baton_t baton;
@@ -1125,7 +1126,8 @@
SVN_ERR(svn_stream_printf_from_utf8(output_stream, header_encoding, pool,
"--- %s" APR_EOL_STR
"+++ %s" APR_EOL_STR,
- original_header, modified_header));
+ normalize_outputted_diff_path(original_header, relative_to_dir),
+ normalize_outputted_diff_path(modified_header, relative_to_dir)));
SVN_ERR(svn_diff_output(diff, &baton,
&svn_diff__file_output_unified_vtable));
@@ -1141,6 +1143,22 @@
}
svn_error_t *
+svn_diff_file_output_unified2(svn_stream_t *output_stream,
+ svn_diff_t *diff,
+ const char *original_path,
+ const char *modified_path,
+ const char *original_header,
+ const char *modified_header,
+ const char *header_encoding,
+ apr_pool_t *pool)
+{
+ return svn_diff_file_output_unified3(output_stream, diff,
+ original_path, modified_path,
+ original_header, modified_header,
+ header_encoding, NULL, pool);
+}
+
+svn_error_t *
svn_diff_file_output_unified(svn_stream_t *output_stream,
svn_diff_t *diff,
const char *original_path,
ndex: subversion/libsvn_diff/util.c
===================================================================
--- subversion/libsvn_diff/util.c (revision 27805)
+++ subversion/libsvn_diff/util.c (working copy)
@@ -394,3 +394,42 @@
{
SVN_VERSION_BODY;
}
+
+/* A helper function to determine the Index path of diff's
+ output. If RELATIVE_TO_DIR is NULL, path is returned
+ unmodified. If RELATIVE_TO_DIR is not NULL, this function
+ will check to see if RELATIVE_TO_DIR is prexent at index 0
+ of PATH and will return PATH with RELATIVE_TO_DIR stripped
+ from the beginning of PATH. (Issue 2723) */
+const char *
+normalize_outputted_diff_path(const char *path, const char *relative_to_dir)
+{
+ char *position;
+ int i;
+
+ /* Check that we should be manipulating the index. */
+ if (! relative_to_dir)
+ return path;
+
+ /* Make sure path and relative_to_dir are not equal. */
+ if (! strcmp(path, relative_to_dir))
+ return path;
+
+ position = strstr(path, relative_to_dir);
+
+ /* Make sure the relative_to_dir was found in the path. */
+ if (position == NULL)
+ return path;
+
+ i = path - position;
+
+ /* Make sure relative_to_dir was found at index 0. */
+ if (i != 0)
+ return path;
+
+ /* Handle paths with and without trailing slash appropriately. */
+ if (relative_to_dir[strlen(relative_to_dir) -1] == '/')
+ return &path[strlen(relative_to_dir)];
+ else
+ return &path[strlen(relative_to_dir) + 1];
+}
It'd be great to have a C unit test for this API, which seems like it might
find a better home in svn_path.h (or include/private/ equivalent).
Index: subversion/libsvn_client/diff.c
===================================================================
--- subversion/libsvn_client/diff.c (revision 27805)
+++ subversion/libsvn_client/diff.c (working copy)
@@ -306,6 +306,8 @@
unconditionally, even if the diffs are empty. */
svn_boolean_t force_empty;
+ /* Output path index is relative to a directory path. */
+ const char *relative_to_dir;
};
@@ -461,7 +463,9 @@
/* Print out the diff header. */
SVN_ERR(svn_stream_printf_from_utf8
(os, diff_cmd_baton->header_encoding, subpool,
- "Index: %s" APR_EOL_STR "%s" APR_EOL_STR, path, equal_string));
+ "Index: %s" APR_EOL_STR "%s" APR_EOL_STR,
+ normalize_outputted_diff_path(path, diff_cmd_baton->relative_to_dir),
+ equal_string));
SVN_ERR(svn_stream_printf_from_utf8
(os, diff_cmd_baton->header_encoding, subpool,
@@ -511,7 +515,9 @@
/* Print out the diff header. */
SVN_ERR(svn_stream_printf_from_utf8
"Index: %s" APR_EOL_STR "%s" APR_EOL_STR,
- path, equal_string));
+ normalize_outputted_diff_path(path, diff_cmd_baton->relative_to_dir),
+ equal_string));
/* Output the actual diff */
- SVN_ERR(svn_diff_file_output_unified2
+ SVN_ERR(svn_diff_file_output_unified3
(os, diff, tmpfile1, tmpfile2, label1, label2,
- diff_cmd_baton->header_encoding, subpool));
+ diff_cmd_baton->header_encoding,
+ diff_cmd_baton->relative_to_dir, subpool));
}
}
@@ -672,7 +680,7 @@
(diff_cmd_baton->outfile,
diff_cmd_baton->header_encoding,
"Index: %s (deleted)" APR_EOL_STR "%s" APR_EOL_STR,
- path, equal_string));
+ normalize_outputted_diff_path(path, diff_cmd_baton->relative_to_dir), equal_string));
return SVN_NO_ERROR;
}
@@ -1491,6 +1499,7 @@
apr_file_t *outfile,
apr_file_t *errfile,
svn_client_ctx_t *ctx,
+ const char *relative_to_dir,
apr_pool_t *pool)
{
struct diff_parameters diff_params;
@@ -1536,6 +1545,7 @@
diff_cmd_baton.config = ctx->config;
diff_cmd_baton.force_empty = FALSE;
diff_cmd_baton.force_binary = ignore_content_type;
+ diff_cmd_baton.relative_to_dir = relative_to_dir;
return do_diff(&diff_params, &diff_callbacks, &diff_cmd_baton, ctx, pool);
}
@@ -1560,7 +1570,7 @@
revision2, SVN_DEPTH_INFINITY_OR_FILES(recurse),
ignore_ancestry, no_diff_deleted,
ignore_content_type, header_encoding,
- outfile, errfile, ctx, pool);
+ outfile, errfile, ctx, NULL, pool);
}
svn_error_t *
@@ -1617,6 +1627,7 @@
apr_file_t *outfile,
apr_file_t *errfile,
svn_client_ctx_t *ctx,
+ const char *relative_to_dir,
apr_pool_t *pool)
{
struct diff_parameters ctx,
+ NULL,
pool);
}
Index: subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
===================================================================
--- subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (revision 27805)
+++ subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (working copy)
@@ -19,7 +19,10 @@
import org.tigris.subversion.javahl.*;
+import java.io.BufferedInputStream;
+import java.io.DataInputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
@@ -2450,6 +2453,34 @@
"", diffOutput);
diffOutput.delete();
+
+ // Test svn diff with a relative path.
+ String wcPath = fileToSVNPath(new File(thisTest.getWCPath()),
+ false);
+
+ expectedDiffOutput = "Index: iota" + NL + sepLine +
+ "--- iota\t(revision 1)" + NL +
+ "+++ iota\t(working copy)" + NL +
+ expectedDiffBody;
+ client.diff(iotaPath, Revision.BASE,
+ iotaPath, Revision.WORKING,
+ diffOutput.getPath(), Depth.infinity, true, true, false,
+ wcPath);
+ assertFileContentsEquals("Unexpected diff output in file '" +
+ diffOutput.getPath() + '\'',
+ expectedDiffOutput, diffOutput);
+
+ // Test svn diff with a relative path and trailing slash.
+ wcPath = fileToSVNPath(new File(thisTest.getWCPath() + "/"),
+ false);
+
+ client.diff(iotaPath, Revision.BASE,
+ iotaPath, Revision.WORKING,
+ diffOutput.getPath(), Depth.infinity, true, true, false,
+ wcPath);
+ assertFileContentsEquals("Unexpected diff output in file '" +
+ pp (revision 27805)
+++ subversion/bindings/javahl/native/org_tigris_subversion_javahl_SVNClient.cpp (working copy)
@@ -1106,11 +1106,11 @@
}
JNIEXPORT void JNICALL
-Java_org_tigris_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2IZZZ
+Java_org_tigris_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2IZZZLjava_lang_String_2
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
jstring jtarget2, jobject jrevision2, jstring joutfileName,
jint jdepth, jboolean jignoreAncestry, jboolean jnoDiffDeleted,
- jboolean jforce)
+ jboolean jforce, jstring jrelativeToDir)
{
JNIEntry(SVNClient, diff);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1139,18 +1139,23 @@
if (JNIUtil::isExceptionThrown())
return;
+ JNIStringHolder relativeToDir(jrelativeToDir);
+ if (JNIUtil::isExceptionThrown())
+ return;
+
cl->diff(target1, revision1, target2, revision2, outfileName,
(svn_depth_t)jdepth,
jignoreAncestry ? true:false,
- jnoDiffDeleted ? true:false, jforce ? true:false);
+ jnoDiffDeleted ? true:false, jforce ? true:false,
+ relativeToDir);
}
JNIEXPORT void JNICALL
-Java_org_tigris_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Lorg_tigris_subversion_javahl_Revision_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2IZZZ
+Java_org_tigris_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_tigris_subversion_javahl_Revision_2Lorg_tigris_subversion_javahl_Revision_2Lorg_tigris_subversion_javahl_Revision_2Ljava_lang_String_2IZZZLjava_lang_String_2
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
jobject jstartRevision, jobject jendRevision, jstring joutfileName,
jint jdepth, jboolean jignoreAncestry, jboolean jnoDiffDeleted,
- jboolean eAncestry ? true:false,
- jnoDiffDeleted ? true:false, jforce ? true:false);
+ jnoDiffDeleted ? true:false, jforce ? true:false,
+ relativeToDir);
}
JNIEXPORT void JNICALL
Index: subversion/bindings/javahl/native/SVNClient.h
===================================================================
--- subversion/bindings/javahl/native/SVNClient.h (revision 27805)
+++ subversion/bindings/javahl/native/SVNClient.h (working copy)
@@ -165,11 +165,11 @@
void diff(const char *target1, Revision &revision1,
const char *target2, Revision &revision2,
const char *outfileName, svn_depth_t depth, bool ignoreAncestry,
- bool noDiffDelete, bool force);
+ bool noDiffDelete, bool force, const char *relativeToDir);
void diff(const char *target, Revision &pegevision,
Revision &startRevision, Revision &endRevision,
const char *outfileName, svn_depth_t depth, bool ignoreAncestry,
- bool noDiffDelete, bool force);
+ bool noDiffDelete, bool force, const char *relativeToDir);
void diffSummarize(const char *target1, Revision &revision1,
const char *target2, Revision &revision2,
svn_depth_t depth, bool ignoreAncestry,
@@ -205,7 +205,7 @@
const char *target2, Revision &revision2,
Revision *pegRevision,
const char *outfileName, svn_depth_t depth, bool ignoreAncestry,
- bool noDiffDelete, bool force);
+ bool noDiffDelete, bool force, const char *relativeToDir);
jobject createJavaInfo(const svn_wc_entry_t *entry);
Index: subversion/bindings/javahl/native/SVNClient.cpp
===================================================================
--- subversion/bindings/javahl/native/SVNClient.cpp (revision 27805)
+++ subversion/bindings/javahl/native/SVNClient.cpp (working copy)
@@ -882,7 +882,8 @@
const char *target2, Revision &revision2,
Revision *pegRevision, const char *outfileName,
svn_depth_t depth, bool ignoreAncestry,
- bool noDiffDelete, bool force)
+ botfile,
NULL /* error file */,
ctx,
+ relativeToDir,
requestPool.pool());
}
@@ -978,19 +981,21 @@
void SVNClient::diff(const char *target1, Revision &revision1,
const char *target2, Revision &revision2,
const char *outfileName, svn_depth_t depth,
- bool ignoreAncestry, bool noDiffDelete, bool force)
+ bool ignoreAncestry, bool noDiffDelete, bool force,
+ const char *relativeToDir)
{
diff(target1, revision1, target2, revision2, NULL, outfileName, depth,
- ignoreAncestry, noDiffDelete, force);
+ ignoreAncestry, noDiffDelete, force, relativeToDir);
}
void SVNClient::diff(const char *target, Revision &pegRevision,
Revision &startRevision, Revision &endRevision,
const char *outfileName, svn_depth_t depth,
- bool ignoreAncestry, bool noDiffDelete, bool force)
+ bool ignoreAncestry, bool noDiffDelete, bool force,
+ const char *relativeToDir)
{
diff(target, startRevision, NULL, endRevision, &pegRevision, outfileName,
- depth, ignoreAncestry, noDiffDelete, force);
+ depth, ignoreAncestry, noDiffDelete, force, relativeToDir);
}
void
Index: subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java
===================================================================
--- subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java (revision 27805)
+++ subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java (working copy)
@@ -1056,13 +1056,14 @@
public void diff(String target1, Revision revision1, String target2,
Revision revision2, String outFileName, int depth,
boolean ignoreAncestry, boolean noDiffDeleted,
- boolean force)
+ boolean force, String relativeToDir)
throws ClientException
{
synchronivision,
Revision startRevision, Revision endRevision,
String outFileName, int depth, boolean ignoreAncestry,
- boolean noDiffDeleted, boolean force)
+ boolean noDiffDeleted, boolean force,
+ String relativeToDir)
throws ClientException
{
synchronized (clazz)
{
worker.diff(target, pegRevision, startRevision, endRevision,
outFileName, depth, ignoreAncestry, noDiffDeleted,
- force);
+ force, relativeToDir);
}
}
Index: subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
===================================================================
--- subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (revision 27805)
+++ subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (working copy)
@@ -805,7 +805,7 @@
{
diff(target1, revision1, target2, revision2, outFileName,
Depth.unknownOrFiles(recurse), ignoreAncestry, noDiffDeleted,
- force);
+ force, null);
}
/**
@@ -814,7 +814,7 @@
public native void diff(String target1, Revision revision1, String target2,
Revision revision2, String outFileName, int depth,
boolean ignoreAncestry, boolean noDiffDeleted,
- boolean force)
+ boolean force, String relativeToDir)
throws ClientException;
/**
@@ -832,7 +832,7 @@
{
diff(target, pegRevision, startRevision, endRevision, outFileName,
Depth.unknownOrFiles(recurse), ignoreAncestry, noDiffDeleted,
- force);
+ force, null);
}
/**
@@ -842,7 +842,7 @@
Revision startRevision, Revision endRevision,
String outFileName, int depth,
boolean ignoreAncestry, boolean noDiffDeleted,
- boolean force)
+ boolean force, String relativeToDir)
throws ClientException;
/**
Index: subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java
===================================================================
--- subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java (revision 27805)
+++ subversion/bindings/javahl/src/orgs/subversion/javahl/SVNClientInterface.java (working copy)
@@ -1051,12 +1051,14 @@
* @param ignoreAncestry ignore if files are not related
* @param noDiffDeleted no output on deleted files
* @param force diff even on binary files
+ * @param relativeToDir index path is relative to this path
* @throws ClientException
* @since 1.5
*/
void diff(String target1, Revision revision1, String target2,
Revision revision2, String outFileName, int depth,
- boolean ignoreAncestry, boolean noDiffDeleted, boolean force)
+ boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
+ String relativeToDir)
throws ClientException;
/**
@@ -1092,12 +1094,14 @@
* @param ignoreAncestry ignore if files are not related
* @param noDiffDeleted no output on deleted files
* @param force diff even on binary files
+ * @param relativeToDir index path is relative to this path
* @throws ClientException
* @since 1.5
*/
void diff(String target, Revision pegRevision, Revision startRevision,
Revision endRevision, String outFileName, int depth,
- boolean ignoreAncestry, boolean noDiffDeleted, boolean force)
+ boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
+ String relativeToDir)
throws ClientException;
/**
Index: subversion/svn/diff-cmd.c
===================================================================
--- subversion/svn/diff-cmd.c (revision 27805)
+++ subversion/svn/diff-cmd.c (working copy)
@@ -367,6 +367,7 @@
outfile,
errfile,
((svn_cl__cmd_baton_t *)baton)->ctx,
+ NULL,
iterpool));
}
else
@@ -410,6 +411,7 @@
outfile,
errfile,
((svn_cl__cmd_baton_t *)baton)->ctx,
+ NULL,
iterpool));
}
}
This part the patch looks awfully familiar. :P
- application/pgp-signature attachment: stored
Received on Wed Nov 14 06:21:32 2007