You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/08/05 17:07:25 UTC
svn commit: r982653 [1/4] - in /subversion/branches/issue-2779-dev: ./
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/
subversion/bindings/swig/ subversion/bindings/swig...
Author: cmpilato
Date: Thu Aug 5 15:07:22 2010
New Revision: 982653
URL: http://svn.apache.org/viewvc?rev=982653&view=rev
Log:
Sync branch with trunk. (Merged /subversion/trunk:r981514-982643)
Modified:
subversion/branches/issue-2779-dev/ (props changed)
subversion/branches/issue-2779-dev/Makefile.in
subversion/branches/issue-2779-dev/configure.ac
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java
subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
subversion/branches/issue-2779-dev/subversion/bindings/swig/python/svn/delta.py
subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/core.py
subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/delta.py
subversion/branches/issue-2779-dev/subversion/bindings/swig/ruby/test/test_info.rb
subversion/branches/issue-2779-dev/subversion/bindings/swig/svn_delta.i
subversion/branches/issue-2779-dev/subversion/include/private/svn_wc_private.h
subversion/branches/issue-2779-dev/subversion/include/svn_wc.h
subversion/branches/issue-2779-dev/subversion/libsvn_client/cmdline.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/commit.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/delete.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/export.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/externals.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/log.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/merge.c
subversion/branches/issue-2779-dev/subversion/libsvn_client/patch.c
subversion/branches/issue-2779-dev/subversion/libsvn_diff/parse-diff.c
subversion/branches/issue-2779-dev/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/blame.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/commit.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/get_deleted_rev.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getdate.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocations.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocationsegments.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocks.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/locks.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/log.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/merge.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/mergeinfo.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/options.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/property.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/replay.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/serf.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/update.c
subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/util.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/adm_crawler.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/adm_files.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/adm_ops.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/ambient_depth_filter_editor.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/deprecated.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/diff.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/lock.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/lock.h
subversion/branches/issue-2779-dev/subversion/libsvn_wc/log.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/node.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/props.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/status.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/update_editor.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/util.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/wc.h
subversion/branches/issue-2779-dev/subversion/libsvn_wc/wc_db.c
subversion/branches/issue-2779-dev/subversion/libsvn_wc/wc_db.h
subversion/branches/issue-2779-dev/subversion/libsvn_wc/workqueue.c
subversion/branches/issue-2779-dev/subversion/mod_dav_svn/deadprops.c
subversion/branches/issue-2779-dev/subversion/svn/delete-cmd.c
subversion/branches/issue-2779-dev/subversion/svn/diff-cmd.c
subversion/branches/issue-2779-dev/subversion/svn/export-cmd.c
subversion/branches/issue-2779-dev/subversion/svn/import-cmd.c
subversion/branches/issue-2779-dev/subversion/svn/log-cmd.c
subversion/branches/issue-2779-dev/subversion/svn/main.c
subversion/branches/issue-2779-dev/subversion/svnrdump/load_editor.c
subversion/branches/issue-2779-dev/subversion/svnrdump/load_editor.h
subversion/branches/issue-2779-dev/subversion/svnrdump/svnrdump.c
subversion/branches/issue-2779-dev/subversion/tests/cmdline/depth_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/diff_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/entries-dump.c
subversion/branches/issue-2779-dev/subversion/tests/cmdline/export_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/input_validation_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/merge_authz_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/merge_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/patch_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/resolved_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/stat_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/svnrdump_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/svntest/main.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/svntest/sandbox.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/svntest/wc.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/switch_tests.py
subversion/branches/issue-2779-dev/subversion/tests/cmdline/update_tests.py
subversion/branches/issue-2779-dev/subversion/tests/libsvn_diff/parse-diff-test.c
subversion/branches/issue-2779-dev/subversion/tests/libsvn_wc/pristine-store-test.c
subversion/branches/issue-2779-dev/tools/dev/unix-build/Makefile.svn
Propchange: subversion/branches/issue-2779-dev/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Aug 5 15:07:22 2010
@@ -34,4 +34,4 @@
/subversion/branches/tc_url_rev:874351-874483
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:965496-981513
+/subversion/trunk:965496-982643
Modified: subversion/branches/issue-2779-dev/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/Makefile.in?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/Makefile.in (original)
+++ subversion/branches/issue-2779-dev/Makefile.in Thu Aug 5 15:07:22 2010
@@ -426,9 +426,9 @@ revision-install:
install-static: @INSTALL_STATIC_RULES@
# JavaHL target aliases
-javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-lib @JAVAHL_TESTS_TARGET@
+javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
install-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
-javahl-compat: javahl-compat-java javahl @JAVAHL_COMPAT_TESTS_TARGET@
+javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
clean-javahl:
rm -rf $(javahl_java_PATH) $(javahl_javah_PATH) @JAVAHL_OBJDIR@
@@ -441,7 +441,7 @@ check-javahl-compat: javahl-compat-tests
@FIX_JAVAHL_LIB@
$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
-check-javahl: javahl
+check-javahl: javahl check-javahl-compat
@FIX_JAVAHL_LIB@
$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
Modified: subversion/branches/issue-2779-dev/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/configure.ac?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/configure.ac (original)
+++ subversion/branches/issue-2779-dev/configure.ac Thu Aug 5 15:07:22 2010
@@ -902,6 +902,9 @@ AS_HELP_STRING([--enable-maintainer-mode
CFLAGS="-Wold-style-definition $CFLAGS_KEEP"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"])
+ CFLAGS="-Wno-system-headers $CFLAGS_KEEP"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"])
+
AC_LANG_POP([C])
CFLAGS="$CFLAGS_KEEP"
fi
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Thu Aug 5 15:07:22 2010
@@ -25,9 +25,10 @@ package org.apache.subversion.javahl;
import java.util.Map;
import java.util.EventObject;
+import org.apache.subversion.javahl.callback.ClientNotifyCallback;
/**
- * The event passed to the {@link Notify2#onNotify(NotifyInformation)}
+ * The event passed to the {@link ClientNotifyCallback#onNotify}
* API to notify {@link ISVNClient} of relevant events.
*
* @since 1.2
@@ -128,14 +129,14 @@ public class ClientNotifyInformation ext
* This constructor is to be used by the native code.
*
* @param path The path of the item, which is the source of the event.
- * @param action The {@link NotifyAction} which triggered this event.
+ * @param action The {@link Action} which triggered this event.
* @param kind The {@link NodeKind} of the item.
* @param mimeType The MIME type of the item.
* @param lock Any lock for the item.
* @param errMsg Any error message for the item.
- * @param contentState The {@link NotifyStatus} of the content of
+ * @param contentState The {@link Status} of the content of
* the item.
- * @param propState The {@link NotifyStatus} of the properties of
+ * @param propState The {@link Status} of the properties of
* the item.
* @param lockState The {@link LockStatus} of the lock of the item.
* @param revision The revision of the item.
@@ -187,7 +188,7 @@ public class ClientNotifyInformation ext
}
/**
- * @return The {@link NotifyAction} which triggered this event.
+ * @return The {@link Action} which triggered this event.
*/
public Action getAction()
{
@@ -227,7 +228,7 @@ public class ClientNotifyInformation ext
}
/**
- * @return The {@link NotifyStatus} of the content of the item.
+ * @return The {@link Status} of the content of the item.
*/
public Status getContentState()
{
@@ -235,7 +236,7 @@ public class ClientNotifyInformation ext
}
/**
- * @return The {@link NotifyStatus} of the properties of the item.
+ * @return The {@link Status} of the properties of the item.
*/
public Status getPropState()
{
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java Thu Aug 5 15:07:22 2010
@@ -24,11 +24,11 @@
package org.apache.subversion.javahl;
import java.util.EventObject;
+import org.apache.subversion.javahl.callback.DiffSummaryCallback;
/**
- * The event passed to the {@link
- * DiffSummaryReceiver#onSummary(DiffSummary)} API in response to path
- * differences reported by {@link ISVNClient#diffSummarize}.
+ * The event passed to the {@link DiffSummaryCallback#onSummary} API
+ * in response to path differences reported by {@link ISVNClient#diffSummarize}.
*
* @since 1.5
*/
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Thu Aug 5 15:07:22 2010
@@ -620,11 +620,11 @@ public interface ISVNClient
*
* @param target Path or URL.
* @param pegRevision Revision at which to interpret
- * <code>target</code>. If {@link RevisionKind#unspecified} or
+ * <code>target</code>. If {@link Revision.Kind#unspecified} or
* <code>null</code>, behave identically to {@link
- * #diffSummarize(String, Revision, String, Revision, int,
- * boolean, DiffSummaryCallback)}, using <code>path</code> for
- * both of that method's targets.
+ * #diffSummarize(String, Revision, String, Revision, Depth,
+ * Collection, boolean, DiffSummaryCallback)}, using
+ * <code>path</code> for both of that method's targets.
* @param startRevision Beginning of range for comparsion of
* <code>target</code>.
* @param endRevision End of range for comparsion of
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Thu Aug 5 15:07:22 2010
@@ -137,7 +137,6 @@ public interface ISVNRepos {
* load the data of a dump into a repository,
* @param path the path to the repository
* @param dataInput the data input source
- * @param messageOutput the target for processing messages
* @param ignoreUUID ignore any UUID found in the input stream
* @param forceUUID set the repository UUID to any found in the
* stream
@@ -145,6 +144,7 @@ public interface ISVNRepos {
* @param usePostCommitHook use the post-commit hook when processing commits
* @param relativePath the directory in the repository, where the data
* in put optional.
+ * @param callback the target for processing messages
* @throws ClientException throw in case of problem
* @since 1.5
*/
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java Thu Aug 5 15:07:22 2010
@@ -26,7 +26,7 @@ package org.apache.subversion.javahl;
import java.util.Date;
/**
- * this class is returned by {@link ISVNClient.info2} and contains information
+ * this class is returned by {@link ISVNClient#info2} and contains information
* about items in the repository or working copy
* @since 1.2
*/
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java Thu Aug 5 15:07:22 2010
@@ -23,10 +23,11 @@
package org.apache.subversion.javahl;
+import org.apache.subversion.javahl.callback.ProgressCallback;
+
/**
- * The event passed to the {@link
- * ProgressListener#onProgress(ProgressEvent)} API to inform {@link
- * ISVNClient} of command progress (in terms of bytes).
+ * The event passed to the {@link ProgressCallback#onProgress} API to inform
+ * {@link ISVNClient} of command progress (in terms of bytes).
*
* @since 1.5
*/
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java Thu Aug 5 15:07:22 2010
@@ -24,9 +24,10 @@
package org.apache.subversion.javahl;
import java.util.EventObject;
+import org.apache.subversion.javahl.callback.ReposNotifyCallback;
/**
- * The event passed to the {@link Notify2#onNotify(NotifyInformation)}
+ * The event passed to the {@link ReposNotifyCallback#onNotify}
* API to notify {@link ISVNClient} of relevant events.
*
* @since 1.2
@@ -70,7 +71,7 @@ public class ReposNotifyInformation exte
/**
* This constructor is to be used by the native code.
*
- * @param action The {@link NotifyAction} which triggered this event.
+ * @param action The {@link Action} which triggered this event.
* @param revision potentially the revision.
*/
public ReposNotifyInformation(Action action, long revision, String warning,
@@ -90,7 +91,7 @@ public class ReposNotifyInformation exte
}
/**
- * @return The {@link NotifyAction} which triggered this event.
+ * @return The {@link Action} which triggered this event.
*/
public Action getAction()
{
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java Thu Aug 5 15:07:22 2010
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.cal
import org.apache.subversion.javahl.ClientException;
import java.util.Map;
+import org.apache.subversion.javahl.ISVNClient;
/**
* This interface is used to receive every single line for a file on a
@@ -37,7 +38,7 @@ public interface BlameCallback
{
/**
* the method will be called for every line in a file.
- * @param line the line number for this line
+ * @param lineNum the line number for this line
* @param revision the revision of the last change.
* @param revProps the revision properties for this revision.
* @param mergedRevision the revision of the last merged change.
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java Thu Aug 5 15:07:22 2010
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.callback;
+import org.apache.subversion.javahl.ISVNClient;
+
/**
* This interface is used to receive every status item for
* the {@link ISVNClient#status} call.
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java Thu Aug 5 15:07:22 2010
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.callback;
import org.apache.subversion.javahl.DiffSummary;
+import org.apache.subversion.javahl.ISVNClient;
/**
* Subversion diff summarization interface. An implementation which
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java Thu Aug 5 15:07:22 2010
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.callback;
import org.apache.subversion.javahl.Info2;
+import org.apache.subversion.javahl.ISVNClient;
/**
* This interface is used to retrieve info each result in a
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java Thu Aug 5 15:07:22 2010
@@ -25,6 +25,7 @@ package org.apache.subversion.javahl.cal
import org.apache.subversion.javahl.Lock;
import org.apache.subversion.javahl.DirEntry;
+import org.apache.subversion.javahl.ISVNClient;
/**
* This interface is used to receive every single line for a file on a
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java Thu Aug 5 15:07:22 2010
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.callback;
import org.apache.subversion.javahl.ChangePath;
+import org.apache.subversion.javahl.ISVNClient;
import java.util.Map;
import java.util.Set;
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java Thu Aug 5 15:07:22 2010
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.callback;
+import org.apache.subversion.javahl.ISVNClient;
+
/**
* This interface is invoked before each patch in a
* {@link ISVNClient#patch} call.
@@ -30,9 +32,10 @@ package org.apache.subversion.javahl.cal
public interface PatchCallback
{
/**
- * the method will be called for every line in a file.
- * @param path the path.
- * @param properties the properties on the path.
+ * the method will be called for every patch.
+ * @param pathFromPatchfile the path in the path file
+ * @param patchPath the path of the patch
+ * @param rejectPath the path of the reject file
* @return return TRUE to filter out the prospective patch
*/
public boolean singlePatch(String pathFromPatchfile, String patchPath,
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java Thu Aug 5 15:07:22 2010
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.callback;
import java.util.Map;
+import org.apache.subversion.javahl.ISVNClient;
/**
* This interface is used to property lists for each path in a
Modified: subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java Thu Aug 5 15:07:22 2010
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.callback;
import org.apache.subversion.javahl.Status;
+import org.apache.subversion.javahl.ISVNClient;
/**
* This interface is used to receive every status item for
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Thu Aug 5 15:07:22 2010
@@ -4070,3 +4070,17 @@ svn_swig_py_setup_wc_diff_callbacks2(voi
callbacks->dir_props_changed = wc_diff_callbacks2_dir_props_changed;
return callbacks;
}
+
+PyObject *
+svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window,
+ swig_type_info * op_type_info)
+{
+ PyObject *result = PyList_New(window->num_ops);
+ int i;
+
+ for (i = 0; i < window->num_ops; ++i)
+ PyList_SET_ITEM(result, i,
+ SWIG_NewPointerObj(window->ops + i, op_type_info, 0));
+
+ return result;
+}
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h Thu Aug 5 15:07:22 2010
@@ -508,6 +508,14 @@ svn_error_t *svn_swig_py_ra_lock_callbac
SVN_SWIG_SWIGUTIL_EXPORT
extern const svn_ra_reporter2_t swig_py_ra_reporter2;
+/* Get a list of ops from a window. Used to replace the naive
+ svn_txdelta_window_t.ops accessor. op_type_info is supposed to be
+ the SWIG descriptor of "svn_txdelta_op_t *". */
+SVN_SWIG_SWIGUTIL_EXPORT
+PyObject *
+svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window,
+ swig_type_info * op_type_info);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/python/svn/delta.py
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/python/svn/delta.py?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/python/svn/delta.py (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/python/svn/delta.py Thu Aug 5 15:07:22 2010
@@ -29,6 +29,9 @@ _unprefix_names(locals(), 'svn_delta_')
_unprefix_names(locals(), 'svn_txdelta_', 'tx_')
del _unprefix_names
+# Force our accessor since it appears that there isn't a more civilized way
+# to make SWIG use it.
+svn_txdelta_window_t.ops = property(svn_txdelta_window_t_ops_get)
class Editor:
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/core.py
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/core.py?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/core.py (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/core.py Thu Aug 5 15:07:22 2010
@@ -80,7 +80,7 @@ class SubversionCoreTestCase(unittest.Te
# It must remain unchanged through the process.
try:
svn.client.info2(*args)
- except svn.core.SubversionException as exc:
+ except svn.core.SubversionException, exc:
# find the original exception
while exc.file != rec.e.file: exc = exc.child
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/delta.py
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/delta.py?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/delta.py (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/python/tests/delta.py Thu Aug 5 15:07:22 2010
@@ -46,6 +46,21 @@ class DeltaTestCase(unittest.TestCase):
window_handler, baton = \
svn.delta.tx_apply(src_stream, target_stream, None)
window_handler(None, baton)
+
+ def testTxdeltaWindowT(self):
+ """Test the svn_txdelta_window_t wrapper."""
+ a = StringIO("abc\ndef\n")
+ b = StringIO("def\nghi\n")
+
+ delta_stream = svn.delta.svn_txdelta(a, b)
+ window = svn.delta.svn_txdelta_next_window(delta_stream)
+
+ self.assert_(window.sview_offset + window.sview_len <= len(a.getvalue()))
+ self.assert_(window.tview_len <= len(b.getvalue()))
+ self.assert_(len(window.new_data) > 0)
+ self.assertEqual(window.num_ops, len(window.ops))
+ self.assertEqual(window.src_ops, len([op for op in window.ops
+ if op.action_code == svn.delta.svn_txdelta_source]))
def suite():
return unittest.defaultTestLoader.loadTestsFromTestCase(DeltaTestCase)
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/ruby/test/test_info.rb
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/ruby/test/test_info.rb?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/ruby/test/test_info.rb (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/ruby/test/test_info.rb Thu Aug 5 15:07:22 2010
@@ -133,14 +133,13 @@ class SvnInfoTest < Test::Unit::TestCase
assert_equal([].sort, info.deleted_dirs)
assert_equal(["#{dir_svn_path}/", "#{tmp_dir_svn_path}/"].sort,
info.added_dirs)
-
- File.open(file1_path, "w") {|f| f.puts "changed"}
- File.open(file2_path, "w") {|f| f.puts "changed"}
- File.open(file3_path, "w") {|f| f.puts "changed"}
end
log = "changed 3 files\ndeleted 2 files\nadded 3 files"
make_context(log) do |ctx|
+ File.open(file1_path, "w") {|f| f.puts "changed"}
+ File.open(file2_path, "w") {|f| f.puts "changed"}
+ File.open(file3_path, "w") {|f| f.puts "changed"}
ctx.rm_f([file4_path, file5_path])
FileUtils.touch(file6_path)
FileUtils.touch(file7_path)
Modified: subversion/branches/issue-2779-dev/subversion/bindings/swig/svn_delta.i
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/bindings/swig/svn_delta.i?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/bindings/swig/svn_delta.i (original)
+++ subversion/branches/issue-2779-dev/subversion/bindings/swig/svn_delta.i Thu Aug 5 15:07:22 2010
@@ -172,6 +172,17 @@ svn_txdelta_window_t_ops_get(svn_txdelta
%}
#endif
+#ifdef SWIGPYTHON
+%ignore svn_txdelta_window_t::ops;
+%inline %{
+static PyObject *
+svn_txdelta_window_t_ops_get(svn_txdelta_window_t *window)
+{
+ return svn_swig_py_txdelta_window_t_ops_get(window,
+ SWIG_TypeQuery("svn_txdelta_op_t *"));
+}
+%}
+#endif
%include svn_delta_h.swg
Modified: subversion/branches/issue-2779-dev/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/include/private/svn_wc_private.h?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/issue-2779-dev/subversion/include/private/svn_wc_private.h Thu Aug 5 15:07:22 2010
@@ -375,8 +375,10 @@ svn_wc__node_get_copyfrom_info(const cha
apr_pool_t *scratch_pool);
/**
- * Recursively call @a walk_callback for all nodes underneath
- * @a local_abspath, restricted by @a walk_depth.
+ * Call @a walk_callback with @a walk_baton for @a local_abspath and all
+ * nodes underneath it, restricted by @a walk_depth.
+ *
+ * If @a show_hidden is true, include hidden nodes, else ignore them.
*/
svn_error_t *
svn_wc__node_walk_children(svn_wc_context_t *wc_ctx,
Modified: subversion/branches/issue-2779-dev/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/include/svn_wc.h?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/include/svn_wc.h (original)
+++ subversion/branches/issue-2779-dev/subversion/include/svn_wc.h Thu Aug 5 15:07:22 2010
@@ -2714,13 +2714,20 @@ svn_wc_text_modified_p(svn_boolean_t *mo
svn_wc_adm_access_t *adm_access,
apr_pool_t *pool);
-
/** Set @a *modified_p to non-zero if @a path's properties are modified
* with regard to the base revision, else set @a modified_p to zero.
* @a adm_access must be an access baton for @a path.
*
- * If you want to use this with a post-wc-ng working copy, just call
- * svn_wc_get_prop_diffs2() and examine the output.
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_wc_props_modified_p2(svn_boolean_t *modified_p,
+ svn_wc_context_t* wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_props_modified_p2(), but with a relative path and
+ * adm_access baton.
*
* @deprecated Provided for backward compatibility with the 1.6 API.
*/
@@ -4243,7 +4250,7 @@ svn_wc_status_set_repos_locks(void *set_
* @par Important:
* This is a variant of svn_wc_add4(). No changes will happen
* to the repository until a commit occurs. This scheduling can be
- * removed with svn_client_revert2().
+ * removed with svn_client_revert4().
*
* @since New in 1.7.
*/
@@ -6957,6 +6964,23 @@ svn_wc_revert(const char *path,
void *notify_baton,
apr_pool_t *pool);
+/**
+ * Restores a missing node, @a local_abspath using the @a wc_ctx. Records
+ * the new last modified time of the file for status processing.
+ *
+ * If @a use_commit_times is TRUE, then set restored files' timestamps
+ * to their last-commit-times.
+ *
+ * ### Before Single-DB this function can only restore missing files.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_wc_restore(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_boolean_t use_commit_times,
+ apr_pool_t *scratch_pool);
+
/* Tmp files */
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/cmdline.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/cmdline.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/cmdline.c Thu Aug 5 15:07:22 2010
@@ -121,10 +121,15 @@ check_root_url_of_target(const char **ro
/* It is OK if the given target does not exist, it just means
* we will not be able to determine the root url from this particular
* argument.
+ *
+ * If the target itself is a URL to a repository that does not exist,
+ * that's fine, too. The callers will deal with this argument in an
+ * appropriate manter if it does not make any sense.
*/
if ((err->apr_err == SVN_ERR_ENTRY_NOT_FOUND)
|| (err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
- || (err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY))
+ || (err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY)
+ || (err->apr_err == SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED))
{
svn_error_clear(err);
return SVN_NO_ERROR;
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/commit.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/commit.c Thu Aug 5 15:07:22 2010
@@ -694,6 +694,11 @@ svn_client_import4(const char *path,
const char *dir;
apr_pool_t *subpool;
+ if (svn_path_is_url(path))
+ return svn_error_return(svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"),
+ path));
+
SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
base_dir_abspath = local_abspath;
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/delete.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/delete.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/delete.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/delete.c Thu Aug 5 15:07:22 2010
@@ -318,17 +318,31 @@ svn_client_delete4(const apr_array_heade
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
+ svn_boolean_t is_url;
+ int i;
+
if (! paths->nelts)
return SVN_NO_ERROR;
- if (svn_path_is_url(APR_ARRAY_IDX(paths, 0, const char *)))
+ /* Check that all targets are of the same type. */
+ is_url = svn_path_is_url(APR_ARRAY_IDX(paths, 0, const char *));
+ for (i = 1; i < paths->nelts; i++)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+ if (is_url != svn_path_is_url(path))
+ return svn_error_return(
+ svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Cannot mix repository and working copy "
+ "targets")));
+ }
+
+ if (is_url)
{
SVN_ERR(delete_urls(paths, revprop_table, ctx, pool));
}
else
{
apr_pool_t *subpool = svn_pool_create(pool);
- int i;
for (i = 0; i < paths->nelts; i++)
{
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/export.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/export.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/export.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/export.c Thu Aug 5 15:07:22 2010
@@ -942,6 +942,11 @@ svn_client_export5(svn_revnum_t *result_
SVN_ERR_ASSERT(peg_revision != NULL);
SVN_ERR_ASSERT(revision != NULL);
+ if (svn_path_is_url(to))
+ return svn_error_return(svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"),
+ to));
+
peg_revision = svn_cl__rev_default_to_head_or_working(peg_revision, from);
revision = svn_cl__rev_default_to_peg(revision, peg_revision);
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/externals.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/externals.c Thu Aug 5 15:07:22 2010
@@ -877,7 +877,8 @@ handle_external_item_change(const void *
SVN_ERR(svn_client_export4(NULL, new_item->url, local_abspath,
&(new_item->peg_revision),
&(new_item->revision),
- FALSE, TRUE, svn_depth_infinity, NULL,
+ FALSE, TRUE, svn_depth_infinity,
+ ib->native_eol,
ib->ctx, ib->iter_pool));
else
SVN_ERR(switch_file_external(local_abspath,
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/log.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/log.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/log.c Thu Aug 5 15:07:22 2010
@@ -391,8 +391,17 @@ svn_client_log5(const apr_array_header_t
{
/* We have some paths, let's use them. Start after the URL. */
for (i = 1; i < targets->nelts; i++)
- APR_ARRAY_PUSH(condensed_targets, const char *) =
- APR_ARRAY_IDX(targets, i, const char *);
+ {
+ const char *target;
+
+ target = APR_ARRAY_IDX(targets, i, const char *);
+ if (svn_path_is_url(target) || svn_dirent_is_absolute(target))
+ return svn_error_return(svn_error_createf(
+ SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a relative path"),
+ target));
+ APR_ARRAY_PUSH(condensed_targets, const char *) = target;
+ }
}
else
{
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/merge.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/merge.c Thu Aug 5 15:07:22 2010
@@ -378,8 +378,9 @@ is_path_conflicted_by_merge(merge_cmd_ba
* different kind is expected, or if the disk node cannot be read.
* - Return 'missing' if there is no node on disk but one is expected.
* Also return 'missing' for absent nodes (not here due to authz).*/
-static svn_wc_notify_state_t
-obstructed_or_missing(const char *local_abspath,
+static svn_error_t *
+obstructed_or_missing(svn_wc_notify_state_t *obstr_state,
+ const char *local_abspath,
const char *local_dir_abspath,
const merge_cmd_baton_t *merge_b,
apr_pool_t *pool)
@@ -391,20 +392,14 @@ obstructed_or_missing(const char *local_
/* In a dry run, make as if nodes "deleted" by the dry run appear so. */
if (merge_b->dry_run && dry_run_deleted_p(merge_b, local_abspath))
- return svn_wc_notify_state_inapplicable;
-
- /* Since this function returns no svn_error_t, we make all errors look like
- * no node found in the wc. */
-
- err = svn_wc_read_kind(&kind_expected, merge_b->ctx->wc_ctx,
- local_abspath, FALSE, pool);
-
- if (err)
{
- svn_error_clear(err);
- kind_expected = svn_node_none;
+ *obstr_state = svn_wc_notify_state_inapplicable;
+ return SVN_NO_ERROR;
}
+ SVN_ERR(svn_wc_read_kind(&kind_expected, merge_b->ctx->wc_ctx,
+ local_abspath, FALSE, pool));
+
/* Report absent nodes as 'missing'. First of all, they count as 'hidden',
* and since we pass show_hidden == FALSE above, they will show up as
* 'none' here. */
@@ -413,44 +408,66 @@ obstructed_or_missing(const char *local_
svn_boolean_t is_absent;
err = svn_wc__node_is_status_absent(&is_absent, merge_b->ctx->wc_ctx,
local_abspath, pool);
- if (err)
- svn_error_clear(err);
- else if (is_absent)
- return svn_wc_notify_state_missing;
+ if (err && err->apr_err != SVN_ERR_WC_PATH_NOT_FOUND)
+ return svn_error_return(err);
+ else if (!err && is_absent)
+ {
+ *obstr_state = svn_wc_notify_state_missing;
+ return SVN_NO_ERROR;
+ }
+
+ svn_error_clear(err);
}
- /* If a node is deleted, we will still get its kind from the working copy.
+ SVN_ERR(svn_io_check_path(local_abspath, &kind_on_disk, pool));
+
+ /* If a node is deleted, the node might be gone in the working copy (and
+ * it probably is gone after we switch to single-db
+ *
* But to compare with disk state, we want to consider deleted nodes as
- * svn_node_none instead of their original kind.
- * ### Not necessary with central DB:
- * Because deleted directories are expected to remain on disk until commit
- * to keep the metadata available, we only do this for files, not dirs. */
- if (kind_expected == svn_node_file)
+ * svn_node_none instead of their original kind. */
+
+ if (kind_expected == svn_node_file
+ || kind_expected == svn_node_dir)
{
svn_boolean_t is_deleted;
- err = svn_wc__node_is_status_deleted(&is_deleted,
- merge_b->ctx->wc_ctx,
- local_abspath,
- pool);
- if (err)
- svn_error_clear(err);
- else if (is_deleted)
- kind_expected = svn_node_none;
- }
- err = svn_io_check_path(local_abspath, &kind_on_disk, pool);
- if (err)
- {
- svn_error_clear(err);
- kind_on_disk = svn_node_unknown;
+ SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted,
+ merge_b->ctx->wc_ctx,
+ local_abspath,
+ pool));
+ if (is_deleted)
+ {
+ /* ### While we are not at single-db: detect missing .svn dirs.
+ ### Once we switch to single db expected kind should be always
+ ### none, just like for files */
+ if (kind_expected == svn_node_dir)
+ {
+ if (kind_on_disk == svn_node_none)
+ {
+ svn_boolean_t is_obstructed;
+
+ SVN_ERR(svn_wc__node_is_status_obstructed(&is_obstructed,
+ merge_b->ctx->wc_ctx,
+ local_abspath,
+ pool));
+ if (!is_obstructed)
+ kind_expected = svn_node_none;
+ }
+ }
+ else
+ kind_expected = svn_node_none;
+ }
}
if (kind_expected == kind_on_disk)
- return svn_wc_notify_state_inapplicable;
+ *obstr_state = svn_wc_notify_state_inapplicable;
else if (kind_on_disk == svn_node_none)
- return svn_wc_notify_state_missing;
+ *obstr_state = svn_wc_notify_state_missing;
else
- return svn_wc_notify_state_obstructed;
+ *obstr_state = svn_wc_notify_state_obstructed;
+
+ return SVN_NO_ERROR;
}
/* Create *LEFT and *RIGHT conflict versions for conflict victim
@@ -1083,8 +1100,9 @@ merge_props_changed(const char *local_di
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(local_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ local_abspath, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (state)
@@ -1319,8 +1337,9 @@ merge_file_changed(const char *local_dir
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(mine_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ mine_abspath, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (content_state)
@@ -1349,7 +1368,9 @@ merge_file_changed(const char *local_dir
SVN_ERR(svn_wc__node_get_depth(&parent_depth, merge_b->ctx->wc_ctx,
svn_dirent_dirname(mine_abspath, subpool),
subpool));
- if (wc_kind == svn_node_none && parent_depth < svn_depth_files)
+ if (wc_kind == svn_node_none
+ && parent_depth < svn_depth_files
+ && parent_depth != svn_depth_unknown)
{
if (content_state)
*content_state = svn_wc_notify_state_missing;
@@ -1635,8 +1656,9 @@ merge_file_added(const char *local_dir_a
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(mine_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ mine_abspath, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (content_state)
@@ -1921,8 +1943,9 @@ merge_file_deleted(const char *local_dir
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(mine_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ mine_abspath, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (state)
@@ -2109,8 +2132,9 @@ merge_dir_added(const char *local_dir_ab
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(local_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ local_abspath, local_dir_abspath,
+ merge_b, subpool));
/* In this case of adding a directory, we have an exception to the usual
* "skip if it's inconsistent" rule. If the directory exists on disk
@@ -2138,7 +2162,7 @@ merge_dir_added(const char *local_dir_ab
merge_b->added_path = apr_pstrdup(merge_b->pool, local_abspath);
else
{
- SVN_ERR(svn_io_make_dir_recursively(local_abspath, subpool));
+ SVN_ERR(svn_io_dir_make(local_abspath, APR_OS_DEFAULT, subpool));
SVN_ERR(svn_wc_add4(merge_b->ctx->wc_ctx, local_abspath,
svn_depth_infinity,
copyfrom_url, copyfrom_rev,
@@ -2298,8 +2322,9 @@ merge_dir_deleted(const char *local_dir_
{
svn_wc_notify_state_t obstr_state;
- obstr_state = obstructed_or_missing(local_abspath, local_dir_abspath,
- merge_b, subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ local_abspath, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (state)
@@ -2430,8 +2455,9 @@ merge_dir_opened(const char *local_dir_a
}
/* Check for an obstructed or missing node on disk. */
- obstr_state = obstructed_or_missing(path, local_dir_abspath, merge_b,
- subpool);
+ SVN_ERR(obstructed_or_missing(&obstr_state,
+ path, local_dir_abspath,
+ merge_b, subpool));
if (obstr_state != svn_wc_notify_state_inapplicable)
{
if (skip_children)
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_client/patch.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_client/patch.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_client/patch.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_client/patch.c Thu Aug 5 15:07:22 2010
@@ -477,7 +477,7 @@ init_prop_target(prop_patch_target_t **p
target_content_info_t *content_info;
const svn_string_t *value;
const char *patched_path;
-
+ svn_error_t *err;
content_info = apr_pcalloc(result_pool, sizeof(*content_info));
@@ -496,8 +496,18 @@ init_prop_target(prop_patch_target_t **p
new_prop_target->operation = operation;
new_prop_target->content_info = content_info;
- SVN_ERR(svn_wc_prop_get2(&value, wc_ctx, local_abspath, prop_name,
- result_pool, scratch_pool));
+ err = svn_wc_prop_get2(&value, wc_ctx, local_abspath, prop_name,
+ result_pool, scratch_pool);
+ if (err)
+ {
+ if (err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ value = NULL;
+ }
+ else
+ return svn_error_return(err);
+ }
if (value)
{
@@ -1567,8 +1577,12 @@ send_patch_notification(const patch_targ
hi = APR_ARRAY_IDX(prop_target->content_info->hunks, i,
hunk_info_t *);
- SVN_ERR(send_hunk_notification(hi, target, prop_target->name,
- ctx, iterpool));
+
+ /* Don't notify on the hunk level for added or deleted props. */
+ if (prop_target->operation != svn_diff_op_added &&
+ prop_target->operation != svn_diff_op_deleted)
+ SVN_ERR(send_hunk_notification(hi, target, prop_target->name,
+ ctx, iterpool));
}
}
svn_pool_destroy(iterpool);
@@ -1936,7 +1950,10 @@ create_missing_parents(patch_target_t *t
else if (wc_kind == svn_node_dir)
{
if (is_deleted)
- break;
+ {
+ target->skipped = TRUE;
+ break;
+ }
/* continue one level deeper */
present_components++;
@@ -2058,7 +2075,25 @@ install_patched_target(patch_target_t *t
svn_dirent_dirname(target->local_abspath,
pool),
FALSE, pool));
- if (parent_db_kind != svn_node_dir)
+
+ /* We don't allow targets to be added under dirs scheduled for
+ * deletion. */
+ if (parent_db_kind == svn_node_dir)
+ {
+ const char *parent_abspath;
+ svn_boolean_t is_deleted;
+
+ parent_abspath = svn_dirent_dirname(target->local_abspath,
+ pool);
+ SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted, ctx->wc_ctx,
+ parent_abspath, pool));
+ if (is_deleted)
+ {
+ target->skipped = TRUE;
+ return SVN_NO_ERROR;
+ }
+ }
+ else
SVN_ERR(create_missing_parents(target, abs_wc_path, ctx,
dry_run, pool));
}
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_diff/parse-diff.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_diff/parse-diff.c Thu Aug 5 15:07:22 2010
@@ -881,10 +881,12 @@ static svn_error_t *
git_start(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- const char *old_path;
- const char *new_path;
- char *end_old_path;
- char *slash;
+ const char *old_path_start;
+ char *old_path_end;
+ const char *new_path_start;
+ const char *new_path_end;
+ char *new_path_marker;
+ const char *old_path_marker;
/* ### Add handling of escaped paths
* http://www.kernel.org/pub/software/scm/git/docs/git-diff.html:
@@ -897,59 +899,79 @@ git_start(enum parse_state *new_state, c
/* Our line should look like this: 'git --diff a/path b/path'.
* If we find any deviations from that format, we return with state reset
* to start.
- *
- * ### We can't handle paths with spaces!
*/
- slash = strchr(line, '/');
+ old_path_marker = strstr(line, " a/");
- if (! slash)
+ if (! old_path_marker)
{
*new_state = state_start;
return SVN_NO_ERROR;
}
- old_path = slash + 1;
-
- if (! *old_path)
+ if (! *(old_path_marker + 3))
{
*new_state = state_start;
return SVN_NO_ERROR;
}
- end_old_path = strchr(old_path, ' ');
+ new_path_marker = strstr(old_path_marker, " b/");
- if (end_old_path)
- *end_old_path = '\0';
- else
+ if (! new_path_marker)
{
*new_state = state_start;
return SVN_NO_ERROR;
}
- /* The new path begins after the first slash after the old path. */
- slash = strchr(end_old_path + 1, '/');
-
- if (! slash)
+ if (! *(new_path_marker + 3))
{
*new_state = state_start;
return SVN_NO_ERROR;
}
- /* The path starts after the slash */
- new_path = slash + 1;
+ /* By now, we know that we have a line on the form '--git diff a/.+ b/.+'
+ * We only need the filenames when we have deleted or added empty
+ * files. In those cases the old_path and new_path is identical on the
+ * '--git diff' line. For all other cases we fetch the filenames from
+ * other header lines. */
+ old_path_start = line + strlen("--git diff a/");
+ new_path_end = line + strlen(line);
+ new_path_start = old_path_start;
+
+ while (TRUE)
+ {
+ int len_old;
+ int len_new;
+
+ new_path_marker = strstr(new_path_start, " b/");
+
+ /* No new path marker, bail out. */
+ if (! new_path_marker)
+ break;
+
+ old_path_end = new_path_marker;
+ new_path_start = new_path_marker + strlen(" b/");
+
+ /* No path after the marker. */
+ if (! *new_path_start)
+ break;
+
+ len_old = old_path_end - old_path_start;
+ len_new = new_path_end - new_path_start;
+
+ /* Are the paths before and after the " b/" marker the same? */
+ if (len_old == len_new
+ && ! strncmp(old_path_start, new_path_start, len_old))
+ {
+ *old_path_end = '\0';
+ SVN_ERR(grab_filename(&patch->old_filename, old_path_start,
+ result_pool, scratch_pool));
- if (! *new_path)
- {
- *new_state = state_start;
- return SVN_NO_ERROR;
+ SVN_ERR(grab_filename(&patch->new_filename, new_path_start,
+ result_pool, scratch_pool));
+ break;
+ }
}
- SVN_ERR(grab_filename(&patch->old_filename, old_path,
- result_pool, scratch_pool));
-
- SVN_ERR(grab_filename(&patch->new_filename, new_path,
- result_pool, scratch_pool));
-
/* We assume that the path is only modified until we've found a 'tree'
* header */
patch->operation = svn_diff_op_modified;
@@ -963,7 +985,15 @@ static svn_error_t *
git_minus(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ /* If we can find a tab, it separates the filename from
+ * the rest of the line which we can discard. */
+ char *tab = strchr(line, '\t');
+ if (tab)
+ *tab = '\0';
+
+ /* ### What if we have "--- /dev/null"? */
+ SVN_ERR(grab_filename(&patch->old_filename, line + strlen("--- a/"),
+ result_pool, scratch_pool));
*new_state = state_git_minus_seen;
return SVN_NO_ERROR;
@@ -974,7 +1004,15 @@ static svn_error_t *
git_plus(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ /* If we can find a tab, it separates the filename from
+ * the rest of the line which we can discard. */
+ char *tab = strchr(line, '\t');
+ if (tab)
+ *tab = '\0';
+
+ /* ### What if we have "+++ /dev/null" ? */
+ SVN_ERR(grab_filename(&patch->new_filename, line + strlen("+++ b/"),
+ result_pool, scratch_pool));
*new_state = state_git_header_found;
return SVN_NO_ERROR;
@@ -985,7 +1023,8 @@ static svn_error_t *
git_move_from(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ SVN_ERR(grab_filename(&patch->old_filename, line + strlen("rename from "),
+ result_pool, scratch_pool));
*new_state = state_move_from_seen;
return SVN_NO_ERROR;
@@ -996,7 +1035,8 @@ static svn_error_t *
git_move_to(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ SVN_ERR(grab_filename(&patch->new_filename, line + strlen("rename to "),
+ result_pool, scratch_pool));
patch->operation = svn_diff_op_moved;
@@ -1009,7 +1049,8 @@ static svn_error_t *
git_copy_from(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ SVN_ERR(grab_filename(&patch->old_filename, line + strlen("copy from "),
+ result_pool, scratch_pool));
*new_state = state_copy_from_seen;
return SVN_NO_ERROR;
@@ -1020,7 +1061,8 @@ static svn_error_t *
git_copy_to(enum parse_state *new_state, const char *line, svn_patch_t *patch,
apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
- /* ### Check that the path is consistent with the 'git --diff ' line. */
+ SVN_ERR(grab_filename(&patch->new_filename, line + strlen("copy to "),
+ result_pool, scratch_pool));
patch->operation = svn_diff_op_copied;
@@ -1095,11 +1137,6 @@ svn_diff_parse_next_patch(svn_patch_t **
enum parse_state state = state_start;
- /* ### dannas: As I've understood the git diff format, the first line
- * ### contains both paths and the paths in the headers that follow are only
- * ### there to ensure that the path is valid. Not sure though, the
- * ### research continues... */
-
/* Our table consisting of:
* Expected Input Required state Function to call */
struct transition transitions[] =
@@ -1110,8 +1147,8 @@ svn_diff_parse_next_patch(svn_patch_t **
{"--- a/", state_git_diff_seen, git_minus},
{"--- a/", state_git_tree_seen, git_minus},
{"+++ b/", state_git_minus_seen, git_plus},
- {"move from ", state_git_diff_seen, git_move_from},
- {"move to ", state_move_from_seen, git_move_to},
+ {"rename from ", state_git_diff_seen, git_move_from},
+ {"rename to ", state_move_from_seen, git_move_to},
{"copy from ", state_git_diff_seen, git_copy_from},
{"copy to ", state_copy_from_seen, git_copy_to},
{"new file ", state_git_diff_seen, git_new_file},
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_fs_fs/fs_fs.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_fs_fs/fs_fs.c Thu Aug 5 15:07:22 2010
@@ -6374,11 +6374,12 @@ svn_fs_fs__reserve_copy_id(const char **
static svn_error_t *
write_revision_zero(svn_fs_t *fs)
{
+ const char *path_revision_zero = path_rev(fs, 0, fs->pool);
apr_hash_t *proplist;
svn_string_t date;
/* Write out a rev file for revision 0. */
- SVN_ERR(svn_io_file_create(path_rev(fs, 0, fs->pool),
+ SVN_ERR(svn_io_file_create(path_revision_zero,
"PLAIN\nEND\nENDREP\n"
"id: 0.0.r0/17\n"
"type: dir\n"
@@ -6387,6 +6388,7 @@ write_revision_zero(svn_fs_t *fs)
"2d2977d1c96f487abe4a1e202dd03b4e\n"
"cpath: /\n"
"\n\n17 107\n", fs->pool));
+ SVN_ERR(svn_io_set_file_read_only(path_revision_zero, FALSE, fs->pool));
/* Set a date on revision 0. */
date.data = svn_time_to_cstring(apr_time_now(), fs->pool);
@@ -6624,7 +6626,7 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
{
apr_hash_t *headers;
char *value;
- node_revision_t noderev;
+ representation_t *data_rep;
struct rep_args *ra;
struct recover_read_from_file_baton baton;
svn_stream_t *stream;
@@ -6637,10 +6639,6 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
pool),
pool));
- /* We're going to populate a skeletal noderev - just the id and data_rep. */
- value = apr_hash_get(headers, HEADER_ID, APR_HASH_KEY_STRING);
- noderev.id = svn_fs_fs__id_parse(value, strlen(value), pool);
-
/* Check that this is a directory. It should be. */
value = apr_hash_get(headers, HEADER_TYPE, APR_HASH_KEY_STRING);
if (value == NULL || strcmp(value, KIND_DIR) != 0)
@@ -6651,18 +6649,18 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
value = apr_hash_get(headers, HEADER_TEXT, APR_HASH_KEY_STRING);
if (!value)
return SVN_NO_ERROR;
- SVN_ERR(read_rep_offsets(&noderev.data_rep, value, NULL, FALSE, pool));
+ SVN_ERR(read_rep_offsets(&data_rep, value, NULL, FALSE, pool));
/* If the directory's data representation wasn't changed in this revision,
we've already scanned the directory's contents for noderevs, so we don't
need to again. This will occur if a property is changed on a directory
without changing the directory's contents. */
- if (noderev.data_rep->revision != rev)
+ if (data_rep->revision != rev)
return SVN_NO_ERROR;
/* We could use get_dir_contents(), but this is much cheaper. It does
rely on directory entries being stored as PLAIN reps, though. */
- offset = noderev.data_rep->offset;
+ offset = data_rep->offset;
SVN_ERR(svn_io_file_seek(rev_file, APR_SET, &offset, pool));
SVN_ERR(read_rep_line(&ra, rev_file, pool));
if (ra->is_delta)
@@ -6674,7 +6672,7 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
stored in the representation. */
baton.file = rev_file;
baton.pool = pool;
- baton.remaining = noderev.data_rep->expanded_size;
+ baton.remaining = data_rep->expanded_size;
stream = svn_stream_create(&baton, pool);
svn_stream_set_read(stream, read_handler_recover);
@@ -7489,6 +7487,8 @@ pack_shard(const char *revs_dir,
SVN_ERR(svn_stream_close(manifest_stream));
SVN_ERR(svn_stream_close(pack_stream));
SVN_ERR(svn_io_copy_perms(shard_path, pack_file_dir, pool));
+ SVN_ERR(svn_io_set_file_read_only(pack_file_path, FALSE, pool));
+ SVN_ERR(svn_io_set_file_read_only(manifest_file_path, FALSE, pool));
/* Update the min-unpacked-rev file to reflect our newly packed shard.
* (ffd->min_unpacked_rev will be updated by open_pack_or_rev_file().)
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/blame.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/blame.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/blame.c Thu Aug 5 15:07:22 2010
@@ -382,8 +382,10 @@ cdata_blame(svn_ra_serf__xml_parser_t *p
return SVN_NO_ERROR;
}
-static serf_bucket_t*
-create_file_revs_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_file_revs_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -419,7 +421,8 @@ create_file_revs_body(void *baton,
svn_ra_serf__add_close_tag_buckets(buckets, alloc,
"S:file-revs-report");
- return buckets;
+ *body_bkt = buckets;
+ return SVN_NO_ERROR;
}
svn_error_t *
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/commit.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/commit.c Thu Aug 5 15:07:22 2010
@@ -238,8 +238,10 @@ return_response_err(svn_ra_serf__handler
err);
}
-static serf_bucket_t *
-create_checkout_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_checkout_body(serf_bucket_t **bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -263,7 +265,8 @@ create_checkout_body(void *baton,
svn_ra_serf__add_tag_buckets(body_bkt, "D:apply-to-version", NULL, alloc);
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:checkout");
- return body_bkt;
+ *bkt = body_bkt;
+ return SVN_NO_ERROR;
}
/* Implements svn_ra_serf__response_handler_t */
@@ -707,7 +710,7 @@ proppatch_walker(void *baton,
return SVN_NO_ERROR;
}
-static apr_status_t
+static svn_error_t *
setup_proppatch_headers(serf_bucket_t *headers,
void *baton,
apr_pool_t *pool)
@@ -738,16 +741,19 @@ setup_proppatch_headers(serf_bucket_t *h
}
}
- return APR_SUCCESS;
+ return SVN_NO_ERROR;
}
-static serf_bucket_t *
-create_proppatch_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_proppatch_body(serf_bucket_t **bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
proppatch_context_t *ctx = baton;
serf_bucket_t *body_bkt;
+ svn_error_t *err;
body_bkt = serf_bucket_aggregate_create(alloc);
@@ -764,9 +770,10 @@ create_proppatch_body(void *baton,
svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:set", NULL);
svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:prop", NULL);
- svn_ra_serf__walk_all_props(ctx->changed_props, ctx->path,
- SVN_INVALID_REVNUM,
- proppatch_walker, body_bkt, pool);
+ err = svn_ra_serf__walk_all_props(ctx->changed_props, ctx->path,
+ SVN_INVALID_REVNUM,
+ proppatch_walker, body_bkt, pool);
+ svn_error_clear(err); /* ### */
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:prop");
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:set");
@@ -777,9 +784,10 @@ create_proppatch_body(void *baton,
svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:remove", NULL);
svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:prop", NULL);
- svn_ra_serf__walk_all_props(ctx->removed_props, ctx->path,
- SVN_INVALID_REVNUM,
- proppatch_walker, body_bkt, pool);
+ err = svn_ra_serf__walk_all_props(ctx->removed_props, ctx->path,
+ SVN_INVALID_REVNUM,
+ proppatch_walker, body_bkt, pool);
+ svn_error_clear(err); /* ### */
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:prop");
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:remove");
@@ -787,7 +795,8 @@ create_proppatch_body(void *baton,
svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:propertyupdate");
- return body_bkt;
+ *bkt = body_bkt;
+ return SVN_NO_ERROR;
}
static svn_error_t*
@@ -829,8 +838,10 @@ proppatch_resource(proppatch_context_t *
return SVN_NO_ERROR;
}
-static serf_bucket_t *
-create_put_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_put_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -853,18 +864,22 @@ create_put_body(void *baton,
offset = 0;
apr_file_seek(ctx->svndiff, APR_SET, &offset);
- return serf_bucket_file_create(ctx->svndiff, alloc);
+ *body_bkt = serf_bucket_file_create(ctx->svndiff, alloc);
+ return SVN_NO_ERROR;
}
-static serf_bucket_t *
-create_empty_put_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_empty_put_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
- return SERF_BUCKET_SIMPLE_STRING("", alloc);
+ *body_bkt = SERF_BUCKET_SIMPLE_STRING("", alloc);
+ return SVN_NO_ERROR;
}
-static apr_status_t
+static svn_error_t *
setup_put_headers(serf_bucket_t *headers,
void *baton,
apr_pool_t *pool)
@@ -909,7 +924,7 @@ setup_put_headers(serf_bucket_t *headers
return APR_SUCCESS;
}
-static apr_status_t
+static svn_error_t *
setup_copy_file_headers(serf_bucket_t *headers,
void *baton,
apr_pool_t *pool)
@@ -928,10 +943,10 @@ setup_copy_file_headers(serf_bucket_t *h
serf_bucket_headers_set(headers, "Depth", "0");
serf_bucket_headers_set(headers, "Overwrite", "T");
- return APR_SUCCESS;
+ return SVN_NO_ERROR;
}
-static apr_status_t
+static svn_error_t *
setup_copy_dir_headers(serf_bucket_t *headers,
void *baton,
apr_pool_t *pool)
@@ -972,10 +987,10 @@ setup_copy_dir_headers(serf_bucket_t *he
apr_pstrdup(dir->commit->pool, dir->name), APR_HASH_KEY_STRING,
(void*)1);
- return APR_SUCCESS;
+ return SVN_NO_ERROR;
}
-static apr_status_t
+static svn_error_t *
setup_delete_headers(serf_bucket_t *headers,
void *baton,
apr_pool_t *pool)
@@ -1005,11 +1020,13 @@ setup_delete_headers(serf_bucket_t *head
}
}
- return APR_SUCCESS;
+ return SVN_NO_ERROR;
}
-static serf_bucket_t *
-create_delete_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_delete_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -1023,7 +1040,8 @@ create_delete_body(void *baton,
svn_ra_serf__merge_lock_token_list(ctx->lock_token_hash, ctx->path,
body, alloc, pool);
- return body;
+ *body_bkt = body;
+ return SVN_NO_ERROR;
}
/* Helper function to write the svndiff stream to temporary file. */
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/get_deleted_rev.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/get_deleted_rev.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/get_deleted_rev.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/get_deleted_rev.c Thu Aug 5 15:07:22 2010
@@ -136,8 +136,10 @@ cdata_getdrev(svn_ra_serf__xml_parser_t
return SVN_NO_ERROR;
}
-static serf_bucket_t*
-create_getdrev_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_getdrev_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -169,7 +171,8 @@ create_getdrev_body(void *baton,
svn_ra_serf__add_close_tag_buckets(buckets, alloc,
"S:get-deleted-rev-report");
- return buckets;
+ *body_bkt = buckets;
+ return SVN_NO_ERROR;
}
svn_error_t *
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getdate.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getdate.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getdate.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getdate.c Thu Aug 5 15:07:22 2010
@@ -164,8 +164,10 @@ cdata_getdate(svn_ra_serf__xml_parser_t
return SVN_NO_ERROR;
}
-static serf_bucket_t*
-create_getdate_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_getdate_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -186,7 +188,8 @@ create_getdate_body(void *baton,
svn_ra_serf__add_close_tag_buckets(buckets, alloc, "S:dated-rev-report");
- return buckets;
+ *body_bkt = buckets;
+ return SVN_NO_ERROR;
}
svn_error_t *
Modified: subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocations.c
URL: http://svn.apache.org/viewvc/subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocations.c?rev=982653&r1=982652&r2=982653&view=diff
==============================================================================
--- subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocations.c (original)
+++ subversion/branches/issue-2779-dev/subversion/libsvn_ra_serf/getlocations.c Thu Aug 5 15:07:22 2010
@@ -180,8 +180,10 @@ end_getloc(svn_ra_serf__xml_parser_t *pa
return SVN_NO_ERROR;
}
-static serf_bucket_t*
-create_get_locations_body(void *baton,
+/* Implements svn_ra_serf__request_body_delegate_t */
+static svn_error_t *
+create_get_locations_body(serf_bucket_t **body_bkt,
+ void *baton,
serf_bucket_alloc_t *alloc,
apr_pool_t *pool)
{
@@ -216,7 +218,8 @@ create_get_locations_body(void *baton,
svn_ra_serf__add_close_tag_buckets(buckets, alloc,
"S:get-locations");
- return buckets;
+ *body_bkt = buckets;
+ return SVN_NO_ERROR;
}
svn_error_t *