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 2010/12/08 22:53:41 UTC
svn commit: r1043705 [1/4] - in /subversion/branches/performance: ./ build/
build/ac-macros/ build/generator/templates/ contrib/hook-scripts/
contrib/server-side/ notes/api-errata/ notes/api-errata/1.7/
subversion/bindings/javahl/native/ subversion/bin...
Author: hwright
Date: Wed Dec 8 21:53:38 2010
New Revision: 1043705
URL: http://svn.apache.org/viewvc?rev=1043705&view=rev
Log:
On the performance branch:
Bring up-to-date with trunk.
Added:
subversion/branches/performance/notes/api-errata/1.7/
- copied from r1043512, subversion/trunk/notes/api-errata/1.7/
subversion/branches/performance/notes/api-errata/1.7/wc001.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc001.txt
subversion/branches/performance/notes/api-errata/1.7/wc002.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc002.txt
subversion/branches/performance/notes/api-errata/1.7/wc003.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc003.txt
subversion/branches/performance/notes/api-errata/1.7/wc004.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc004.txt
subversion/branches/performance/notes/api-errata/1.7/wc005.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc005.txt
subversion/branches/performance/notes/api-errata/1.7/wc006.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc006.txt
subversion/branches/performance/notes/api-errata/1.7/wc007.txt
- copied unchanged from r1043512, subversion/trunk/notes/api-errata/1.7/wc007.txt
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java
- copied unchanged from r1043512, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java
subversion/branches/performance/tools/dev/wc-ng/populate-pristine.py
- copied unchanged from r1043512, subversion/trunk/tools/dev/wc-ng/populate-pristine.py
Removed:
subversion/branches/performance/contrib/hook-scripts/README
subversion/branches/performance/notes/api-errata/wc001.txt
subversion/branches/performance/notes/api-errata/wc002.txt
subversion/branches/performance/notes/api-errata/wc003.txt
subversion/branches/performance/notes/api-errata/wc004.txt
subversion/branches/performance/notes/api-errata/wc005.txt
subversion/branches/performance/notes/api-errata/wc006.txt
subversion/branches/performance/notes/api-errata/wc007.txt
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Depth.java
Modified:
subversion/branches/performance/ (props changed)
subversion/branches/performance/CHANGES
subversion/branches/performance/build/ac-macros/java.m4
subversion/branches/performance/build/generator/templates/build_zlib.ezt
subversion/branches/performance/build/generator/templates/svn_config.vcxproj.ezt
subversion/branches/performance/build/generator/templates/zlib.dsp.ezt
subversion/branches/performance/build/generator/templates/zlib.vcproj.ezt
subversion/branches/performance/build/generator/templates/zlib.vcxproj.ezt
subversion/branches/performance/build/transform_libtool_scripts.sh
subversion/branches/performance/configure.ac
subversion/branches/performance/contrib/server-side/fsfsverify.py
subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp
subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp
subversion/branches/performance/subversion/bindings/javahl/native/JNIUtil.h
subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info.java
subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java
subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
subversion/branches/performance/subversion/include/private/svn_file_handle_cache.h (props changed)
subversion/branches/performance/subversion/include/private/svn_temp_serializer.h (props changed)
subversion/branches/performance/subversion/include/private/svn_wc_private.h
subversion/branches/performance/subversion/include/svn_checksum.h
subversion/branches/performance/subversion/include/svn_client.h
subversion/branches/performance/subversion/include/svn_dirent_uri.h
subversion/branches/performance/subversion/include/svn_editor.h
subversion/branches/performance/subversion/include/svn_io.h
subversion/branches/performance/subversion/include/svn_path.h
subversion/branches/performance/subversion/include/svn_types.h
subversion/branches/performance/subversion/libsvn_client/add.c
subversion/branches/performance/subversion/libsvn_client/checkout.c
subversion/branches/performance/subversion/libsvn_client/copy.c
subversion/branches/performance/subversion/libsvn_client/diff.c
subversion/branches/performance/subversion/libsvn_client/info.c
subversion/branches/performance/subversion/libsvn_client/merge.c
subversion/branches/performance/subversion/libsvn_client/update.c
subversion/branches/performance/subversion/libsvn_fs/fs-loader.c
subversion/branches/performance/subversion/libsvn_fs_fs/fs.h
subversion/branches/performance/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/performance/subversion/libsvn_fs_fs/fs_fs.h
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c (props changed)
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.h (props changed)
subversion/branches/performance/subversion/libsvn_fs_fs/tree.c
subversion/branches/performance/subversion/libsvn_fs_util/caching.c (props changed)
subversion/branches/performance/subversion/libsvn_repos/load-fs-vtable.c
subversion/branches/performance/subversion/libsvn_repos/repos.c
subversion/branches/performance/subversion/libsvn_repos/rev_hunt.c
subversion/branches/performance/subversion/libsvn_subr/checksum.c
subversion/branches/performance/subversion/libsvn_subr/eol.c
subversion/branches/performance/subversion/libsvn_subr/svn_file_handle_cache.c (props changed)
subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c (props changed)
subversion/branches/performance/subversion/libsvn_wc/entries.c
subversion/branches/performance/subversion/libsvn_wc/node.c
subversion/branches/performance/subversion/libsvn_wc/update_editor.c
subversion/branches/performance/subversion/libsvn_wc/upgrade.c
subversion/branches/performance/subversion/libsvn_wc/wc-metadata.sql
subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql
subversion/branches/performance/subversion/libsvn_wc/wc.h
subversion/branches/performance/subversion/libsvn_wc/wc_db.c
subversion/branches/performance/subversion/libsvn_wc/wc_db.h
subversion/branches/performance/subversion/svn/checkout-cmd.c
subversion/branches/performance/subversion/svn/copy-cmd.c
subversion/branches/performance/subversion/svn/export-cmd.c
subversion/branches/performance/subversion/svn/mkdir-cmd.c
subversion/branches/performance/subversion/svn/switch-cmd.c
subversion/branches/performance/subversion/svn/update-cmd.c
subversion/branches/performance/subversion/tests/cmdline/authz_tests.py
subversion/branches/performance/subversion/tests/cmdline/basic_tests.py
subversion/branches/performance/subversion/tests/cmdline/copy_tests.py
subversion/branches/performance/subversion/tests/cmdline/diff_tests.py
subversion/branches/performance/subversion/tests/cmdline/entries_tests.py
subversion/branches/performance/subversion/tests/cmdline/externals_tests.py
subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py
subversion/branches/performance/subversion/tests/cmdline/merge_tests.py
subversion/branches/performance/subversion/tests/cmdline/svntest/actions.py
subversion/branches/performance/subversion/tests/cmdline/svntest/main.py
subversion/branches/performance/subversion/tests/cmdline/switch_tests.py
subversion/branches/performance/subversion/tests/cmdline/upgrade_tests.py
subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c
subversion/branches/performance/subversion/tests/libsvn_wc/entries-compat.c
subversion/branches/performance/subversion/tests/libsvn_wc/op-depth-test.c
subversion/branches/performance/tools/dev/unix-build/Makefile.svn
subversion/branches/performance/tools/dist/collect_sigs.py
Propchange: subversion/branches/performance/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Dec 8 21:53:38 2010
@@ -16,7 +16,7 @@ build-outputs.mk
autogen-standalone.mk
autom4te.cache
gen-make.opts
-tests.log
+tests.log*
fails.log
db4-win32
db
Propchange: subversion/branches/performance/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 8 21:53:38 2010
@@ -39,4 +39,4 @@
/subversion/branches/tc_url_rev:874351-874483
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:962911-1039497
+/subversion/trunk:962911-1043512
Modified: subversion/branches/performance/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/performance/CHANGES?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/CHANGES (original)
+++ subversion/branches/performance/CHANGES Wed Dec 8 21:53:38 2010
@@ -443,9 +443,9 @@ http://svn.apache.org/repos/asf/subversi
* fix building Ruby bindings with Ruby 1.9 (r35852, r35883)
-Version 1.5.8
-(?? ??? 2010, from /branches/1.5.x)
-http://svn.apache.org/repos/asf/subversion/tags/1.5.8
+Version 1.5.9
+(06 Dec 2010, from /branches/1.5.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.5.9
User-visible changes:
* fix proxying of LOCK and UNLOCK requests with WebDAV proxies (r36159)
@@ -455,13 +455,21 @@ http://svn.apache.org/repos/asf/subversi
* fixed: repeated mergeinfo of conflicting properties fails (issue #3250)
* fix segfault in wc->URL copy (r37646, -56)
* make 'svn up --set-depth infinity' expand shallow subtrees (r37169)
+ * resolve symlinks when checking for ~/.subversion (r36023)
* make default depth of 'svn merge' infinity (r37156)
+ * don't allow foreign merges to add foreign mergeinfo (issue #3383)
* error if attempting to reintegrate to/from the repo root (r37385)
+ * let 'svnadmin load' tolerate mergeinfo with "\r\n" (r37768)
* improve memory performance in 'svn merge' (issue #3393)
* fixed: 'SVNPathAuthz short_circuit' unsolicited read access (issue #3695)
See CVE-2010-3315, and descriptive advisory at
http://subversion.apache.org/security/CVE-2010-3315-advisory.txt
* prevent crash in mod_dav_svn when using SVNParentPath (r1033166)
+ * limit memory fragmentation in svnserve (r1022675)
+ * fix server-side memory leaks triggered by 'blame -g' (r1032808)
+ * perform MIME type matching case-insensitively (issue #3479)
+ * respect Apache's ServerSignature directive (r880082)
+ * error early if attempting to use Serf >= 0.4.0 (r1041545)
Developer-visible changes:
* fix pointer dereference (r36783)
@@ -469,6 +477,10 @@ http://svn.apache.org/repos/asf/subversi
* make basic_tests 12 compatible with Windows and Python 2.5+ (r35930)
+Version 1.5.8
+(Not released, see changes for 1.5.9.)
+
+
Version 1.5.7
(06 Aug 2009, from /branches/1.5.x)
http://svn.apache.org/repos/asf/subversion/tags/1.5.7
Modified: subversion/branches/performance/build/ac-macros/java.m4
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/ac-macros/java.m4?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/ac-macros/java.m4 (original)
+++ subversion/branches/performance/build/ac-macros/java.m4 Wed Dec 8 21:53:38 2010
@@ -87,7 +87,7 @@ AC_DEFUN(SVN_FIND_JDK,
if test "$OSX_VER" = "10.4"; then
dnl For OS X 10.4, the SDK version is 10.4u instead of 10.4.
- OSX_VER = "$OSX_VERu"
+ OSX_VER="10.4u"
fi
OSX_SYS_JAVA_FRAMEWORK="/System/Library/Frameworks/JavaVM.framework"
Modified: subversion/branches/performance/build/generator/templates/build_zlib.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/templates/build_zlib.ezt?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/templates/build_zlib.ezt (original)
+++ subversion/branches/performance/build/generator/templates/build_zlib.ezt Wed Dec 8 21:53:38 2010
@@ -25,32 +25,47 @@
@rem *
@rem * From this directory, run this batch file like so:
@rem *
-@rem * .\build_zlib debug|release (rebuild)
+@rem * .\build_zlib debug|release Win32|X64 [rebuild|clean]
@rem *
@rem **************************************************************************
@rem **************************************************************************
cd /D [zlib_path]
set exitcode=0
+set zlib_version=[zlib_version]
+
+if /i "%1" == "release" goto release
+if /i "%1" == "debug" goto debug
+goto pIerr
+
+:checkplatform
+if /i "%2" == "Win32" goto PWin32
+if /i "%2" == "x64" goto PX64
+goto pIIerr
+
+:checkrebuild
+
[if-any use_ml]
@rem **************************************************************************
@rem Compile ASM sources with ML
set ASFLAGS=-nologo -Zi -coff
set LOC=-DASMV -DASMINF
-set OBJA=gvmat32c.obj gvmat32.obj inffas32.obj
+[is zlib_version "1.2.4"]
+set OBJA=contrib\masmx86\gvmat32c.obj contrib\masmx86\gvmat32.obj contrib\masmx86\inffas32.obj
set ASM_OPTS=ASFLAGS="%ASFLAGS%" LOC="%LOC%" OBJA="%OBJA%"
-if not exist gvmat32c.c copy contrib\masmx86\gvmat32c.c .
-if not exist gvmat32.asm copy contrib\masmx86\gvmat32.asm .
-if not exist inffas32.asm copy contrib\masmx86\inffas32.asm .[end]
+[else]
+if /i "%2" == "Win32" (
+ set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
+) else if /i "%2" == "x64" (
+ set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.c" AS=ml64
+)
+[end]
+[end]
-if /i "%1" == "release" goto release
-if /i "%1" == "debug" goto debug
-goto pIerr
-:checkrebuild
-if /i "%2" == "rebuild" goto rebuild
-if /i "%2" == "clean" goto clean
-if not "%2" == "" goto pIIerr
+if /i "%3" == "rebuild" goto rebuild
+if /i "%3" == "clean" goto clean
+if not "%3" == "" goto pIIIerr
set target= %STATICLIB%
goto build
@@ -66,19 +81,31 @@ goto build
:release
set STATICLIB=zlibstat.lib
set CC_OPTS=/MD /O2 /Zi
-goto checkrebuild
+goto checkplatform
@rem **************************************************************************
:debug
set STATICLIB=zlibstatD.lib
-set CC_OPTS=/MDd /Gm /Gi /ZI /Od /GZ /D_DEBUG
+set CC_OPTS=/MDd /Gm /ZI /Od /GZ /D_DEBUG
+goto checkplatform
+
+@rem **************************************************************************
+:PWin32
+goto checkrebuild
+
+@rem **************************************************************************
+:PX64
goto checkrebuild
@rem **************************************************************************
:build
-set COMMON_CC_OPTS=/nologo /W3 /FD /DWIN32 /D_WINDOWS
-set CFLAGS=%COMMON_CC_OPTS% %CC_OPTS% $(LOC)
-set BUILD_OPTS=%ASM_OPTS% CFLAGS="%COMMON_CC_OPTS% %CC_OPTS% $(LOC)"
+set COMMON_CC_OPTS=/nologo /W3 /DWIN32 /D_WINDOWS
+[is zlib_version "1.2.4"]
+set CFLAGS=%COMMON_CC_OPTS% %CC_OPTS% %LOC%
+set BUILD_OPTS=%ASM_OPTS% CFLAGS="%COMMON_CC_OPTS% %CC_OPTS% %LOC%"
+[else]
+set BUILD_OPTS=%ASM_OPTS%
+[end]
@echo nmake /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
nmake /nologo /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
if not errorlevel 0 goto err
@@ -91,7 +118,13 @@ goto err
@rem **************************************************************************
:pIIerr
-echo error: Second parameter should be "rebuild" or empty
+echo error: Second parameter should be "Win32" or "X64"
+goto err
+
+
+@rem **************************************************************************
+:pIIIerr
+echo error: Third parameter should be "rebuild" or empty
goto err
@rem **************************************************************************
Modified: subversion/branches/performance/build/generator/templates/svn_config.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/templates/svn_config.vcxproj.ezt?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/templates/svn_config.vcxproj.ezt (original)
+++ subversion/branches/performance/build/generator/templates/svn_config.vcxproj.ezt Wed Dec 8 21:53:38 2010
@@ -54,8 +54,7 @@
<CustomBuild Include="..\..\..\subversion\svn_private_config.hw">
<FileType>Document</FileType>
[for configs][for platforms] <Message Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">Creating svn_private_config.h from svn_private_config.hw.</Message>
- <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">copy ..\..\..\subversion\svn_private_config.hw ..\..\..\subversion\svn_private_config.h > nul
-</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">copy ..\..\..\subversion\svn_private_config.hw ..\..\..\subversion\svn_private_config.h > nul:</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">..\..\..\subversion\svn_private_config.h;%(Outputs)</Outputs>
[end][end] </CustomBuild>
[for sql] <CustomBuild Include="..\..\..\[sql.source]">
Modified: subversion/branches/performance/build/generator/templates/zlib.dsp.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/templates/zlib.dsp.ezt?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/templates/zlib.dsp.ezt (original)
+++ subversion/branches/performance/build/generator/templates/zlib.dsp.ezt Wed Dec 8 21:53:38 2010
@@ -32,7 +32,7 @@ CFG=zlib - Win32 Debug
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "[zlib_path]\Release"
# PROP BASE Intermediate_Dir "[zlib_path]\Release"
-# PROP BASE Cmd_Line "build_zlib.bat release"
+# PROP BASE Cmd_Line "build_zlib.bat release Win32"
# PROP BASE Rebuild_Opt "rebuild"
# PROP BASE Target_File "[zlib_path]\zlibstat.lib"
# PROP BASE Bsc_Name ""
@@ -40,7 +40,7 @@ CFG=zlib - Win32 Debug
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "[zlib_path]\Release"
# PROP Intermediate_Dir "[zlib_path]\Release"
-# PROP Cmd_Line "cmd /c build_zlib.bat release"
+# PROP Cmd_Line "cmd /c build_zlib.bat release Win32"
# PROP Rebuild_Opt "rebuild"
# PROP Target_File "[zlib_path]\zlibstat.lib"
# PROP Bsc_Name ""
@@ -51,7 +51,7 @@ CFG=zlib - Win32 Debug
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "[zlib_path]\Debug"
# PROP BASE Intermediate_Dir "[zlib_path]\Debug"
-# PROP BASE Cmd_Line "build_zlib.bat debug"
+# PROP BASE Cmd_Line "build_zlib.bat debug Win32"
# PROP BASE Rebuild_Opt "rebuild"
# PROP BASE Target_File "[zlib_path]\zlibstatD.lib"
# PROP BASE Bsc_Name ""
@@ -59,7 +59,7 @@ CFG=zlib - Win32 Debug
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "[zlib_path]\Debug"
# PROP Intermediate_Dir "[zlib_path]\Debug"
-# PROP Cmd_Line "cmd /c build_zlib.bat debug"
+# PROP Cmd_Line "cmd /c build_zlib.bat debug Win32"
# PROP Rebuild_Opt "rebuild"
# PROP Target_File "[zlib_path]\zlibstatD.lib"
# PROP Bsc_Name ""
Modified: subversion/branches/performance/build/generator/templates/zlib.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/templates/zlib.vcproj.ezt?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/templates/zlib.vcproj.ezt (original)
+++ subversion/branches/performance/build/generator/templates/zlib.vcproj.ezt Wed Dec 8 21:53:38 2010
@@ -40,9 +40,9 @@
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCNMakeTool"
- BuildCommandLine="cmd /c build_zlib.bat debug"
- ReBuildCommandLine="cmd /c build_zlib.bat debug rebuild"
- CleanCommandLine="cmd /c build_zlib.bat debug clean"
+ BuildCommandLine="cmd /c build_zlib.bat debug [platforms]"
+ ReBuildCommandLine="cmd /c build_zlib.bat debug [platforms] rebuild"
+ CleanCommandLine="cmd /c build_zlib.bat debug [platforms] clean"
Output="[zlib_path]\zlibstatD.lib"/>
</Configuration>
<Configuration
@@ -56,9 +56,9 @@
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCNMakeTool"
- BuildCommandLine="cmd /c build_zlib.bat release"
- ReBuildCommandLine="cmd /c build_zlib.bat release rebuild"
- CleanCommandLine="cmd /c build_zlib.bat release clean"
+ BuildCommandLine="cmd /c build_zlib.bat release [platforms]"
+ ReBuildCommandLine="cmd /c build_zlib.bat release [platforms] rebuild"
+ CleanCommandLine="cmd /c build_zlib.bat release [platforms] clean"
Output="[zlib_path]\zlibstat.lib"/>
</Configuration>
[end] </Configurations>
Modified: subversion/branches/performance/build/generator/templates/zlib.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/templates/zlib.vcxproj.ezt?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/templates/zlib.vcxproj.ezt (original)
+++ subversion/branches/performance/build/generator/templates/zlib.vcxproj.ezt Wed Dec 8 21:53:38 2010
@@ -44,9 +44,9 @@
<PropertyGroup>
[for configs][for platforms] <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
- <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs]</NMakeBuildCommandLine>
- <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] rebuild</NMakeReBuildCommandLine>
- <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] clean</NMakeCleanCommandLine>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms]</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms] rebuild</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms] clean</NMakeCleanCommandLine>
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[zlib_path]\[is configs "Release"]zlibstat.lib[else]zlibstatD.lib[end]</NMakeOutput>
[end][end] </PropertyGroup>
<ItemDefinitionGroup>
Modified: subversion/branches/performance/build/transform_libtool_scripts.sh
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/transform_libtool_scripts.sh?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/build/transform_libtool_scripts.sh (original)
+++ subversion/branches/performance/build/transform_libtool_scripts.sh Wed Dec 8 21:53:38 2010
@@ -21,6 +21,7 @@
#
# Dependencies of libraries
+# TODO: generate from build.conf
subr="subr"
auth_gnome_keyring="auth_gnome_keyring $subr"
auth_kwallet="auth_kwallet $subr"
@@ -39,11 +40,9 @@ ra="ra $delta $ra_local $ra_neon $ra_ser
wc="wc $delta $diff $subr"
client="client $delta $diff $ra $subr $wc"
-# Variable 'libraries' containing names of variables corresponding to libraries
-libraries="auth_gnome_keyring auth_kwallet client delta diff fs fs_base fs_fs fs_util ra ra_local ra_neon ra_serf ra_svn repos subr wc"
-
-for library in $libraries; do
- # Delete duplicates in dependencies of libraries
+# Delete duplicates in dependencies of libraries
+ls subversion | grep libsvn_ | while read library_dir; do
+ library=`basename $library_dir | sed s/libsvn_//`
library_dependencies="$(echo -n $(for x in $(eval echo "\$$library"); do echo $x; done | sort -u))"
eval "$library=\$library_dependencies"
done
Modified: subversion/branches/performance/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/performance/configure.ac?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/configure.ac (original)
+++ subversion/branches/performance/configure.ac Wed Dec 8 21:53:38 2010
@@ -844,11 +844,10 @@ if test "$enable_disallowing_of_undefine
LDFLAGS="$LDFLAGS -Wl,--no-undefined"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"])
LDFLAGS="$old_LDFLAGS"
- libraries="auth_gnome_keyring auth_kwallet client delta diff fs fs_base fs_fs fs_util ra ra_local ra_neon ra_serf ra_svn repos subr wc"
if test "$svn_wl_no_undefined" = "yes"; then
AC_MSG_RESULT([yes])
- for library in $libraries; do
- eval "libsvn_${library}_LDFLAGS=-Wl,--no-undefined"
+ ls "$abs_srcdir"/subversion | grep libsvn_ | while read library_dir; do
+ eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined"
done
else
AC_MSG_RESULT([no])
@@ -1041,7 +1040,7 @@ SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
AC_PATH_PROG(PERL, perl, none)
-AC_PATH_PROG(RUBY, ruby, none)
+AC_PATH_PROGS(RUBY, ruby ruby1.8, none)
if test "$RUBY" != "none"; then
if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)'; then
AC_PATH_PROG(RDOC, rdoc, none)
@@ -1257,7 +1256,9 @@ AC_CONFIG_FILES([Makefile])
SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
-SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
+if test -e packages/solaris/pkginfo.in; then
+ SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
+fi
AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
AC_OUTPUT
Modified: subversion/branches/performance/contrib/server-side/fsfsverify.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/contrib/server-side/fsfsverify.py?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/contrib/server-side/fsfsverify.py (original)
+++ subversion/branches/performance/contrib/server-side/fsfsverify.py Wed Dec 8 21:53:38 2010
@@ -20,6 +20,13 @@ import optparse
import sys
import re
+try:
+ import hashlib
+ md5_new = hashlib.md5
+except ImportError:
+ import md5
+ md5_new = md5.new
+
# A handy constant for refering to the NULL digest (one that
# matches every digest).
@@ -70,6 +77,10 @@ class NoMoreData(FsfsVerifyException):
pass
+class CmdlineError(FsfsVerifyException):
+ pass
+
+
LOG_INSTRUCTIONS = 1
LOG_WINDOWS = 2
LOG_SVNDIFF = 4
@@ -350,8 +361,8 @@ class Window(object):
self.isDataCompressed = True
except Exception, e:
new_e = InvalidCompressedStream(
- "Invalid compressed data stream at offset %d (%s)" % (offset,
- str(e)),
+ "Invalid compressed data stream at offset %d (%s, %s)\n" % (
+ offset, str(e), repr(self)),
offset)
new_e.windowOffset = self.windowOffset
raise new_e
@@ -522,7 +533,7 @@ class Rep(object):
self.length = int(length)
self.size = int(size)
- self.digest = digest
+ self.digest = digest.strip()
self.currentRev = currentRev
self.contentType = contentType
@@ -561,16 +572,14 @@ class Rep(object):
self.contentType)
if header == 'DELTA':
- # Consume the rest of the DELTA header
- while f.read(1) != '\n':
- pass
-
+ line = f.readline()
+ digest = None
+
# This should be the start of the svndiff stream
actual_start = f.tell()
try:
svndiff = Svndiff(f, self.length)
svndiff.verify()
- digest = None
except Exception, e:
e.rep = self
e.noderev = self.noderev
@@ -582,8 +591,7 @@ class Rep(object):
if f.read(1) != '\n':
raise DataCorrupt, "Expected a '\\n' after PLAIN"
- import md5
- m = md5.new()
+ m = md5_new()
m.update(f.read(self.length))
if self.digest and self.digest != NULL_DIGEST \
@@ -592,15 +600,19 @@ class Rep(object):
"PLAIN data is corrupted. Expected digest '%s', computed '%s'." % (
self.digest, m.hexdigest())
- if f.read(7) != 'ENDREP\n':
- raise DataCorrupt, "Terminating ENDREP missing!"
+ buf = f.read(6)
+ if buf != 'ENDREP':
+ raise DataCorrupt, "Terminating ENDREP missing! %r, %r" % (buf, self)
+ pass
class TextRep(Rep):
def __init__(self, rev, offset, length, size, digest,
- contentType, currentRev, noderev):
+ contentType, currentRev, noderev, sha1=None, uniquifier=None):
super(TextRep,self).__init__('text', rev, offset, length, size,
digest, contentType, currentRev, noderev)
+ self.sha1 = None
+ self.uniquifier = None
class PropRep(Rep):
@@ -650,6 +662,7 @@ class NodeRev(object):
self.nodeOffset = f.tell()
while True:
+ currentOffset = f.tell()
line = f.readline()
if line == '':
raise IOError, "Unexpected end of file"
@@ -666,8 +679,12 @@ class NodeRev(object):
raise
# pull of the leading space and trailing new line
+ if len(value) < 2:
+ raise FsfsVerifyException("value needs to contain 2 or more bytes (%d)" % currentOffset)
value = value[1:-1]
+ assert value != ""
+
if field == 'id':
self.id = NodeId(value)
elif field == 'type':
@@ -681,7 +698,16 @@ class NodeRev(object):
length = int(values[2])
size = int(values[3])
digest = values[4]
- # TODO SHA1 digest
+
+ if len(values) > 5:
+ sha1 = values[5]
+ else:
+ sha1 = None
+
+ if len(values) > 6:
+ uniquifier = values[6]
+ else:
+ uniquifier = None
if rev != currentRev:
contentType = None
@@ -692,7 +718,7 @@ class NodeRev(object):
f.seek(savedOffset)
self.text = TextRep(rev, offset, length, size, digest,
- contentType, currentRev, self)
+ contentType, currentRev, self, sha1, uniquifier)
elif field == 'props':
(rev, offset, length, size, digest) = value.split(' ')
rev = int(rev)
@@ -723,6 +749,28 @@ class NodeRev(object):
offset = f.tell()
f.seek(self.text.offset)
self.dir = getDirHash(f)
+
+ for k,v in self.dir.items():
+ nodeType, nodeId = v
+
+ if nodeId.rev != self.id.rev:
+ if not os.path.exists(str(nodeId.rev)):
+ print "Can't check %s" % repr(nodeId)
+ continue
+ with open(str(nodeId.rev),'rb') as tmp:
+ tmp.seek(nodeId.offset)
+ idLine = tmp.readline()
+ else:
+ f.seek(nodeId.offset)
+ idLine = f.readline()
+
+ if idLine != ("id: %s\n" % nodeId):
+ raise DataCorrupt(
+ ("Entry for '%s' at " % k ) +
+ ("offset %d is pointing to an " % self.text.offset) +
+ ("invalid location (node claims to be at offset %d)" % (
+ nodeId.offset))
+ )
f.seek(offset)
else:
# The directory entries are stored in another file.
@@ -851,7 +899,7 @@ class RegexpStrategy(WalkStrategy):
self.nodeFile = open(filename, 'rb')
def _nodeWalker(self):
- nodeId_re = re.compile(r'^id: [a-z0-9\./]+$')
+ nodeId_re = re.compile(r'^id: [a-z0-9\./\-]+$')
self.f.seek(0)
offset = 0
@@ -913,6 +961,11 @@ def truncate(noderev, revFile):
fields[3] = '0' * len(fields[3])
fields[4] = '0' * len(fields[4])
fields[5] = 'd41d8cd98f00b204e9800998ecf8427e'
+
+ if len(fields) > 6:
+ fields[6] = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
+ fields[7] = fields[7].strip()
+
newTextRep = ' '.join(fields) + '\x0a'
assert(len(newTextRep) == overallLength)
revFile.write(newTextRep)
@@ -1106,8 +1159,9 @@ if __name__ == '__main__':
match = re.match('([0-9]+)', os.path.basename(filename))
currentRev = int(match.group(1), 10)
except:
- raise CmdlineError, \
- "The file name must start with a decimal number that indicates the revision"
+ raise CmdlineError(
+ "The file name must start with a decimal " +
+ "number that indicates the revision")
if options.noderevRegexp:
strategy = RegexpStrategy(filename, root, currentRev)
Modified: subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp Wed Dec 8 21:53:38 2010
@@ -206,7 +206,7 @@ CreateJ::Info(const char *path, const sv
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;JJ"
- "L"JAVA_PACKAGE"/Depth;"
+ "L"JAVA_PACKAGE"/types/Depth;"
"L"JAVA_PACKAGE"/ConflictDescriptor;)V");
if (mid == 0 || JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
Modified: subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp Wed Dec 8 21:53:38 2010
@@ -176,14 +176,14 @@ int EnumMapper::toLogLevel(jobject jLogL
svn_depth_t EnumMapper::toDepth(jobject jdepth)
{
// The offset for depths is -2
- return (svn_depth_t) (getOrdinal(JAVA_PACKAGE"/Depth", jdepth) - 2);
+ return (svn_depth_t) (getOrdinal(JAVA_PACKAGE"/types/Depth", jdepth) - 2);
}
jobject EnumMapper::mapDepth(svn_depth_t depth)
{
// We're assuming a valid value for the C enum above
// The offset for depths is -2
- return mapEnum(JAVA_PACKAGE"/Depth", ((int) depth) + 2);
+ return mapEnum(JAVA_PACKAGE"/types/Depth", ((int) depth) + 2);
}
jobject EnumMapper::mapOperation(svn_wc_operation_t operation)
Modified: subversion/branches/performance/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/JNIUtil.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/JNIUtil.h Wed Dec 8 21:53:38 2010
@@ -179,7 +179,7 @@ class JNIUtil
static JNIMutex *g_logMutex;
/**
- * Flag, that an exception occured during our initialization.
+ * Flag, that an exception occurred during our initialization.
*/
static bool g_initException;
Modified: subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Dec 8 21:53:38 2010
@@ -760,7 +760,7 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_Depth_2ZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
(JNIEnv *env, jobject jthis, jstring jpath1, jobject jrevision1,
jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforce,
jobject jdepth, jboolean jignoreAncestry, jboolean jdryRun,
@@ -800,7 +800,7 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_Depth_2ZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
jobject jranges, jstring jlocalPath, jboolean jforce, jobject jdepth,
jboolean jignoreAncestry, jboolean jdryRun, jboolean jrecordOnly)
@@ -1128,7 +1128,7 @@ JNIEXPORT void JNICALL Java_org_apache_s
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
jstring joutfileName, jobject jdepth, jobject jchangelists,
@@ -1178,7 +1178,7 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
jstring joutfileName, jobject jdepth, jobject jchangelists,
@@ -1228,7 +1228,7 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
+Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
jstring jtarget2, jobject jrevision2, jobject jdepth, jobject jchangelists,
jboolean jignoreAncestry, jobject jdiffSummaryReceiver)
@@ -1271,7 +1271,7 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
+Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jPegRevision,
jobject jStartRevision, jobject jEndRevision, jobject jdepth,
jobject jchangelists, jboolean jignoreAncestry,
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info.java?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info.java Wed Dec 8 21:53:38 2010
@@ -25,7 +25,7 @@ package org.apache.subversion.javahl;
import java.util.Date;
-import org.apache.subversion.javahl.types.NodeKind;
+import org.apache.subversion.javahl.types.*;
/**
* this class is returned by {@link ISVNClient#info2} and contains information
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java Wed Dec 8 21:53:38 2010
@@ -122,27 +122,27 @@ public final class Depth
return (recurse ? unknown : immediates);
}
- public static org.apache.subversion.javahl.Depth toADepth(int depth)
+ public static org.apache.subversion.javahl.types.Depth toADepth(int depth)
{
switch(depth)
{
case infinity:
- return org.apache.subversion.javahl.Depth.infinity;
+ return org.apache.subversion.javahl.types.Depth.infinity;
case immediates:
- return org.apache.subversion.javahl.Depth.immediates;
+ return org.apache.subversion.javahl.types.Depth.immediates;
case files:
- return org.apache.subversion.javahl.Depth.files;
+ return org.apache.subversion.javahl.types.Depth.files;
case empty:
- return org.apache.subversion.javahl.Depth.empty;
+ return org.apache.subversion.javahl.types.Depth.empty;
case exclude:
- return org.apache.subversion.javahl.Depth.exclude;
+ return org.apache.subversion.javahl.types.Depth.exclude;
case unknown:
default:
- return org.apache.subversion.javahl.Depth.unknown;
+ return org.apache.subversion.javahl.types.Depth.unknown;
}
}
- public static int fromADepth(org.apache.subversion.javahl.Depth aDepth)
+ public static int fromADepth(org.apache.subversion.javahl.types.Depth aDepth)
{
switch(aDepth)
{
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Wed Dec 8 21:53:38 2010
@@ -2353,7 +2353,7 @@ public class SVNClient implements SVNCli
aSVNClient.info2(path,
org.apache.subversion.javahl.Revision.HEAD,
org.apache.subversion.javahl.Revision.HEAD,
- org.apache.subversion.javahl.Depth.empty,
+ org.apache.subversion.javahl.types.Depth.empty,
null, new org.apache.subversion.javahl.callback.InfoCallback()
{
public void singleInfo(org.apache.subversion.javahl.Info info) {
Modified: subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java Wed Dec 8 21:53:38 2010
@@ -23,6 +23,7 @@
package org.apache.subversion.javahl;
import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
import java.io.File;
import java.io.FileInputStream;
Modified: subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Wed Dec 8 21:53:38 2010
@@ -23,7 +23,7 @@
package org.apache.subversion.javahl;
import org.apache.subversion.javahl.callback.*;
-import org.apache.subversion.javahl.types.NodeKind;
+import org.apache.subversion.javahl.types.*;
import java.io.File;
import java.io.FileInputStream;
Propchange: subversion/branches/performance/subversion/include/private/svn_file_handle_cache.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 8 21:53:38 2010
@@ -1 +1 @@
-/subversion/trunk/subversion/include/private/svn_file_handle_cache.h:962911-1027198
+/subversion/trunk/subversion/include/private/svn_file_handle_cache.h:962911-1027198,1039498-1043512
Propchange: subversion/branches/performance/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 8 21:53:38 2010
@@ -1 +1 @@
-/subversion/trunk/subversion/include/private/svn_temp_serializer.h:962911-1027198
+/subversion/trunk/subversion/include/private/svn_temp_serializer.h:962911-1027198,1039498-1043512
Modified: subversion/branches/performance/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/private/svn_wc_private.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/performance/subversion/include/private/svn_wc_private.h Wed Dec 8 21:53:38 2010
@@ -706,6 +706,21 @@ svn_wc__node_get_schedule(svn_wc_schedul
const char *local_abspath,
apr_pool_t *scratch_pool);
+/**
+ * Helper function which fetches all the relevant information for
+ * libsvn_client/merge.c:get_mergeinfo_walk_cb(). This combines several
+ * svn_wc__db_read_info() calls into one, limiting the number of database
+ * accesses, and, more importantly, system calls.
+ */
+svn_error_t *
+svn_wc__get_mergeinfo_walk_info(svn_boolean_t *is_present,
+ svn_boolean_t *is_deleted,
+ svn_boolean_t *is_absent,
+ svn_depth_t *depth,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
Modified: subversion/branches/performance/subversion/include/svn_checksum.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_checksum.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_checksum.h (original)
+++ subversion/branches/performance/subversion/include/svn_checksum.h Wed Dec 8 21:53:38 2010
@@ -121,9 +121,11 @@ svn_checksum_to_cstring_display(const sv
/** Return the hex representation of @a checksum, allocating the
* string in @a pool. If @a checksum->digest is all zeros (that is,
- * 0, not '0'), then return NULL.
+ * 0, not '0') then return NULL. In 1.7+, @a checksum may be NULL
+ * and NULL will be returned in that case.
*
* @since New in 1.6.
+ * @note Passing NULL for @a checksum in 1.6 will cause a segfault.
*/
const char *
svn_checksum_to_cstring(const svn_checksum_t *checksum,
Modified: subversion/branches/performance/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_client.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_client.h (original)
+++ subversion/branches/performance/subversion/include/svn_client.h Wed Dec 8 21:53:38 2010
@@ -1000,8 +1000,11 @@ svn_client_create_context(svn_client_ctx
* converting them to UTF-8, followed by targets from @a known_targets
* (which might come from, for example, the "--targets" command line option).
*
- * On each URL target, do some IRI-to-URI encoding and some auto-escaping.
- * On each local path, canonicalize case and path separators.
+ * Process each target in one of the following ways. For a repository-
+ * relative URL: resolve to a full URL, contacting the repository if
+ * necessary to do so, and then treat as a full URL. For a URL: do some
+ * IRI-to-URI encoding and some auto-escaping, and canonicalize. For a
+ * local path: canonicalize case and path separators.
*
* Allocate @a *targets_p and its elements in @a pool.
*
Modified: subversion/branches/performance/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_dirent_uri.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/performance/subversion/include/svn_dirent_uri.h Wed Dec 8 21:53:38 2010
@@ -42,14 +42,21 @@
* Examples: "file", "dir/file", "dir/subdir/../file"
* But not: "/file", "http://server/file"
*
+ * - a Subversion filesystem path (fspath), otherwise known as a path
+ * within a repository, is a path relative to the root of the repository
+ * filesystem, that starts with a slash ("/"). The rules for a fspath
+ * are the same as for a relpath except for the leading '/'. A fspath
+ * never ends with '/' except when the whole path is just '/'.
+ *
+ * The fspath API is private.
+ *
* This distinction is needed because on Windows we have to handle some
* dirents and URIs differently. Since it's not possible to determine from
* the path string if it's a dirent or a URI, it's up to the API user to
* make this choice. See also issue #2028.
*
- * Nearly all the @c svn_dirent_xxx, @c svn_relpath_xxx and @c svn_uri_xxx
- * functions expect paths passed into them to be in canonical form. The only
- * functions which do *not* have such expectations are:
+ * All of these functions expect paths passed into them to be in canonical
+ * form, except:
*
* - @c svn_dirent_canonicalize()
* - @c svn_dirent_is_canonical()
@@ -61,10 +68,12 @@
* - @c svn_relpath_local_style()
* - @c svn_uri_canonicalize()
* - @c svn_uri_is_canonical()
+ * - @c svn_fspath__is_canonical()
*
- * Code that works with repository paths should always use repository
- * root based relative paths (relpaths), or uris if it has to specify the
- * repository itself too.
+ * Code that works with a path-in-repository should use, in order of
+ * preference: a relpath (preferred), or a fspath (widely used by legacy
+ * code), or a relative URI (not recommended except in the context of
+ * splitting or joining to a full URL).
*
* All code that works with local files, MUST USE the dirent apis.
*
@@ -812,13 +821,6 @@ svn_uri_get_file_url_from_dirent(const c
apr_pool_t *pool);
-/**************************************************************************
- * A private API for Subversion filesystem paths, otherwise known as paths
- * within a repository, that start with a '/'. The rules for a fspath are
- * the same as for a relpath except for the leading '/'. A fspath never
- * ends with '/' except when the whole path is just '/'.
- **************************************************************************/
-
/** Return TRUE iff @a fspath is canonical.
* @a fspath need not be canonical, of course.
*
Modified: subversion/branches/performance/subversion/include/svn_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_editor.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_editor.h (original)
+++ subversion/branches/performance/subversion/include/svn_editor.h Wed Dec 8 21:53:38 2010
@@ -198,7 +198,7 @@ extern "C" {
*
* - @b Complete/Abort: The driver will end transmission by calling \n
* svn_editor_complete() if successful, or \n
- * svn_editor_abort() if an error or cancellation occured.
+ * svn_editor_abort() if an error or cancellation occurred.
* \n\n
*
* <h3>Driving Order Restrictions</h3>
Modified: subversion/branches/performance/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_io.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_io.h (original)
+++ subversion/branches/performance/subversion/include/svn_io.h Wed Dec 8 21:53:38 2010
@@ -692,8 +692,13 @@ svn_error_t *
svn_io_file_flush_to_disk(apr_file_t *file,
apr_pool_t *pool);
-/** Copy file @a file from location @a src_path to location @a dest_path.
- * Use @a pool for memory allocations.
+/** Copy the file whose basename (or relative path) is @a file within
+ * directory @a src_path to the same basename (or relative path) within
+ * directory @a dest_path. Overwrite the destination file if it already
+ * exists. The destination directory (including any directory
+ * components in @a name) must already exist. Set the destination
+ * file's permissions to match those of the source. Use @a pool for
+ * memory allocations.
*/
svn_error_t *
svn_io_dir_file_copy(const char *src_path,
Modified: subversion/branches/performance/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_path.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_path.h (original)
+++ subversion/branches/performance/subversion/include/svn_path.h Wed Dec 8 21:53:38 2010
@@ -65,10 +65,9 @@ extern "C" {
/** Convert @a path from the local style to the canonical internal style.
*
- * New code should use either svn_dirent_internal_style() (for local paths) or
- * svn_relpath_internal_style() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_internal_style() or
+ * svn_relpath_internal_style().
*/
SVN_DEPRECATED
const char *
@@ -76,10 +75,9 @@ svn_path_internal_style(const char *path
/** Convert @a path from the canonical internal style to the local style.
*
- * New code should use either svn_dirent_local_style() (for local paths) or
- * svn_relpath_local_style() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_local_style() or
+ * svn_relpath_local_style().
*/
SVN_DEPRECATED
const char *
@@ -109,10 +107,9 @@ svn_path_local_style(const char *path, a
* @a component won't be detected. An absolute URI can only be used
* for the base.
*
- * New code should use either svn_dirent_join() (for local paths) or
- * svn_uri_join() (for urls) or svn_relpath_join() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_join(), svn_uri_join(),
+ * svn_relpath_join() or svn_fspath__join().
*/
SVN_DEPRECATED
char *
@@ -129,10 +126,10 @@ svn_path_join(const char *base, const ch
* This function does not support URLs.
*
* See svn_path_join() for further notes about joining paths.
- *
- * New code should use svn_dirent_join_many() instead.
- *
+ *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * For new code, consider using svn_dirent_join_many() or a sequence of
+ * calls to one of the *_join() functions.
*/
SVN_DEPRECATED
char *
@@ -151,10 +148,9 @@ svn_path_join_many(apr_pool_t *pool, con
*
* @note If an empty string is passed, then an empty string will be returned.
*
- * New code should use either svn_dirent_basename() (for local paths) or
- * svn_uri_basename() (for urls) or svn_relpath_basename (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_basename(), svn_uri_basename(),
+ * svn_relpath_basename() or svn_fspath__basename().
*/
SVN_DEPRECATED
char *
@@ -166,10 +162,9 @@ svn_path_basename(const char *path, apr_
*
* The returned dirname will be allocated in @a pool.
*
- * New code should use either svn_dirent_dirname() (for local paths) or
- * svn_uri_dirname() (for urls) or svn_relpath_dirname() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_dirname(), svn_uri_dirname(),
+ * svn_relpath_dirname() or svn_fspath__dirname().
*/
SVN_DEPRECATED
char *
@@ -239,10 +234,9 @@ svn_path_remove_components(svn_stringbuf
* - <pre>"bar" ==> "" and "bar"</pre>
* - <pre>"" ==> "" and ""</pre>
*
- * New code should use either svn_dirent_split() (for local paths) or
- * svn_uri_split() (for urls) or svn_relpath_split() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_split(), svn_uri_split(),
+ * svn_relpath_split() or svn_fspath__split().
*/
SVN_DEPRECATED
void
@@ -259,6 +253,7 @@ svn_path_split(const char *path,
int
svn_path_is_empty(const char *path);
+
#ifndef SVN_DIRENT_URI_H
/* This declaration has been moved to svn_dirent_uri.h, and remains
here only for compatibility reasons. */
@@ -266,6 +261,7 @@ svn_boolean_t
svn_dirent_is_root(const char *dirent, apr_size_t len);
#endif /* SVN_DIRENT_URI_H */
+
/** Return a new path (or URL) like @a path, but transformed such that
* some types of path specification redundancies are removed.
*
@@ -279,11 +275,9 @@ svn_dirent_is_root(const char *dirent, a
* The returned path may be statically allocated, equal to @a path, or
* allocated from @a pool.
*
- * New code should use either svn_dirent_canonicalize() (for local paths) or
- * svn_uri_canonicalize() (for urls) or svn_relpath_canonicalize() (for
- * relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_canonicalize(), svn_uri_canonicalize(),
+ * svn_relpath_canonicalize() or svn_fspath__canonicalize().
*/
SVN_DEPRECATED
const char *
@@ -292,12 +286,10 @@ svn_path_canonicalize(const char *path,
/** Return @c TRUE iff path is canonical. Use @a pool for temporary
* allocations.
*
- * New code should use either svn_dirent_is_canonical() (for local paths) or
- * svn_uri_is_canonical() (for urls) or svn_relpath_is_canonical() (for
- * relative paths).
- *
* @since New in 1.5.
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_is_canonical(), svn_uri_is_canonical(),
+ * svn_relpath_is_canonical() or svn_fspath__is_canonical().
*/
SVN_DEPRECATED
svn_boolean_t
@@ -321,11 +313,10 @@ svn_path_compare_paths(const char *path1
* different resources), and (b) share a common ancestor in their path
* component, i.e. 'protocol://' is not a sufficient ancestor.
*
- * New code should use either svn_dirent_get_longest_ancestor()
- * (for local paths) or svn_uri_get_longest_ancestor() (for urls)
- * or svn_relpath_get_longest_ancestor() (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_get_longest_ancestor(),
+ * svn_uri_get_longest_ancestor(), svn_relpath_get_longest_ancestor() or
+ * svn_fspath__get_longest_ancestor().
*/
SVN_DEPRECATED
char *
@@ -339,9 +330,8 @@ svn_path_get_longest_ancestor(const char
* @a relative may be a URL, in which case no attempt is made to convert it,
* and a copy of the URL is returned.
*
- * New code should use svn_dirent_get_absolute() instead.
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_get_absolute() on a non-URL input.
*/
SVN_DEPRECATED
svn_error_t *
@@ -356,6 +346,8 @@ svn_path_get_absolute(const char **pabso
* a file, since directories do not normally vanish.
*
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should implement the required logic directly; no direct
+ * replacement is provided.
*/
SVN_DEPRECATED
svn_error_t *
@@ -392,13 +384,12 @@ svn_path_split_if_file(const char *path,
* If there are no items in @a targets, set @a *pcommon and (if
* applicable) @a *pcondensed_targets to @c NULL.
*
- * New code should use either svn_dirent_condense_targets() (for local paths)
- * or svn_uri_condense_targets() (for urls).
- *
* @note There is no guarantee that @a *pcommon is within a working
* copy.
*
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_condense_targets() or
+ * svn_uri_condense_targets().
*/
SVN_DEPRECATED
svn_error_t *
@@ -519,11 +510,9 @@ svn_path_is_dotpath_present(const char *
* in which case a pointer into @a path2 will be returned to
* identify the remainder path.
*
- * New code should use either svn_dirent_is_child() (for local paths) or
- * svn_uri_is_child() (for urls) or svn_relpath_is_child()
- * (for relative paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_is_child(), svn_uri_is_child(),
+ * svn_relpath_is_child() or svn_fspath__is_child().
*/
SVN_DEPRECATED
const char *
@@ -534,11 +523,9 @@ svn_path_is_child(const char *path1, con
*
* @since New in 1.3.
*
- * New code should use either svn_dirent_is_ancestor() (for local paths) or
- * svn_uri_is_ancestor() (for urls) or svn_relpath_is_ancestor() (for relative
- * paths).
- *
* @deprecated Provided for backward compatibility with the 1.6 API.
+ * New code should use svn_dirent_is_ancestor(), svn_uri_is_ancestor(),
+ * svn_relpath_is_ancestor() or svn_fspath__is_ancestor().
*/
SVN_DEPRECATED
svn_boolean_t
Modified: subversion/branches/performance/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_types.h?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_types.h (original)
+++ subversion/branches/performance/subversion/include/svn_types.h Wed Dec 8 21:53:38 2010
@@ -71,22 +71,44 @@ extern "C" {
*/
typedef struct svn_error_t
{
- /** APR error value, possibly SVN_ custom err */
+ /** APR error value; possibly an SVN_ custom error code (see
+ * `svn_error_codes.h' for a full listing).
+ */
apr_status_t apr_err;
- /** details from producer of error */
+ /** Details from the producer of error.
+ *
+ * Note that if this error was generated by Subversion's API, you'll
+ * probably want to use svn_err_best_message() to get a single
+ * decriptive string for this error chain (see the @a child member)
+ * or svn_handle_error2() to print the error chain in full. This is
+ * because Subversion's API functions sometimes add many links to
+ * the error chain that lack details (used only to produce virtual
+ * stack traces). (Use svn_error_purge_tracing() to remove those
+ * trace-only links from the error chain.)
+ */
const char *message;
- /** ptr to the error we "wrap" */
+ /** Pointer to the error we "wrap" (may be @c NULL). Via this
+ * member, individual error object can be strung together into an
+ * "error chain".
+ */
struct svn_error_t *child;
- /** The pool holding this error and any child errors it wraps */
+ /** The pool in which this error object is allocated. (If
+ * Subversion's APIs are used to manage error chains, then this pool
+ * will contain the whole error chain of which this object is a
+ * member.) */
apr_pool_t *pool;
- /** Source file where the error originated. Only used iff @c SVN_DEBUG. */
+ /** Source file where the error originated (iff @c SVN_DEBUG;
+ * undefined otherwise).
+ */
const char *file;
- /** Source line where the error originated. Only used iff @c SVN_DEBUG. */
+ /** Source line where the error originated (iff @c SVN_DEBUG;
+ * undefined otherwise).
+ */
long line;
} svn_error_t;
Modified: subversion/branches/performance/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/add.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/add.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/add.c Wed Dec 8 21:53:38 2010
@@ -673,16 +673,6 @@ mkdir_urls(const apr_array_header_t *url
const char *common;
int i;
- /* Early exit when there is a mix of URLs and local paths. */
- for (i = 0; i < urls->nelts; i++)
- {
- const char *url = APR_ARRAY_IDX(urls, i, const char *);
- if (! svn_path_is_url(url))
- return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("Illegal repository URL '%s'"),
- url);
- }
-
/* Find any non-existent parent directories */
if (make_parents)
{
@@ -875,9 +865,28 @@ svn_client_mkdir4(const apr_array_header
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
+ svn_boolean_t wc_present = FALSE, url_present = FALSE;
+ int i;
+
if (! paths->nelts)
return SVN_NO_ERROR;
+ /* Check to see if at least one of our paths is a working copy
+ path or a repository url. */
+ for (i = 0; i < paths->nelts; ++i)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+ if (! svn_path_is_url(path))
+ wc_present = TRUE;
+ else
+ url_present = TRUE;
+ }
+
+ if (url_present && wc_present)
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Cannot mix repository and working copy "
+ "targets"));
+
if (svn_path_is_url(APR_ARRAY_IDX(paths, 0, const char *)))
{
SVN_ERR(mkdir_urls(paths, make_parents, revprop_table, commit_callback,
@@ -887,7 +896,6 @@ svn_client_mkdir4(const apr_array_header
{
/* This is a regular "mkdir" + "svn add" */
apr_pool_t *subpool = svn_pool_create(pool);
- int i;
for (i = 0; i < paths->nelts; i++)
{
Modified: subversion/branches/performance/subversion/libsvn_client/checkout.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/checkout.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/checkout.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/checkout.c Wed Dec 8 21:53:38 2010
@@ -92,7 +92,7 @@ svn_client__checkout_internal(svn_revnum
/* Sanity check. Without these, the checkout is meaningless. */
SVN_ERR_ASSERT(local_abspath != NULL);
- SVN_ERR_ASSERT(url != NULL);
+ SVN_ERR_ASSERT(svn_uri_is_canonical(url, pool));
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
/* Fulfill the docstring promise of svn_client_checkout: */
@@ -101,9 +101,6 @@ svn_client__checkout_internal(svn_revnum
&& (revision->kind != svn_opt_revision_head))
return svn_error_create(SVN_ERR_CLIENT_BAD_REVISION, NULL, NULL);
- /* Canonicalize the URL. */
- url = svn_uri_canonicalize(url, pool);
-
{
svn_boolean_t have_repos_root_url;
svn_boolean_t have_repos_uuid;
Modified: subversion/branches/performance/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/copy.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/copy.c Wed Dec 8 21:53:38 2010
@@ -1944,10 +1944,19 @@ try_copy(const apr_array_header_t *sourc
svn_pool_clear(iterpool);
if (src_is_url)
- pair->src_abspath_or_url = apr_pstrdup(pool, source->path);
+ {
+ pair->src_abspath_or_url = apr_pstrdup(pool, source->path);
+ src_basename = svn_uri_basename(pair->src_abspath_or_url,
+ iterpool);
+ }
else
- SVN_ERR(svn_dirent_get_absolute(&pair->src_abspath_or_url,
- source->path, pool));
+ {
+ SVN_ERR(svn_dirent_get_absolute(&pair->src_abspath_or_url,
+ source->path, pool));
+ src_basename = svn_dirent_basename(pair->src_abspath_or_url,
+ iterpool);
+ }
+
pair->src_op_revision = *source->revision;
pair->src_peg_revision = *source->peg_revision;
@@ -1956,12 +1965,7 @@ try_copy(const apr_array_header_t *sourc
src_is_url,
TRUE,
iterpool));
- if (src_is_url)
- src_basename = svn_uri_basename(pair->src_abspath_or_url,
- iterpool);
- else
- src_basename = svn_dirent_basename(pair->src_abspath_or_url,
- iterpool);
+
if (srcs_are_urls && ! dst_is_url)
src_basename = svn_path_uri_decode(src_basename, iterpool);
Modified: subversion/branches/performance/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/diff.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/diff.c Wed Dec 8 21:53:38 2010
@@ -448,7 +448,7 @@ print_git_diff_header_modified(svn_strea
/* Print a git diff header showing the OPERATION to the stream OS using
* HEADER_ENCODING. Return suitable diff labels for the git diff in *LABEL1
- * and *LABEL2. PATH is the path being diffed, ORIG_TARGET1 and ORIG_TARGET2
+ * and *LABEL2. REPOS_RELPATH1 and REPOS_RELPATH2 are relative to reposroot.
* are the paths passed to the original diff command. REV1 and REV2 are
* revisions being diffed. COPYFROM_PATH indicates where the diffed item
* was copied from. RA_SESSION and WC_CTX are used to adjust paths in the
@@ -460,9 +460,8 @@ static svn_error_t *
print_git_diff_header(svn_stream_t *os,
const char **label1, const char **label2,
svn_diff_operation_kind_t operation,
- const char *path,
- const char *path1,
- const char *path2,
+ const char *repos_relpath1,
+ const char *repos_relpath2,
svn_revnum_t rev1,
svn_revnum_t rev2,
const char *copyfrom_path,
@@ -472,18 +471,6 @@ print_git_diff_header(svn_stream_t *os,
const char *wc_root_abspath,
apr_pool_t *scratch_pool)
{
- const char *repos_relpath1;
- const char *repos_relpath2;
-
- SVN_ERR(adjust_relative_to_repos_root(&repos_relpath1, path, path1,
- ra_session, wc_ctx,
- wc_root_abspath,
- scratch_pool));
- SVN_ERR(adjust_relative_to_repos_root(&repos_relpath2, path, path2,
- ra_session, wc_ctx,
- wc_root_abspath,
- scratch_pool));
-
if (operation == svn_diff_op_deleted)
{
SVN_ERR(print_git_diff_header_deleted(os, header_encoding,
@@ -574,10 +561,6 @@ display_prop_diffs(const apr_array_heade
const char *path1 = apr_pstrdup(pool, orig_path1);
const char *path2 = apr_pstrdup(pool, orig_path2);
- /* If we're creating a diff on the wc root, path would be empty. */
- if (path[0] == '\0')
- path = apr_psprintf(pool, ".");
-
if (use_git_diff_format)
{
SVN_ERR(adjust_relative_to_repos_root(&path1, path, orig_path1,
@@ -590,6 +573,10 @@ display_prop_diffs(const apr_array_heade
pool));
}
+ /* If we're creating a diff on the wc root, path would be empty. */
+ if (path[0] == '\0')
+ path = apr_psprintf(pool, ".");
+
if (show_diff_header)
{
const char *label1;
@@ -618,9 +605,8 @@ display_prop_diffs(const apr_array_heade
os = svn_stream_from_aprfile2(file, TRUE, pool);
SVN_ERR(print_git_diff_header(os, &label1, &label2,
- svn_diff_op_modified, path,
- orig_path1, orig_path2,
- rev1, rev2, NULL,
+ svn_diff_op_modified,
+ path1, path2, rev1, rev2, NULL,
encoding, ra_session, wc_ctx,
wc_root_abspath, pool));
SVN_ERR(svn_stream_close(os));
@@ -989,16 +975,25 @@ diff_content_changed(const char *path,
path, equal_string));
if (diff_cmd_baton->use_git_diff_format)
- SVN_ERR(print_git_diff_header(os, &label1, &label2, operation,
- path, diff_cmd_baton->orig_path_1,
- diff_cmd_baton->orig_path_2,
- rev1, rev2,
- copyfrom_path,
- diff_cmd_baton->header_encoding,
- diff_cmd_baton->ra_session,
- diff_cmd_baton->wc_ctx,
- diff_cmd_baton->wc_root_abspath,
- subpool));
+ {
+ const char *tmp_path1, *tmp_path2;
+ SVN_ERR(adjust_relative_to_repos_root(
+ &tmp_path1, path, diff_cmd_baton->orig_path_1,
+ diff_cmd_baton->ra_session, diff_cmd_baton->wc_ctx,
+ diff_cmd_baton->wc_root_abspath, subpool));
+ SVN_ERR(adjust_relative_to_repos_root(
+ &tmp_path2, path, diff_cmd_baton->orig_path_2,
+ diff_cmd_baton->ra_session, diff_cmd_baton->wc_ctx,
+ diff_cmd_baton->wc_root_abspath, subpool));
+ SVN_ERR(print_git_diff_header(os, &label1, &label2, operation,
+ tmp_path1, tmp_path2, rev1, rev2,
+ copyfrom_path,
+ diff_cmd_baton->header_encoding,
+ diff_cmd_baton->ra_session,
+ diff_cmd_baton->wc_ctx,
+ diff_cmd_baton->wc_root_abspath,
+ subpool));
+ }
/* Output the actual diff */
if (svn_diff_contains_diffs(diff) || diff_cmd_baton->force_empty)
Modified: subversion/branches/performance/subversion/libsvn_client/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/info.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/info.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/info.c Wed Dec 8 21:53:38 2010
@@ -156,8 +156,7 @@ build_info_for_entry(svn_info_t **info,
SVN_ERR(svn_wc__node_get_base_checksum(&checksum, wc_ctx, local_abspath,
pool, pool));
- if (checksum)
- tmpinfo->checksum = svn_checksum_to_cstring(checksum, pool);
+ tmpinfo->checksum = svn_checksum_to_cstring(checksum, pool);
SVN_ERR(svn_wc__node_get_depth(&tmpinfo->depth, wc_ctx,
local_abspath, pool));
Modified: subversion/branches/performance/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/merge.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/merge.c Wed Dec 8 21:53:38 2010
@@ -5592,18 +5592,16 @@ get_mergeinfo_walk_cb(const char *local_
/* TODO(#2843) How to deal with a excluded item on merge? */
+ SVN_ERR(svn_wc__get_mergeinfo_walk_info(&is_present, &deleted, &absent,
+ &depth,
+ wb->ctx->wc_ctx, local_abspath,
+ scratch_pool));
+
/* Ignore LOCAL_ABSPATH if its parent thinks it exists, but it is not
actually present. */
- SVN_ERR(svn_wc__node_is_status_present(&is_present, wb->ctx->wc_ctx,
- local_abspath, scratch_pool));
if (!is_present)
return SVN_NO_ERROR;
- SVN_ERR(svn_wc__node_is_status_deleted(&deleted, wb->ctx->wc_ctx,
- local_abspath, scratch_pool));
- SVN_ERR(svn_wc__node_is_status_absent(&absent, wb->ctx->wc_ctx,
- local_abspath, scratch_pool));
-
if (deleted || absent)
{
propval = NULL;
@@ -5627,8 +5625,6 @@ get_mergeinfo_walk_cb(const char *local_
SVN_ERR(svn_wc_read_kind(&kind, wb->ctx->wc_ctx, local_abspath, TRUE,
scratch_pool));
- SVN_ERR(svn_wc__node_get_depth(&depth, wb->ctx->wc_ctx, local_abspath,
- scratch_pool));
immediate_child_dir = ((wb->depth == svn_depth_immediates)
&&(kind == svn_node_dir)
Modified: subversion/branches/performance/subversion/libsvn_client/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/update.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/update.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/update.c Wed Dec 8 21:53:38 2010
@@ -397,10 +397,19 @@ svn_client_update4(apr_array_header_t **
for (i = 0; i < paths->nelts; ++i)
{
+ path = APR_ARRAY_IDX(paths, i, const char *);
+
+ if (svn_path_is_url(path))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), path);
+ }
+
+ for (i = 0; i < paths->nelts; ++i)
+ {
svn_boolean_t sleep;
- svn_boolean_t skipped = FALSE;
svn_error_t *err = SVN_NO_ERROR;
svn_revnum_t result_rev;
+ const char *local_abspath;
path = APR_ARRAY_IDX(paths, i, const char *);
svn_pool_clear(subpool);
@@ -408,57 +417,30 @@ svn_client_update4(apr_array_header_t **
if (ctx->cancel_func && (err = ctx->cancel_func(ctx->cancel_baton)))
break;
- if (svn_path_is_url(path))
- {
- skipped = TRUE;
- }
- else
- {
- const char *local_abspath;
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, subpool));
- err = svn_client__update_internal(&result_rev, local_abspath,
- revision, depth, depth_is_sticky,
- ignore_externals,
- allow_unver_obstructions,
- &sleep, FALSE, make_parents,
- ctx, subpool);
-
- if (err && err->apr_err != SVN_ERR_WC_NOT_WORKING_COPY)
- {
- return svn_error_return(err);
- }
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, subpool));
+ err = svn_client__update_internal(&result_rev, local_abspath,
+ revision, depth, depth_is_sticky,
+ ignore_externals,
+ allow_unver_obstructions,
+ &sleep, FALSE, make_parents,
+ ctx, subpool);
- if (err)
- {
- /* SVN_ERR_WC_NOT_WORKING_COPY: it's not versioned */
- svn_error_clear(err);
- skipped = TRUE;
- }
+ if (err && err->apr_err != SVN_ERR_WC_NOT_WORKING_COPY)
+ {
+ return svn_error_return(err);
}
- if (skipped)
+ if (err)
{
+ /* SVN_ERR_WC_NOT_WORKING_COPY: it's not versioned */
+ svn_error_clear(err);
result_rev = SVN_INVALID_REVNUM;
if (ctx->notify_func2)
{
svn_wc_notify_t *notify;
-
- if (svn_path_is_url(path))
- {
- /* For some historic reason this user error is supported,
- and must provide correct notifications. */
- notify = svn_wc_create_notify_url(path,
- svn_wc_notify_skip,
- subpool);
- }
- else
- {
- notify = svn_wc_create_notify(path,
- svn_wc_notify_skip,
- subpool);
- }
-
+ notify = svn_wc_create_notify(path,
+ svn_wc_notify_skip,
+ subpool);
(*ctx->notify_func2)(ctx->notify_baton2, notify, subpool);
}
}
Modified: subversion/branches/performance/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_fs/fs-loader.c?rev=1043705&r1=1043704&r2=1043705&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/performance/subversion/libsvn_fs/fs-loader.c Wed Dec 8 21:53:38 2010
@@ -684,7 +684,15 @@ svn_fs_commit_txn(const char **conflict_
SVN_ERR(txn->vtable->commit(conflict_p, new_rev, txn, pool));
#ifdef PACK_AFTER_EVERY_COMMIT
- SVN_ERR(svn_fs_pack(fs_path, NULL, NULL, NULL, NULL, pool));
+ {
+ svn_error_t *err = svn_fs_pack(fs_path, NULL, NULL, NULL, NULL, pool);
+ if (err && err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
+ /* Pre-1.6 filesystem. */
+ svn_error_clear(err);
+ else if (err)
+ /* Real error. */
+ return svn_error_return(err);
+ }
#endif
return SVN_NO_ERROR;