You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2012/05/11 02:05:43 UTC
svn commit: r1336974 [1/4] - in /subversion/branches/ev2-export: ./
subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/include/ subversion/include/private/ subversion/libsvn_client/
subversion/lib...
Author: hwright
Date: Fri May 11 00:05:41 2012
New Revision: 1336974
URL: http://svn.apache.org/viewvc?rev=1336974&view=rev
Log:
On the ev2-export branch:
Bring up-to-date with trunk.
Modified:
subversion/branches/ev2-export/ (props changed)
subversion/branches/ev2-export/CHANGES
subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.h
subversion/branches/ev2-export/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h
subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
subversion/branches/ev2-export/subversion/include/svn_client.h
subversion/branches/ev2-export/subversion/include/svn_io.h
subversion/branches/ev2-export/subversion/include/svn_wc.h
subversion/branches/ev2-export/subversion/libsvn_client/copy.c
subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c
subversion/branches/ev2-export/subversion/libsvn_client/diff.c
subversion/branches/ev2-export/subversion/libsvn_client/merge.c
subversion/branches/ev2-export/subversion/libsvn_client/resolved.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/blame.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/get_deleted_rev.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/getlocations.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/getlocationsegments.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/log.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/mergeinfo.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/serf.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c
subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c
subversion/branches/ev2-export/subversion/libsvn_subr/stream.c
subversion/branches/ev2-export/subversion/libsvn_wc/adm_files.c
subversion/branches/ev2-export/subversion/libsvn_wc/adm_ops.c
subversion/branches/ev2-export/subversion/libsvn_wc/conflicts.c
subversion/branches/ev2-export/subversion/libsvn_wc/deprecated.c
subversion/branches/ev2-export/subversion/libsvn_wc/merge.c
subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c
subversion/branches/ev2-export/subversion/mod_dav_svn/reports/update.c
subversion/branches/ev2-export/subversion/svn/cl.h
subversion/branches/ev2-export/subversion/svn/conflict-callbacks.c
subversion/branches/ev2-export/subversion/svn/diff-cmd.c
subversion/branches/ev2-export/subversion/svn/log-cmd.c
subversion/branches/ev2-export/subversion/svn/main.c
subversion/branches/ev2-export/subversion/svn/resolve-cmd.c
subversion/branches/ev2-export/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/merge_symmetric_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/revert_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/tree_conflict_tests.py
subversion/branches/ev2-export/tools/dist/release.py
Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1335624-1336970
Modified: subversion/branches/ev2-export/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/CHANGES?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/CHANGES (original)
+++ subversion/branches/ev2-export/CHANGES Fri May 11 00:05:41 2012
@@ -22,6 +22,7 @@ http://svn.apache.org/repos/asf/subversi
* new --patch-compatible option for 'svn diff' (r1239561)
* new SvnPubSub distributed commit hooks (tools/server-side/svnpubsub)
* 'svn diff' can compare arbitrary files and directories (r1310291, et al)
+ * ra_serf avoids re-downloading content present in pristine store (r1333936)
- Client-side bugfixes:
*
@@ -44,7 +45,7 @@ http://svn.apache.org/repos/asf/subversi
Version 1.7.5
-(26 Apr 2012, from /branches/1.7.x)
+(17 May 2012, from /branches/1.7.x)
http://svn.apache.org/repos/asf/subversion/tags/1.7.5
User-visible changes:
@@ -66,9 +67,13 @@ http://svn.apache.org/repos/asf/subversi
* notify upon 'update' just removing locks on files (r1329876)
* neon: fix potential use of freed memory during commits (r1329388)
* 'status --xml' doesn't show repository deletes correctly (issue #4167)
- * fix assert on svn:externals with drive letter on Windows (issue #4173)
+ * fix assert on svn:externals with drive letter on Windows (issue #4073)
* fix 'svn update --depth=empty' against 1.4 servers (issue #4046)
* handle missing svn:date reported by svnserve gracefully (r1306111)
+ * fix merges which first add a subtree and then delete it (issue #4166)
+ * fix a regression with checkout of file externals (issue #4087)
+ * don't add spurious mergeinfo to subtrees in edge-case merge (issue #4169)
+ * improve performance of status on large working copies (issue #4178)
- Server-side bugfixes:
* fix non-fatal FSFS corruption bug with concurrent commits (issue #4129)
@@ -82,10 +87,12 @@ http://svn.apache.org/repos/asf/subversi
Developer-visible changes:
- General:
* windows example distribution scripts: include svnrdump (r1295007)
+ * fix running the test suite with jsvn (r1335555)
- Bindings:
* swig-py tests: avoid FAILs on APR hash order (r1296137, r1292248)
* swig-rb tests: avoid FAILs on APR hash order (r1310535, r1310594)
+ * swig-pl: Improved perl detection in gen-make.py (r1291797, r1291810)
Version 1.7.4
Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp Fri May 11 00:05:41 2012
@@ -936,7 +936,7 @@ void SVNClient::diff(const char *target1
OutputStream &outputStream, svn_depth_t depth,
StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps)
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
{
SVN::Pool subPool(pool);
const char *c_relToDir = relativeToDir ?
@@ -973,6 +973,7 @@ void SVNClient::diff(const char *target1
showCopiesAsAdds,
force,
ignoreProps,
+ propsOnly,
FALSE, /* use_git_diff_format */
SVN_APR_LOCALE_CHARSET,
outputStream.getStream(subPool),
@@ -1000,6 +1001,7 @@ void SVNClient::diff(const char *target1
showCopiesAsAdds,
force,
ignoreProps,
+ propsOnly,
FALSE, /* use_git_diff_format */
SVN_APR_LOCALE_CHARSET,
outputStream.getStream(subPool),
@@ -1016,11 +1018,11 @@ void SVNClient::diff(const char *target1
const char *relativeToDir, OutputStream &outputStream,
svn_depth_t depth, StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps)
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
{
diff(target1, revision1, target2, revision2, NULL, relativeToDir,
outputStream, depth, changelists, ignoreAncestry, noDiffDelete, force,
- showCopiesAsAdds, ignoreProps);
+ showCopiesAsAdds, ignoreProps, propsOnly);
}
void SVNClient::diff(const char *target, Revision &pegRevision,
@@ -1028,12 +1030,12 @@ void SVNClient::diff(const char *target,
const char *relativeToDir, OutputStream &outputStream,
svn_depth_t depth, StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps)
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
{
diff(target, startRevision, NULL, endRevision, &pegRevision,
relativeToDir, outputStream, depth, changelists,
ignoreAncestry, noDiffDelete, force, showCopiesAsAdds,
- ignoreProps);
+ ignoreProps, propsOnly);
}
void
Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.h Fri May 11 00:05:41 2012
@@ -177,13 +177,13 @@ class SVNClient :public SVNBase
const char *relativeToDir, OutputStream &outputStream,
svn_depth_t depth, StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps);
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
void diff(const char *target, Revision &pegevision,
Revision &startRevision, Revision &endRevision,
const char *relativeToDir, OutputStream &outputStream,
svn_depth_t depth, StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps);
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
void diffSummarize(const char *target1, Revision &revision1,
const char *target2, Revision &revision2,
svn_depth_t depth, StringArray &changelists,
@@ -212,7 +212,7 @@ class SVNClient :public SVNBase
OutputStream &outputStream, svn_depth_t depth,
StringArray &changelists,
bool ignoreAncestry, bool noDiffDelete, bool force,
- bool showCopiesAsAdds, bool ignoreProps);
+ bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
Path m_lastPath;
ClientContext context;
Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Fri May 11 00:05:41 2012
@@ -1171,12 +1171,12 @@ JNIEXPORT void JNICALL Java_org_apache_s
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
jobject jstream, jobject jdepth, jobject jchangelists,
jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
{
JNIEntry(SVNClient, diff);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1217,16 +1217,17 @@ Java_org_apache_subversion_javahl_SVNCli
EnumMapper::toDepth(jdepth), changelists,
jignoreAncestry ? true:false,
jnoDiffDeleted ? true:false, jforce ? true:false,
- jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+ jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+ jpropsOnly ? true:false);
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
jobject jstream, jobject jdepth, jobject jchangelists,
jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
{
JNIEntry(SVNClient, diff);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1267,7 +1268,8 @@ Java_org_apache_subversion_javahl_SVNCli
dataOut, EnumMapper::toDepth(jdepth), changelists,
jignoreAncestry ? true:false,
jnoDiffDeleted ? true:false, jforce ? true:false,
- jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+ jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+ jpropsOnly ? true:false);
}
JNIEXPORT void JNICALL
Modified: subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Fri May 11 00:05:41 2012
@@ -522,13 +522,14 @@ public interface ISVNClient
* @param copiesAsAdds if set, copied files will be shown in their
* entirety, not as diffs from their sources
* @param ignoreProps don't show property diffs
+ * @param propsOnly show property changes only
* @throws ClientException
*/
void diff(String target1, Revision revision1, String target2,
Revision revision2, String relativeToDir, OutputStream outStream,
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
- boolean copiesAsAdds, boolean ignoreProps)
+ boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
throws ClientException;
void diff(String target1, Revision revision1, String target2,
@@ -554,6 +555,7 @@ public interface ISVNClient
* @param copiesAsAdds if set, copied files will be shown in their
* entirety, not as diffs from their sources
* @param ignoreProps don't show property diffs
+ * @param propsOnly show property changes only
* @throws ClientException
*/
void diff(String target, Revision pegRevision, Revision startRevision,
@@ -561,7 +563,7 @@ public interface ISVNClient
OutputStream outStream,
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
- boolean copiesAsAdds, boolean ignoreProps)
+ boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
throws ClientException;
void diff(String target, Revision pegRevision, Revision startRevision,
Modified: subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Fri May 11 00:05:41 2012
@@ -278,7 +278,7 @@ public class SVNClient implements ISVNCl
OutputStream stream = new FileOutputStream(outFileName);
diff(target1, revision1, target2, revision2, relativeToDir,
stream, depth, changelists, ignoreAncestry, noDiffDeleted,
- force, copiesAsAdds, false);
+ force, copiesAsAdds, false, false);
} catch (FileNotFoundException ex) {
throw ClientException.fromException(ex);
}
@@ -290,7 +290,7 @@ public class SVNClient implements ISVNCl
Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted,
boolean force, boolean copiesAsAdds,
- boolean ignoreProps)
+ boolean ignoreProps, boolean propsOnly)
throws ClientException;
public void diff(String target, Revision pegRevision,
@@ -305,7 +305,7 @@ public class SVNClient implements ISVNCl
OutputStream stream = new FileOutputStream(outFileName);
diff(target, pegRevision, startRevision, endRevision,
relativeToDir, stream, depth, changelists, ignoreAncestry,
- noDiffDeleted, force, copiesAsAdds, false);
+ noDiffDeleted, force, copiesAsAdds, false, false);
} catch (FileNotFoundException ex) {
throw ClientException.fromException(ex);
}
@@ -317,7 +317,7 @@ public class SVNClient implements ISVNCl
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted,
boolean force, boolean copiesAsAdds,
- boolean ignoreProps)
+ boolean ignoreProps, boolean propsOnly)
throws ClientException;
public native void diffSummarize(String target1, Revision revision1,
Modified: subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h Fri May 11 00:05:41 2012
@@ -185,7 +185,8 @@ svn_mergeinfo__to_formatted_string(svn_s
apr_pool_t *pool);
/* Set *YOUNGEST_REV and *OLDEST_REV to the youngest and oldest revisions
- found in the rangelists within MERGEINFO. If MERGEINFO is NULL or empty
+ found in the rangelists within MERGEINFO. Note that *OLDEST_REV is
+ exclusive and *YOUNGEST_REV is inclusive. If MERGEINFO is NULL or empty
set *YOUNGEST_REV and *OLDEST_REV to SVN_INVALID_REVNUM. */
svn_error_t *
svn_mergeinfo__get_range_endpoints(svn_revnum_t *youngest_rev,
@@ -194,9 +195,9 @@ svn_mergeinfo__get_range_endpoints(svn_r
apr_pool_t *pool);
/* Set *FILTERED_MERGEINFO to a deep copy of MERGEINFO, allocated in
- RESULT_POOL, less any rangelists that fall outside of the range
- OLDEST_REV:YOUNGEST_REV (inclusive) if INCLUDE_RANGE is true, or less
- any rangelists within the range OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
+ RESULT_POOL, less any revision ranges that fall outside of the range
+ OLDEST_REV:YOUNGEST_REV (exclusive:inclusive) if INCLUDE_RANGE is true,
+ or less any ranges within OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
is false. If all the rangelists mapped to a given path are filtered
then filter that path as well. If all paths are filtered or MERGEINFO is
empty or NULL then *FILTERED_MERGEINFO is set to an empty hash.
Modified: subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h Fri May 11 00:05:41 2012
@@ -1034,6 +1034,16 @@ svn_wc__rename_wc(svn_wc_context_t *wc_c
const char *dst_abspath,
apr_pool_t *scratch_pool);
+/* Set *TMPDIR_ABSPATH to a directory that is suitable for temporary
+ files which may need to be moved (atomically and same-device) into
+ the working copy indicated by WRI_ABSPATH. */
+svn_error_t *
+svn_wc__get_tmpdir(const char **tmpdir_abspath,
+ svn_wc_context_t *wc_ctx,
+ const char *wri_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/* Gets information needed by the commit harvester.
*
* ### Currently this API is work in progress and is designed for just this
@@ -1667,6 +1677,76 @@ svn_wc__get_diff_editor(const svn_delta_
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/**
+ * Assuming @a local_abspath itself or any of its children are under version
+ * control or a tree conflict victim and in a state of conflict, take these
+ * nodes out of this state.
+ *
+ * If @a resolve_text is TRUE then any text conflict is resolved,
+ * if @a resolve_tree is TRUE then any tree conflicts are resolved.
+ * If @a resolve_prop is set to "" all property conflicts are resolved,
+ * if it is set to any other string value, conflicts on that specific
+ * property are resolved and when resolve_prop is NULL, no property
+ * conflicts are resolved.
+ *
+ * If @a depth is #svn_depth_empty, act only on @a local_abspath; if
+ * #svn_depth_files, resolve @a local_abspath and its conflicted file
+ * children (if any); if #svn_depth_immediates, resolve @a local_abspath
+ * and all its immediate conflicted children (both files and directories,
+ * if any); if #svn_depth_infinity, resolve @a local_abspath and every
+ * conflicted file or directory anywhere beneath it.
+ *
+ * If @a conflict_choice is #svn_wc_conflict_choose_base, resolve the
+ * conflict with the old file contents; if
+ * #svn_wc_conflict_choose_mine_full, use the original working contents;
+ * if #svn_wc_conflict_choose_theirs_full, the new contents; and if
+ * #svn_wc_conflict_choose_merged, don't change the contents at all,
+ * just remove the conflict status, which is the pre-1.5 behavior.
+ *
+ * If @a conflict_choice is #svn_wc_conflict_choose_unspecified, invoke the
+ * @a conflict_func with the @a conflict_baton argument to obtain a
+ * resolution decision for each conflict.
+ *
+ * #svn_wc_conflict_choose_theirs_conflict and
+ * #svn_wc_conflict_choose_mine_conflict are not legal for binary
+ * files or properties.
+ *
+ * @a wc_ctx is a working copy context, with a write lock, for @a
+ * local_abspath.
+ *
+ * The implementation details are opaque, as our "conflicted" criteria
+ * might change over time. (At the moment, this routine removes the
+ * three fulltext 'backup' files and any .prej file created in a conflict,
+ * and modifies @a local_abspath's entry.)
+ *
+ * If @a local_abspath is not under version control and not a tree
+ * conflict, return #SVN_ERR_ENTRY_NOT_FOUND. If @a path isn't in a
+ * state of conflict to begin with, do nothing, and return #SVN_NO_ERROR.
+ *
+ * If @c local_abspath was successfully taken out of a state of conflict,
+ * report this information to @c notify_func (if non-@c NULL.) If only
+ * text, only property, or only tree conflict resolution was requested,
+ * and it was successful, then success gets reported.
+ *
+ * Temporary allocations will be performed in @a scratch_pool.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__resolve_conflicts(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t resolve_text,
+ const char *resolve_prop,
+ svn_boolean_t resolve_tree,
+ svn_wc_conflict_choice_t conflict_choice,
+ svn_wc_conflict_resolver_func2_t conflict_func,
+ void *conflict_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
#ifdef __cplusplus
}
Modified: subversion/branches/ev2-export/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_client.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_client.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_client.h Fri May 11 00:05:41 2012
@@ -2883,6 +2883,11 @@ svn_client_blame(const char *path_or_url
* will be used.
* ### Do we need to say more about the format? A reference perhaps?
*
+ * If @a ignore_properties is TRUE, do not show property differences.
+ * If @a properties_only is TRUE, show only property changes.
+ * The above two options are mutually exclusive. It is an error to set
+ * both to TRUE.
+ *
* Generated headers are encoded using @a header_encoding.
*
* Diff output will not be generated for binary files, unless @a
@@ -2927,7 +2932,8 @@ svn_client_diff6(const apr_array_header_
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
@@ -3087,7 +3093,8 @@ svn_client_diff_peg6(const apr_array_hea
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
Modified: subversion/branches/ev2-export/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_io.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_io.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_io.h Fri May 11 00:05:41 2012
@@ -1341,19 +1341,21 @@ typedef svn_error_t *
apr_pool_t *scratch_pool);
-/** Set @a *stream to a generic stream which wraps another primary
- * stream, delaying the "opening" of that stream until the first time
- * the stream is accessed.
+/** Return a generic stream which wraps another primary stream,
+ * delaying the "opening" of that stream until the first time the
+ * stream is accessed.
*
* @a open_func and @a open_baton are a callback function/baton pair
* invoked upon the first read of @a *stream which are used to open the
* "real" source stream.
*
+ * @note If the only "access" the returned stream gets is to close it,
+ * @a open_func will not be called.
+ *
* @since New in 1.8.
*/
-svn_error_t *
-svn_stream_lazyopen_create(svn_stream_t **stream,
- svn_stream_lazyopen_func_t open_func,
+svn_stream_t *
+svn_stream_lazyopen_create(svn_stream_lazyopen_func_t open_func,
void *open_baton,
apr_pool_t *result_pool);
Modified: subversion/branches/ev2-export/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_wc.h?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_wc.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_wc.h Fri May 11 00:05:41 2012
@@ -2015,7 +2015,10 @@ typedef enum svn_wc_conflict_choice_t
svn_wc_conflict_choose_mine_full, /**< own version */
svn_wc_conflict_choose_theirs_conflict, /**< incoming (for conflicted hunks) */
svn_wc_conflict_choose_mine_conflict, /**< own (for conflicted hunks) */
- svn_wc_conflict_choose_merged /**< merged version */
+ svn_wc_conflict_choose_merged, /**< merged version */
+
+ /* @since New in 1.8. */
+ svn_wc_conflict_choose_unspecified /**< undecided */
} svn_wc_conflict_choice_t;
@@ -6575,7 +6578,7 @@ typedef enum svn_wc_merge_outcome_t
* receive the changes, then translated back again.
*
* If @a target_abspath is absent, or present but not under version
- * control, then set @a *merge_outcome to #svn_wc_merge_no_merge and
+ * control, then set @a *merge_content_outcome to #svn_wc_merge_no_merge and
* return success without merging anything. (The reasoning is that if
* the file is not versioned, then it is probably unrelated to the
* changes being considered, so they should not be merged into it.
@@ -6593,8 +6596,16 @@ typedef enum svn_wc_merge_outcome_t
* svn_diff_file_options_parse()). @a merge_options must contain
* <tt>const char *</tt> elements.
*
- * The outcome of the merge is returned in @a *merge_outcome. If there
- * is a conflict and @a dry_run is @c FALSE, then attempt to call @a
+ * If @a merge_props_state is non-NULL @a propchanges is merged before
+ * merging the text. (If @a merge_props_outcome is NULL, no property changes
+* are merged and @a prop_changes is only used to determine the merge result)
+ * The result of the property merge is stored in @a *merge_props_state. If
+ * there is a conflict and @a dry_run is @c FALSE, then attempt to call @a
+ * conflict_func with @a conflict_baton (if non-NULL). If the conflict
+ * callback cannot resolve the conflict, then a property conflict is installed.
+ *
+ * The outcome of the text merge is returned in @a *merge_text_outcome. If
+ * there is a conflict and @a dry_run is @c FALSE, then attempt to call @a
* conflict_func with @a conflict_baton (if non-NULL). If the
* conflict callback cannot resolve the conflict, then:
*
@@ -6629,9 +6640,39 @@ typedef enum svn_wc_merge_outcome_t
*
* Use @a scratch_pool for any temporary allocation.
*
+ * @since New in 1.8.
+ */ /* ### BH: Two kinds of outcome is not how it should be */
+svn_error_t *
+svn_wc_merge5(enum svn_wc_merge_outcome_t *merge_content_outcome,
+ enum svn_wc_notify_state_t *merge_props_state,
+ svn_wc_context_t *wc_ctx,
+ const char *left_abspath,
+ const char *right_abspath,
+ const char *target_abspath,
+ const char *left_label,
+ const char *right_label,
+ const char *target_label,
+ const svn_wc_conflict_version_t *left_version,
+ const svn_wc_conflict_version_t *right_version,
+ svn_boolean_t dry_run,
+ const char *diff3_cmd,
+ const apr_array_header_t *merge_options,
+ apr_hash_t *original_props,
+ const apr_array_header_t *prop_diff,
+ svn_wc_conflict_resolver_func2_t conflict_func,
+ void *conflict_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_merge4() but doesn't allow property changes. Instead of
+ * handling this in a single operation, a separate call to svn_wc_merge_props3()
+ * before calling svn_wc_merge4() is needed
+ *
* @since New in 1.7.
+ * @deprecated Provided for backwards compatibility with the 1.7 API.
*/
-svn_error_t *
+SVN_DEPRECATED svn_error_t *
svn_wc_merge4(enum svn_wc_merge_outcome_t *merge_outcome,
svn_wc_context_t *wc_ctx,
const char *left_abspath,
@@ -6652,6 +6693,7 @@ svn_wc_merge4(enum svn_wc_merge_outcome_
void *cancel_baton,
apr_pool_t *scratch_pool);
+
/** Similar to svn_wc_merge4() but takes relative paths and an access
* baton. It doesn't support a cancel function or tracking origin version
* information.
Modified: subversion/branches/ev2-export/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/copy.c?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/copy.c Fri May 11 00:05:41 2012
@@ -1050,22 +1050,6 @@ wc_to_repos_copy(const apr_array_header_
iterpool = svn_pool_create(pool);
- /* Verify that all the source paths exist, are versioned, etc.
- We'll do so by querying the base revisions of those things (which
- we'll need to know later anyway).
- ### Should we use the 'origin' revision instead of 'base'?
- */
- for (i = 0; i < copy_pairs->nelts; i++)
- {
- svn_client__copy_pair_t *pair = APR_ARRAY_IDX(copy_pairs, i,
- svn_client__copy_pair_t *);
- svn_pool_clear(iterpool);
-
- SVN_ERR(svn_wc__node_get_base(&pair->src_revnum, NULL, NULL, NULL,
- ctx->wc_ctx, pair->src_abspath_or_url,
- iterpool, iterpool));
- }
-
/* Determine the longest common ancestor for the destinations, and open an RA
session to that location. */
/* ### But why start by getting the _parent_ of the first one? */
@@ -1371,13 +1355,14 @@ repos_to_wc_copy_single(svn_client__copy
if (pair->src_kind == svn_node_dir)
{
svn_boolean_t sleep_needed = FALSE;
- const char *tmp_abspath;
+ const char *tmpdir_abspath, *tmp_abspath;
- /* Find a temporary location in which to check out the copy source.
- * (This function is deprecated, but we intend to replace this whole
- * code path with something else.) */
- SVN_ERR(svn_wc_create_tmp_file2(NULL, &tmp_abspath, dst_abspath,
- svn_io_file_del_on_close, pool));
+ /* Find a temporary location in which to check out the copy source. */
+ SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, dst_abspath,
+ pool, pool));
+
+ SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
+ svn_io_file_del_on_close, pool, pool));
/* Make a new checkout of the requested source. While doing so,
* resolve pair->src_revnum to an actual revision number in case it
Modified: subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c Fri May 11 00:05:41 2012
@@ -886,7 +886,7 @@ svn_client_diff5(const apr_array_header_
revision2, relative_to_dir, depth,
ignore_ancestry, no_diff_deleted,
show_copies_as_adds, ignore_content_type, FALSE,
- use_git_diff_format, header_encoding,
+ FALSE, use_git_diff_format, header_encoding,
outstream, errstream, changelists, ctx, pool);
}
@@ -1014,6 +1014,7 @@ svn_client_diff_peg5(const apr_array_hea
show_copies_as_adds,
ignore_content_type,
FALSE,
+ FALSE,
use_git_diff_format,
header_encoding,
outstream,
Modified: subversion/branches/ev2-export/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/diff.c?rev=1336974&r1=1336973&r2=1336974&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/diff.c Fri May 11 00:05:41 2012
@@ -777,7 +777,10 @@ struct diff_cmd_baton {
const char *relative_to_dir;
/* Whether property differences are ignored. */
- svn_boolean_t ignore_prop_diff;
+ svn_boolean_t ignore_properties;
+
+ /* Whether to show only property changes. */
+ svn_boolean_t properties_only;
/* Whether we're producing a git-style diff. */
svn_boolean_t use_git_diff_format;
@@ -831,7 +834,7 @@ diff_props_changed(svn_wc_notify_state_t
svn_boolean_t show_diff_header;
/* If property differences are ignored, there's nothing to do. */
- if (diff_cmd_baton->ignore_prop_diff)
+ if (diff_cmd_baton->ignore_properties)
return SVN_NO_ERROR;
SVN_ERR(svn_categorize_props(propchanges, NULL, NULL, &props,
@@ -929,6 +932,10 @@ diff_content_changed(const char *path,
const char *path1 = diff_cmd_baton->orig_path_1;
const char *path2 = diff_cmd_baton->orig_path_2;
+ /* If only property differences are shown, there's nothing to do. */
+ if (diff_cmd_baton->properties_only)
+ return SVN_NO_ERROR;
+
/* Generate the diff headers. */
SVN_ERR(adjust_paths_for_diff_labels(&path, &path1, &path2,
rel_to_dir, subpool));
@@ -1836,7 +1843,7 @@ do_arbitrary_files_diff(const char *loca
if (ctx->cancel_func)
SVN_ERR(ctx->cancel_func(ctx->cancel_baton));
- if (diff_cmd_baton->ignore_prop_diff)
+ if (diff_cmd_baton->ignore_properties)
{
original_props = apr_hash_make(scratch_pool);
modified_props = apr_hash_make(scratch_pool);
@@ -2937,7 +2944,8 @@ svn_client_diff6(const apr_array_header_
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
@@ -2947,9 +2955,14 @@ svn_client_diff6(const apr_array_header_
apr_pool_t *pool)
{
struct diff_cmd_baton diff_cmd_baton = { 0 };
+ svn_opt_revision_t peg_revision;
+
+ if (ignore_properties && properties_only)
+ return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Cannot ignore properties and show only "
+ "properties at the same time"));
/* We will never do a pegged diff from here. */
- svn_opt_revision_t peg_revision;
peg_revision.kind = svn_opt_revision_unspecified;
/* setup callback and baton */
@@ -2967,7 +2980,8 @@ svn_client_diff6(const apr_array_header_
diff_cmd_baton.force_empty = FALSE;
diff_cmd_baton.force_binary = ignore_content_type;
- diff_cmd_baton.ignore_prop_diff = ignore_prop_diff;
+ diff_cmd_baton.ignore_properties = ignore_properties;
+ diff_cmd_baton.properties_only = properties_only;
diff_cmd_baton.relative_to_dir = relative_to_dir;
diff_cmd_baton.use_git_diff_format = use_git_diff_format;
diff_cmd_baton.no_diff_deleted = no_diff_deleted;
@@ -2996,7 +3010,8 @@ svn_client_diff_peg6(const apr_array_hea
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
@@ -3007,6 +3022,11 @@ svn_client_diff_peg6(const apr_array_hea
{
struct diff_cmd_baton diff_cmd_baton = { 0 };
+ if (ignore_properties && properties_only)
+ return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Cannot ignore properties and show only "
+ "properties at the same time"));
+
/* setup callback and baton */
diff_cmd_baton.orig_path_1 = path_or_url;
diff_cmd_baton.orig_path_2 = path_or_url;
@@ -3022,7 +3042,8 @@ svn_client_diff_peg6(const apr_array_hea
diff_cmd_baton.force_empty = FALSE;
diff_cmd_baton.force_binary = ignore_content_type;
- diff_cmd_baton.ignore_prop_diff = ignore_prop_diff;
+ diff_cmd_baton.ignore_properties = ignore_properties;
+ diff_cmd_baton.properties_only = properties_only;
diff_cmd_baton.relative_to_dir = relative_to_dir;
diff_cmd_baton.use_git_diff_format = use_git_diff_format;
diff_cmd_baton.no_diff_deleted = no_diff_deleted;