[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-cvs
Subject:    svn commit: r35609 - in branches/svnpatch-diff: . build
From:       Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA () GMail ! Com>
Date:       2009-01-31 0:31:36
Message-ID: 21317388.843001233361896522.JavaMail.httpd () localhost
[Download RAW message or body]

For efficiency reasons, the system has converted the large body of this message into an attachment.

Message-ID: <200901310031.n0V0VbY2017795@svn2.sjc.collab.net>
MIME-Version: 1.0
Received: from localhost ([127.0.0.1])
          by Mail Reader Service (JAMES SMTP Server 2.3.0) with SMTP ID 833
          for <svn@subversion.tigris.org.mrs>;
          Fri, 30 Jan 2009 16:31:36 -0800 (PST)
Received: from cylon2.sjc.collab.net (cylon2.sjc.collab.net [204.16.104.18])
	by sc157-tigr.sjc.collab.net (Postfix) with ESMTP id 2D90B7B0165
	for <svn@subversion.tigris.org>; Fri, 30 Jan 2009 16:31:36 -0800 (PST)
X-IronPort-AV: E=Sophos;i="4.37,354,1231142400";
   d="scan'208";a="23360325"
X-IRONPORT: SCANNED
Received: from svn2.sjc.collab.net (HELO svn.collab.net) ([204.11.125.46])
  by cylon2.sjc.collab.net with ESMTP; 30 Jan 2009 16:31:35 -0800
Received: from svn2.sjc.collab.net (localhost.localdomain [127.0.0.1])
	by svn.collab.net (Postfix) with ESMTP id 1CE651070452
	for <svn@subversion.tigris.org>; Fri, 30 Jan 2009 16:31:41 -0800 (PST)
Received: (from httpd@localhost)
	by svn2.sjc.collab.net (8.13.1/8.13.1/Submit) id n0V0VbY2017795
	for svn@subversion.tigris.org; Fri, 30 Jan 2009 16:31:37 -0800
Date: Fri, 30 Jan 2009 16:31:37 -0800
X-Authentication-Warning: svn2.sjc.collab.net: httpd set sender to \
                arfrever@tigris.org using -f
From: arfrever@tigris.org
To: svn@subversion.tigris.org
Subject: svn commit: r35609 - in branches/svnpatch-diff: . build build/generator \
build/win32 contrib/client-side/svnmerge doc/tools/bin \
subversion/bindings/javahl/native \
subversion/bindings/javahl/src/org/tigris/subversion/javahl \
subversion/bindings/javahl/tests/org/tigris/subversion/javahl \
subversion/bindings/swig/python/tests subversion/include subversion/include/private \
subversion/libsvn_client subversion/libsvn_diff subversion/libsvn_fs \
subversion/libsvn_fs_base subversion/libsvn_fs_base/util subversion/libsvn_fs_fs \
subversion/libsvn_ra subversion/libsvn_ra_neon subversion/libsvn_ra_serf \
subversion/libsvn_ra_svn subversion/libsvn_subr subversion/libsvn_wc subversion/po \
subversion/svn subversion/tests/cmdline subversion/tests/cmdline/svntest \
subversion/tests/libsvn_delta subversion/tests/libsvn_fs subversion/tests/libsvn_subr \
tools/bdb tools/client-side/svnmucc tools/dev tools/dist tools/examples \
                tools/hook-scripts/mailer tools/po www www/images
Content-Type: text/plain; charset=UTF-8
Reply-To: dev@subversion.tigris.org, arfrever@tigris.org
Content-Transfer-Encoding: quoted-printable

Author: arfrever
Date: Fri Jan 30 16:31:36 2009
New Revision: 35609

Log:
On the 'svnpatch-diff' branch:
Merge r35462:35608 from trunk.

Added:
   branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.cpp
      - copied unchanged from r35607, \
trunk/subversion/bindings/javahl/native/CreateJ.cpp  \
                branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.h
      - copied unchanged from r35607, \
trunk/subversion/bindings/javahl/native/CreateJ.h  \
branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java
                
      - copied unchanged from r35607, \
trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java
  branches/svnpatch-diff/tools/dev/find-bad-style.py
      - copied unchanged from r35607, trunk/tools/dev/find-bad-style.py
   branches/svnpatch-diff/tools/dev/min-includes.sh
      - copied unchanged from r35607, trunk/tools/dev/min-includes.sh
Modified:
   branches/svnpatch-diff/   (props changed)
   branches/svnpatch-diff/CHANGES
   branches/svnpatch-diff/autogen.sh
   branches/svnpatch-diff/build/generator/ezt.py
   branches/svnpatch-diff/build/generator/gen_base.py
   branches/svnpatch-diff/build/generator/gen_make.py
   branches/svnpatch-diff/build/generator/gen_msvc_dsp.py
   branches/svnpatch-diff/build/generator/gen_vcnet_vcproj.py
   branches/svnpatch-diff/build/generator/gen_win.py
   branches/svnpatch-diff/build/run_tests.py
   branches/svnpatch-diff/build/transform_sql.py
   branches/svnpatch-diff/build/win32/make_dist.py
   branches/svnpatch-diff/contrib/client-side/svnmerge/svnmerge-migrate-history.py
   branches/svnpatch-diff/doc/tools/bin/find-xsl.py
   branches/svnpatch-diff/gen-make.py
   branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.cpp
  branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.h
   branches/svnpatch-diff/subversion/bindings/javahl/native/EnumMapper.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/InfoCallback.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/ListCallback.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/Notify2.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/SVNAdmin.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.h
   branches/svnpatch-diff/subversion/bindings/javahl/native/StatusCallback.cpp
   branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java
  branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java
  branches/svnpatch-diff/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
  branches/svnpatch-diff/subversion/bindings/swig/python/tests/mergeinfo.py
   branches/svnpatch-diff/subversion/bindings/swig/python/tests/ra.py
   branches/svnpatch-diff/subversion/include/private/svn_skel.h
   branches/svnpatch-diff/subversion/include/private/svn_sqlite.h
   branches/svnpatch-diff/subversion/include/private/svn_utf_private.h
   branches/svnpatch-diff/subversion/include/svn_checksum.h
   branches/svnpatch-diff/subversion/include/svn_client.h
   branches/svnpatch-diff/subversion/include/svn_dirent_uri.h
   branches/svnpatch-diff/subversion/include/svn_mergeinfo.h
   branches/svnpatch-diff/subversion/include/svn_path.h
   branches/svnpatch-diff/subversion/include/svn_props.h
   branches/svnpatch-diff/subversion/include/svn_subst.h
   branches/svnpatch-diff/subversion/include/svn_wc.h
   branches/svnpatch-diff/subversion/libsvn_client/client.h
   branches/svnpatch-diff/subversion/libsvn_client/commit.c
   branches/svnpatch-diff/subversion/libsvn_client/copy.c
   branches/svnpatch-diff/subversion/libsvn_client/deprecated.c
   branches/svnpatch-diff/subversion/libsvn_client/export.c
   branches/svnpatch-diff/subversion/libsvn_client/info.c
   branches/svnpatch-diff/subversion/libsvn_client/log.c
   branches/svnpatch-diff/subversion/libsvn_client/merge.c
   branches/svnpatch-diff/subversion/libsvn_client/mergeinfo.c
   branches/svnpatch-diff/subversion/libsvn_client/prop_commands.c
   branches/svnpatch-diff/subversion/libsvn_client/update.c
   branches/svnpatch-diff/subversion/libsvn_diff/diff_file.c
   branches/svnpatch-diff/subversion/libsvn_fs/fs-loader.c
   branches/svnpatch-diff/subversion/libsvn_fs_base/dag.c
   branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.c
   branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.h
   branches/svnpatch-diff/subversion/libsvn_fs_fs/fs_fs.c
   branches/svnpatch-diff/subversion/libsvn_ra/ra_loader.c
   branches/svnpatch-diff/subversion/libsvn_ra_neon/options.c
   branches/svnpatch-diff/subversion/libsvn_ra_neon/ra_neon.h
   branches/svnpatch-diff/subversion/libsvn_ra_neon/session.c
   branches/svnpatch-diff/subversion/libsvn_ra_serf/ra_serf.h
   branches/svnpatch-diff/subversion/libsvn_ra_serf/serf.c
   branches/svnpatch-diff/subversion/libsvn_ra_serf/util.c
   branches/svnpatch-diff/subversion/libsvn_ra_svn/client.c
   branches/svnpatch-diff/subversion/libsvn_subr/checksum.c
   branches/svnpatch-diff/subversion/libsvn_subr/cmdline.c
   branches/svnpatch-diff/subversion/libsvn_subr/config_impl.h
   branches/svnpatch-diff/subversion/libsvn_subr/deprecated.c
   branches/svnpatch-diff/subversion/libsvn_subr/mergeinfo.c
   branches/svnpatch-diff/subversion/libsvn_subr/skel.c
   branches/svnpatch-diff/subversion/libsvn_subr/sqlite.c
   branches/svnpatch-diff/subversion/libsvn_subr/stream.c
   branches/svnpatch-diff/subversion/libsvn_subr/subst.c
   branches/svnpatch-diff/subversion/libsvn_subr/svn_base64.c
   branches/svnpatch-diff/subversion/libsvn_wc/adm_ops.c
   branches/svnpatch-diff/subversion/libsvn_wc/copy.c
   branches/svnpatch-diff/subversion/libsvn_wc/entries.c
   branches/svnpatch-diff/subversion/libsvn_wc/entries.h
   branches/svnpatch-diff/subversion/libsvn_wc/lock.c
   branches/svnpatch-diff/subversion/libsvn_wc/log.c
   branches/svnpatch-diff/subversion/libsvn_wc/log.h
   branches/svnpatch-diff/subversion/libsvn_wc/merge.c
   branches/svnpatch-diff/subversion/libsvn_wc/props.c
   branches/svnpatch-diff/subversion/libsvn_wc/questions.c
   branches/svnpatch-diff/subversion/libsvn_wc/questions.h
   branches/svnpatch-diff/subversion/libsvn_wc/translate.c
   branches/svnpatch-diff/subversion/libsvn_wc/tree_conflicts.c
   branches/svnpatch-diff/subversion/libsvn_wc/update_editor.c
   branches/svnpatch-diff/subversion/libsvn_wc/wc-metadata.sql
   branches/svnpatch-diff/subversion/libsvn_wc/wc_db.h
   branches/svnpatch-diff/subversion/po/pl.po
   branches/svnpatch-diff/subversion/svn/copy-cmd.c
   branches/svnpatch-diff/subversion/svn/info-cmd.c
   branches/svnpatch-diff/subversion/svn/log-cmd.c
   branches/svnpatch-diff/subversion/svn/main.c
   branches/svnpatch-diff/subversion/svn/util.c
   branches/svnpatch-diff/subversion/tests/cmdline/autoprop_tests.py
   branches/svnpatch-diff/subversion/tests/cmdline/changelist_tests.py
   branches/svnpatch-diff/subversion/tests/cmdline/prop_tests.py
   branches/svnpatch-diff/subversion/tests/cmdline/svnadmin_tests.py
   branches/svnpatch-diff/subversion/tests/cmdline/svnlook_tests.py
   branches/svnpatch-diff/subversion/tests/cmdline/svntest/actions.py
   branches/svnpatch-diff/subversion/tests/cmdline/svntest/main.py
   branches/svnpatch-diff/subversion/tests/cmdline/svntest/tree.py
   branches/svnpatch-diff/subversion/tests/libsvn_delta/window-test.c
   branches/svnpatch-diff/subversion/tests/libsvn_fs/fs-test.c
   branches/svnpatch-diff/subversion/tests/libsvn_subr/mergeinfo-test.c
   branches/svnpatch-diff/tools/bdb/svn-bdb-view.py
   branches/svnpatch-diff/tools/client-side/svnmucc/svnmucc.c
   branches/svnpatch-diff/tools/dev/contribulyze.py
   branches/svnpatch-diff/tools/dev/gen-javahl-errors.py
   branches/svnpatch-diff/tools/dev/graph-dav-servers.py
   branches/svnpatch-diff/tools/dev/normalize-dump.py
   branches/svnpatch-diff/tools/dev/trails.py
   branches/svnpatch-diff/tools/dev/which-error.py
   branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh
   branches/svnpatch-diff/tools/examples/svnshell.py
   branches/svnpatch-diff/tools/hook-scripts/mailer/mailer.py
   branches/svnpatch-diff/tools/po/l10n-report.py
   branches/svnpatch-diff/www/commercial-support.html
   branches/svnpatch-diff/www/images/svn-dav-securityspace-survey.png
   branches/svnpatch-diff/www/links.html
   branches/svnpatch-diff/www/svn-dav-securityspace-survey.html
   branches/svnpatch-diff/www/svn_1.6_releasenotes.html

Merged:
   /trunk:r35463-35608

Modified: branches/svnpatch-diff/CHANGES
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/CHANGES?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/CHANGES	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/CHANGES	Fri Jan 30 16:31:36 2009	(r35609)
@@ -19,9 +19,12 @@ http://svn.collab.net/repos/svn/tags/1.6
     * commit-email.pl: Deprecated; use mailer.py instead (r31755,r31767)
 
  Developer-visible changes:
- * General:
- * API changes:
- * Bindings
+  - General:
+    * serf 0.3.0 required (r35586)
+
+  - API changes:
+
+  - Bindings:
 
 
 Version 1.5.5

Modified: branches/svnpatch-diff/autogen.sh
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/autogen.sh?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/autogen.sh	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/autogen.sh	Fri Jan 30 16:31:36 2009	(r35609)
@@ -112,7 +112,11 @@ if test -z "$PYTHON"; then
 fi
 
 # Transform sql files into header files
-$PYTHON build/transform_sql.py subversion/libsvn_fs_fs/rep-cache-db.sql
+for file in subversion/libsvn_fs_fs/rep-cache-db.sql; do
+  if test $file -nt $file.h; then
+    $PYTHON build/transform_sql.py $file
+  fi
+done
 
 # Compile SWIG headers into standalone C files if we are in release mode
 if test -n "$RELEASE_MODE"; then

Modified: branches/svnpatch-diff/build/generator/ezt.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/ezt.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/ezt.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/build/generator/ezt.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -365,7 +365,8 @@ class Template:
     else:
       fp.write(value)
 
-  def _cmd_format(self, (valref, args), fp, ctx):
+  def _cmd_format(self, valref_args, fp, ctx):
+    (valref, args) = valref_args
     fmt = _get_value(valref, ctx)
     parts = _re_subst.split(fmt)
     for i in range(len(parts)):
@@ -378,7 +379,8 @@ class Template:
           piece = '<undef>'
       fp.write(piece)
 
-  def _cmd_include(self, (valref, reader), fp, ctx):
+  def _cmd_include(self, valref_reader, fp, ctx):
+    (valref, reader) = valref_reader
     fname = _get_value(valref, ctx)
     ### note: we don't have the set of for_names to pass into this parse.
     ### I don't think there is anything to do but document it.
@@ -479,7 +481,7 @@ def _prepare_ref(refname, for_names, fil
       break
   return refname, start, rest
 
-def _get_value((refname, start, rest), ctx):
+def _get_value(refname_start_rest, ctx):
   """(refname, start, rest) -> a prepared `value reference' (see above).
   ctx -> an execution context instance.
 
@@ -487,6 +489,7 @@ def _get_value((refname, start, rest), c
   for blocks take precedence over data dictionary members with the
   same name.
   """
+  (refname, start, rest) = refname_start_rest
   if rest is None:
     # it was a string constant
     return start

Modified: branches/svnpatch-diff/build/generator/gen_base.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/gen_base.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/gen_base.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/build/generator/gen_base.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -101,9 +101,8 @@ class GeneratorBase:
     self.target_dirs = []    # Directories in which files are built
     self.manpages = []       # Manpages
 
-    # Collect the build targets
-    parser_sections = parser.sections()
-    parser_sections.sort() # Have a reproducible ordering
+    # Collect the build targets and have a reproducible ordering
+    parser_sections = sorted(parser.sections())
     for section_name in parser_sections:
       if section_name in self.skip_sections:
         continue
@@ -373,8 +372,7 @@ class TargetLinked(Target):
     # the specified install area depends upon this target
     self.gen_obj.graph.add(DT_INSTALL, self.install, self)
 
-    sources = _collect_paths(self.sources or '*.c' or '*.cpp', self.path)
-    sources.sort()
+    sources = sorted(_collect_paths(self.sources or '*.c' or '*.cpp', self.path))
 
     for srcs, reldir in sources:
       for src in srcs.split(" "):
@@ -494,8 +492,7 @@ class TargetI18N(Target):
   def add_dependencies(self):
     self.gen_obj.graph.add(DT_INSTALL, self.install, self)
 
-    sources = _collect_paths(self.sources or '*.po', self.path)
-    sources.sort()
+    sources = sorted(_collect_paths(self.sources or '*.po', self.path))
 
     for src, reldir in sources:
       if src[-3:] == '.po':

Modified: branches/svnpatch-diff/build/generator/gen_make.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/gen_make.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/gen_make.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/build/generator/gen_make.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -60,7 +60,7 @@ class Generator(gen_base.GeneratorBase):
 
     # ensure consistency between runs
     install_deps.sort()
-    install_sources.sort(lambda s1, s2: cmp(s1.name, s2.name))
+    install_sources.sort(key = lambda s: s.name)
 
     ########################################
     self.begin_section('Global make variables')
@@ -155,8 +155,7 @@ class Generator(gen_base.GeneratorBase):
     self.begin_section('SWIG autogen rules')
 
     # write dependencies and build rules for generated .c files
-    swig_c_deps = self.graph.get_deps(gen_base.DT_SWIG_C)
-    swig_c_deps.sort(lambda (t1, s1), (t2, s2): cmp(t1.filename, t2.filename))
+    swig_c_deps = sorted(self.graph.get_deps(gen_base.DT_SWIG_C), key = lambda t: \
t[0].filename)  
     swig_lang_deps = {}
     for lang in self.swig.langs:
@@ -450,8 +449,7 @@ class Generator(gen_base.GeneratorBase):
     # write dependencies and build rules (when not using suffix rules)
     # for all other generated files which will not be installed
     # (or will be installed, but not by the main generated build)
-    obj_deps = self.graph.get_deps(gen_base.DT_OBJECT)
-    obj_deps.sort(lambda (t1, s1), (t2, s2): cmp(t1.filename, t2.filename))
+    obj_deps = sorted(self.graph.get_deps(gen_base.DT_OBJECT), key = lambda t: \
t[0].filename)  
     for objname, sources in obj_deps:
       deps = ' '.join(map(str, sources))

Modified: branches/svnpatch-diff/build/generator/gen_msvc_dsp.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/gen_msvc_dsp.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/gen_msvc_dsp.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/build/generator/gen_msvc_dsp.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -120,7 +120,7 @@ class Generator(gen_win.WinGeneratorBase
                             dsp=fname.replace(os.sep, '\\'),
                             depends=dep_names))
 
-    targets.sort(lambda x, y: cmp(x.name, y.name))
+    targets.sort(key = lambda x: x.name)
     data = {
       'targets' : targets,
       }

Modified: branches/svnpatch-diff/build/generator/gen_vcnet_vcproj.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/gen_vcnet_vcproj.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/gen_vcnet_vcproj.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/build/generator/gen_vcnet_vcproj.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -226,7 +226,7 @@ class Generator(gen_win.WinGeneratorBase
       target.path = target.path.rstrip('"')
       target.path = target.path.lstrip('"')
 
-    targets.sort(lambda x, y: cmp(x.name, y.name))
+    targets.sort(key = lambda x: x.name)
 
     configs = [ ]
     for i in range(len(self.configs)):
@@ -234,8 +234,7 @@ class Generator(gen_win.WinGeneratorBase
       configs.append(gen_win.ProjectItem(name=self.configs[i], index=i))
 
     # sort the values for output stability.
-    guidvals = list(guids.values())
-    guidvals.sort()
+    guidvals = sorted(guids.values())
 
     data = {
       'version': self.vsnet_version,

Modified: branches/svnpatch-diff/build/generator/gen_win.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/generator/gen_win.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/generator/gen_win.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/build/generator/gen_win.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -340,7 +340,7 @@ class WinGeneratorBase(GeneratorBase):
     install_targets.extend(dll_targets)
 
     # sort these for output stability, to watch out for regressions.
-    install_targets.sort(lambda t1, t2: cmp(t1.name, t2.name))
+    install_targets.sort(key = lambda t: t.name)
     return install_targets
 
   def create_fake_target(self, dep):
@@ -524,7 +524,7 @@ class WinGeneratorBase(GeneratorBase):
                                  custom_build=None, user_deps=[],
                                  extension=''))
 
-    sources.sort(lambda x, y: cmp(x.path, y.path))
+    sources.sort(key = lambda x: x.path)
     return sources
 
   def get_output_name(self, target):
@@ -664,7 +664,7 @@ class WinGeneratorBase(GeneratorBase):
     else:
       raise NotImplementedError
 
-    deps.sort(lambda d1, d2: cmp(d1.name, d2.name))
+    deps.sort(key = lambda d: d.name)
     return deps
 
   def get_direct_depends(self, target):

Modified: branches/svnpatch-diff/build/run_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/run_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/run_tests.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/build/run_tests.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -69,10 +69,8 @@ class TestHarness:
     'Run all test programs given in LIST.'
     self._open_log('w')
     failed = 0
-    cnt = 0
-    for prog in list:
+    for cnt, prog in enumerate(list):
       failed = self._run_test(prog, cnt, len(list)) or failed
-      cnt += 1
     self._open_log('r')
     log_lines = self.log.readlines()
     # Print summaries from least interesting to most interesting.
@@ -86,11 +84,27 @@ class TestHarness:
       print('At least one test XFAILED, checking ' + self.logfile)
       for x in xfailed:
         sys.stdout.write(x)
-    if failed:
+    failed_list = [x for x in log_lines if x[:6] == 'FAIL: ']
+    if failed_list:
       print('At least one test FAILED, checking ' + self.logfile)
-      for x in log_lines:
-        if x[:6] in ('FAIL: ', 'XPASS:'):
-          sys.stdout.write(x)
+      for x in failed_list:
+        sys.stdout.write(x)
+    xpassed = [x for x in log_lines if x[:6] == 'XPASS:']
+    if xpassed:
+      print('At least one test XPASSED, checking ' + self.logfile)
+      for x in xpassed:
+        sys.stdout.write(x)
+    if skipped or xfailed or failed_list or xpassed:
+      print('Summary of test results:')
+      if skipped:
+        print('  %d test%s SKIPPED' % (len(skipped), 's'*min(len(skipped), 1)))
+      if xfailed:
+        print('  %d test%s XFAILED' % (len(xfailed), 's'*min(len(xfailed), 1)))
+      if failed_list:
+        print('  %d test%s FAILED' % (len(failed_list),
+                                      's'*min(len(failed_list), 1)))
+      if xpassed:
+        print('  %d test%s XPASSED' % (len(xpassed), 's'*min(len(xpassed), 1)))
     self._close_log()
     return failed
 

Modified: branches/svnpatch-diff/build/transform_sql.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/transform_sql.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/transform_sql.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/build/transform_sql.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -2,6 +2,7 @@
 #
 # transform_sql.py -- create a header file with the appropriate SQL variables
 # from an SQL file
+# The output file is named by adding ".h" onto the input file name.
 #
 
 
@@ -48,6 +49,6 @@ def main(input_filename, output_filename
 
 
 if __name__ == '__main__':
-  if len(sys.argv) < 2:
+  if len(sys.argv) != 2:
     usage_and_exit("Incorrect number of arguments")
   main(sys.argv[1], sys.argv[1] + ".h")

Modified: branches/svnpatch-diff/build/win32/make_dist.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/build/win32/make_dist.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/build/win32/make_dist.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/build/win32/make_dist.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -432,8 +432,7 @@ def _make_dist(cfg):
       shutil.rmtree(distdir)
     os.makedirs(distdir)
 
-    dirlist = list(_disttree.keys())
-    dirlist.sort()
+    dirlist = sorted(_disttree.keys())
 
     for reldir in dirlist:
       dir = os.path.join(distdir, reldir)

Modified: branches/svnpatch-diff/contrib/client-side/svnmerge/svnmerge-migrate-history.py
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/contrib/client-side/svnmerge/svnmerge-migrate-history.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/contrib/client-side/svnmerge/svnmerge-migrate-history.py	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/contrib/client-side/svnmerge/svnmerge-migrate-history.py	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -256,6 +256,13 @@ class Migrator:
 
       # Manipulate the merge history.
       if new_mergeinfo_prop_val != mergeinfo_prop_val:
+        # Run the final version of the new svn:mergeinfo through the
+        # parser to ensure it is in canonical form, e.g. no overlapping
+        # or unordered rangelists, see
+        # http://subversion.tigris.org/issues/show_bug.cgi?id=3302.
+        mergeinfo = svn.core.svn_mergeinfo_parse(new_mergeinfo_prop_val)
+        new_mergeinfo_prop_val = mergeinfo2str(mergeinfo)
+        
         self.log("Queuing change of %s to '%s'"
                  % (svn.core.SVN_PROP_MERGEINFO,
                     self.flatten_prop(new_mergeinfo_prop_val)))

Modified: branches/svnpatch-diff/doc/tools/bin/find-xsl.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/doc/tools/bin/find-xsl.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/doc/tools/bin/find-xsl.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/doc/tools/bin/find-xsl.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -30,9 +30,8 @@ if os.path.exists(xsl_dir):
   sys.exit(0)
 
 for i in candidate_xsldirs:
-  globs = glob.glob(i)
   # Crude method of preferring the highest version, when multiple exist
-  globs.sort()
+  globs = sorted(glob.glob(i))
   globs.reverse()
   for j in globs:
     if os.path.exists(os.path.join(j, 'html', 'docbook.xsl')):

Modified: branches/svnpatch-diff/gen-make.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/gen-make.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/gen-make.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/gen-make.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -52,8 +52,7 @@ def main(fname, gentype, verfname=None,
         for source in target_dict[target]:
           print("  " + _objinfo(source))
       print("=" * 72)
-    gen_keys = list(generator.__dict__.keys())
-    gen_keys.sort()
+    gen_keys = sorted(generator.__dict__.keys())
     for name in gen_keys:
       value = generator.__dict__[name]
       if type(value) == type([]):
@@ -82,8 +81,7 @@ def _usage_exit():
   print("  --reload  reuse all options from the previous invocation")
   print("            of the script, except -s, -t, --debug and --reload")
   print("  -t TYPE   use the TYPE generator; can be one of:")
-  items = list(gen_modules.items())
-  items.sort()
+  items = sorted(gen_modules.items())
   for name, (module, desc) in items:
     print('            %-12s  %s' % (name, desc))
   print("")

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.cpp
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.cpp	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.cpp	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -25,6 +25,7 @@
 #include "JNIUtil.h"
 #include "JNIStringHolder.h"
 #include "EnumMapper.h"
+#include "CreateJ.h"
 #include "ConflictResolverCallback.h"
 
 ConflictResolverCallback::ConflictResolverCallback(jobject jconflictResolver)
@@ -115,7 +116,7 @@ ConflictResolverCallback::resolve(svn_wc
     }
 
   // Create an instance of the conflict descriptor.
-  jobject jdesc = createJConflictDescriptor(desc);
+  jobject jdesc = CreateJ::ConflictDescriptor(desc);
   if (JNIUtil::isJavaExceptionThrown())
     return SVN_NO_ERROR;
 
@@ -212,93 +213,3 @@ svn_wc_conflict_choice_t ConflictResolve
       return svn_wc_conflict_choose_merged;
     }
 }
-
-jobject
-ConflictResolverCallback::createJConflictDescriptor(
-                                   const svn_wc_conflict_description_t *desc)
-{
-  JNIEnv *env = JNIUtil::getEnv();
-
-  if (desc == NULL)
-    return NULL;
-
-  // Create an instance of the conflict descriptor.
-  static jmethodID ctor = 0;
-  jclass clazz = env->FindClass(JAVA_PACKAGE "/ConflictDescriptor");
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  if (ctor == 0)
-    {
-      ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;II"
-                              "Ljava/lang/String;ZLjava/lang/String;III"
-                              "Ljava/lang/String;Ljava/lang/String;"
-                              "Ljava/lang/String;Ljava/lang/String;)V");
-      if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
-        return NULL;
-    }
-
-  jstring jpath = JNIUtil::makeJString(desc->path);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring jpropertyName = JNIUtil::makeJString(desc->property_name);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring jmimeType = JNIUtil::makeJString(desc->mime_type);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring jbasePath = JNIUtil::makeJString(desc->base_file);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring jreposPath = JNIUtil::makeJString(desc->their_file);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring juserPath = JNIUtil::makeJString(desc->my_file);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  jstring jmergedPath = JNIUtil::makeJString(desc->merged_file);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  // Instantiate the conflict descriptor.
-  jobject jdesc = env->NewObject(clazz, ctor, jpath,
-                                 EnumMapper::mapConflictKind(desc->kind),
-                                 EnumMapper::mapNodeKind(desc->node_kind),
-                                 jpropertyName,
-                                 (jboolean) desc->is_binary, jmimeType,
-                                 EnumMapper::mapConflictAction(desc->action),
-                                 EnumMapper::mapConflictReason(desc->reason),
-                                 EnumMapper::mapOperation(desc->operation),
-                                 jbasePath, jreposPath, juserPath,
-                                 jmergedPath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  env->DeleteLocalRef(clazz);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  env->DeleteLocalRef(jpath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(jpropertyName);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(jmimeType);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(jbasePath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(jreposPath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(juserPath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-  env->DeleteLocalRef(jmergedPath);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  return jdesc;
-}

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.h
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.h	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/ConflictResolverCallback.h	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -1,7 +1,7 @@
 /**
  * @copyright
  * ====================================================================
- * Copyright (c) 2007 CollabNet.  All rights reserved.
+ * Copyright (c) 2007-2009 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -69,8 +69,6 @@ class ConflictResolverCallback
                   void *baton,
                   apr_pool_t *pool);
 
-  static jobject
-  createJConflictDescriptor(const svn_wc_conflict_description_t *desc);
  protected:
   /**
    * Delegate to m_conflictResolver.resolve(), which provides the

Copied: branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.cpp (from \
r35607, trunk/subversion/bindings/javahl/native/CreateJ.cpp) \
                ==============================================================================
                
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.cpp	Fri Jan 30 \
16:31:36 2009	(r35609, copy of r35607, \
trunk/subversion/bindings/javahl/native/CreateJ.cpp) @@ -0,0 +1,439 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Copyright (c) 2007-2009 CollabNet.  All rights reserved.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at http://subversion.tigris.org/license-1.html.
+ * If newer versions of this license are posted there, you may use a
+ * newer version instead, at your option.
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals.  For exact contribution history, see the revision
+ * history and logs, available at http://subversion.tigris.org/.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file ConflictResolverCallback.cpp
+ * @brief Implementation of the class ConflictResolverCallback.
+ */
+
+#include "svn_error.h"
+
+#include "JNIUtil.h"
+#include "JNIStringHolder.h"
+#include "EnumMapper.h"
+#include "RevisionRange.h"
+#include "CreateJ.h"
+
+jobject
+CreateJ::ConflictDescriptor(const svn_wc_conflict_description_t *desc)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  if (desc == NULL)
+    return NULL;
+
+  // Create an instance of the conflict descriptor.
+  static jmethodID ctor = 0;
+  jclass clazz = env->FindClass(JAVA_PACKAGE "/ConflictDescriptor");
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  if (ctor == 0)
+    {
+      ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;II"
+                              "Ljava/lang/String;ZLjava/lang/String;III"
+                              "Ljava/lang/String;Ljava/lang/String;"
+                              "Ljava/lang/String;Ljava/lang/String;"
+                              "L"JAVA_PACKAGE"/ConflictVersion;"
+                              "L"JAVA_PACKAGE"/ConflictVersion;)V");
+      if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
+        return NULL;
+    }
+
+  jstring jpath = JNIUtil::makeJString(desc->path);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jpropertyName = JNIUtil::makeJString(desc->property_name);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jmimeType = JNIUtil::makeJString(desc->mime_type);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jbasePath = JNIUtil::makeJString(desc->base_file);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jreposPath = JNIUtil::makeJString(desc->their_file);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring juserPath = JNIUtil::makeJString(desc->my_file);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jmergedPath = JNIUtil::makeJString(desc->merged_file);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jobject jsrcLeft = CreateJ::ConflictVersion(desc->src_left_version);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jobject jsrcRight = ConflictVersion(desc->src_right_version);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  // Instantiate the conflict descriptor.
+  jobject jdesc = env->NewObject(clazz, ctor, jpath,
+                                 EnumMapper::mapConflictKind(desc->kind),
+                                 EnumMapper::mapNodeKind(desc->node_kind),
+                                 jpropertyName,
+                                 (jboolean) desc->is_binary, jmimeType,
+                                 EnumMapper::mapConflictAction(desc->action),
+                                 EnumMapper::mapConflictReason(desc->reason),
+                                 EnumMapper::mapOperation(desc->operation),
+                                 jbasePath, jreposPath, juserPath,
+                                 jmergedPath, jsrcLeft, jsrcRight);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  env->DeleteLocalRef(clazz);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  env->DeleteLocalRef(jpath);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jpropertyName);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jmimeType);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jbasePath);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jreposPath);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(juserPath);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jmergedPath);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jsrcRight);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jsrcLeft);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  return jdesc;
+}
+
+jobject
+CreateJ::ConflictVersion(const svn_wc_conflict_version_t *version)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  if (version == NULL)
+    return NULL;
+
+  // Create an instance of the conflict version.
+  static jmethodID ctor = 0;
+  jclass clazz = env->FindClass(JAVA_PACKAGE "/ConflictVersion");
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  if (ctor == 0)
+    {
+      ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;J"
+                                               "Ljava/lang/String;I)V");
+      if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
+        return NULL;
+    }
+
+  jstring jreposURL = JNIUtil::makeJString(version->repos_url);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  jstring jpathInRepos = JNIUtil::makeJString(version->path_in_repos);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  jobject jversion = env->NewObject(clazz, ctor, jreposURL,
+                                 (jlong)version->peg_rev, jpathInRepos,
+                                 EnumMapper::mapNodeKind(version->node_kind));
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  env->DeleteLocalRef(clazz);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  env->DeleteLocalRef(jreposURL);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+  env->DeleteLocalRef(jpathInRepos);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  return jversion;
+}
+
+jobject
+CreateJ::Info(const svn_wc_entry_t *entry)
+{
+    if (entry == NULL)
+        return NULL;
+
+    JNIEnv *env = JNIUtil::getEnv();
+
+    jclass clazz = env->FindClass(JAVA_PACKAGE"/Info");
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    static jmethodID mid = 0;
+    if (mid == 0)
+    {
+        mid = env->GetMethodID(clazz, "<init>",
+                               "(Ljava/lang/String;Ljava/lang/String;"
+                               "Ljava/lang/String;Ljava/lang/String;"
+                               "IILjava/lang/String;JJLjava/util/Date;"
+                               "Ljava/util/Date;Ljava/util/Date;"
+                               "ZZZZJLjava/lang/String;)V");
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    jstring jName = JNIUtil::makeJString(entry->name);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jUrl = JNIUtil::makeJString(entry->url);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jUuid = JNIUtil::makeJString(entry->uuid);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jRepository = JNIUtil::makeJString(entry->repos);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jint jSchedule = EnumMapper::mapScheduleKind(entry->schedule);
+    jint jNodeKind = EnumMapper::mapNodeKind(entry->kind);
+    jstring jAuthor = JNIUtil::makeJString(entry->cmt_author);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jlong jRevision = entry->revision;
+    jlong jLastChangedRevision = entry->cmt_rev;
+    jobject jLastChangedDate = JNIUtil::createDate(entry->cmt_date);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jobject jLastDateTextUpdate = JNIUtil::createDate(entry->text_time);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jobject jLastDatePropsUpdate = JNIUtil::createDate(entry->prop_time);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jboolean jCopied = entry->copied ? JNI_TRUE : JNI_FALSE;
+    jboolean jDeleted = entry->deleted ? JNI_TRUE : JNI_FALSE;
+    jboolean jAbsent = entry->absent ? JNI_TRUE : JNI_FALSE;
+    jboolean jIncomplete = entry->incomplete ? JNI_TRUE : JNI_FALSE;
+    jlong jCopyRev = entry->copyfrom_rev;
+    jstring jCopyUrl = JNIUtil::makeJString(entry->copyfrom_url);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    jobject jinfo = env->NewObject(clazz, mid, jName, jUrl, jUuid, jRepository,
+                                   jSchedule, jNodeKind, jAuthor, jRevision,
+                                   jLastChangedRevision, jLastChangedDate,
+                                   jLastDateTextUpdate, jLastDatePropsUpdate,
+                                   jCopied, jDeleted, jAbsent, jIncomplete,
+                                   jCopyRev, jCopyUrl);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    env->DeleteLocalRef(clazz);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    env->DeleteLocalRef(jName);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jUrl);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jUuid);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jRepository);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jAuthor);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jLastChangedDate);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jLastDateTextUpdate);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jLastDatePropsUpdate);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jCopyUrl);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    return jinfo;
+}
+
+
+jobject
+CreateJ::Lock(const svn_lock_t *lock)
+{
+    if (lock == NULL)
+        return NULL;
+    JNIEnv *env = JNIUtil::getEnv();
+
+    jclass clazz = env->FindClass(JAVA_PACKAGE"/Lock");
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    static jmethodID mid = 0;
+    if (mid == 0)
+    {
+        mid = env->GetMethodID(clazz, "<init>",
+                               "(Ljava/lang/String;Ljava/lang/String;"
+                               "Ljava/lang/String;"
+                               "Ljava/lang/String;JJ)V");
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    jstring jOwner = JNIUtil::makeJString(lock->owner);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jPath = JNIUtil::makeJString(lock->path);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jToken = JNIUtil::makeJString(lock->token);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jComment = JNIUtil::makeJString(lock->comment);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    jlong jCreationDate = lock->creation_date;
+    jlong jExpirationDate = lock->expiration_date;
+    jobject jlock = env->NewObject(clazz, mid, jOwner, jPath, jToken, jComment,
+                                   jCreationDate, jExpirationDate);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    env->DeleteLocalRef(clazz);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    env->DeleteLocalRef(jOwner);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jPath);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jToken);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jComment);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    return jlock;
+}
+
+jobject
+CreateJ::Property(jobject jthis, const char *path, const char *name,
+                  svn_string_t *value)
+{
+    JNIEnv *env = JNIUtil::getEnv();
+    jclass clazz = env->FindClass(JAVA_PACKAGE"/PropertyData");
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    static jmethodID mid = 0;
+    if (mid == 0)
+    {
+        mid = env->GetMethodID(clazz, "<init>",
+                               "(L"JAVA_PACKAGE"/SVNClient;Ljava/lang/String;"
+                               "Ljava/lang/String;Ljava/lang/String;[B)V");
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    jstring jPath = JNIUtil::makeJString(path);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jName = JNIUtil::makeJString(name);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jstring jValue = JNIUtil::makeJString(value->data);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    jbyteArray jData = JNIUtil::makeJByteArray((const signed char *)value->data,
+                                               value->len);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    jobject jprop = env->NewObject(clazz, mid, jthis, jPath, jName, jValue,
+                                  jData);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    env->DeleteLocalRef(clazz);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jPath);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jName);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jValue);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+    env->DeleteLocalRef(jData);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    return jprop;
+}
+
+
+jobjectArray
+CreateJ::RevisionRangeArray(apr_array_header_t *ranges)
+{
+    JNIEnv *env = JNIUtil::getEnv();
+
+    jclass clazz = env->FindClass(JAVA_PACKAGE "/RevisionRange");
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    jobjectArray jranges = env->NewObjectArray(ranges->nelts, clazz, NULL);
+
+    for (int i = 0; i < ranges->nelts; ++i)
+    {
+        // Convert svn_merge_range_t *'s to Java RevisionRange objects.
+        svn_merge_range_t *range =
+            APR_ARRAY_IDX(ranges, i, svn_merge_range_t *);
+        jobject jrange = RevisionRange::makeJRevisionRange(range);
+        if (jrange == NULL)
+            return NULL;
+
+        env->SetObjectArrayElement(jranges, i, jrange);
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+
+        env->DeleteLocalRef(jrange);
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    return jranges;
+}

Copied: branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.h (from \
r35607, trunk/subversion/bindings/javahl/native/CreateJ.h) \
                ==============================================================================
                
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/CreateJ.h	Fri Jan 30 \
16:31:36 2009	(r35609, copy of r35607, \
trunk/subversion/bindings/javahl/native/CreateJ.h) @@ -0,0 +1,57 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Copyright (c) 2007-2009 CollabNet.  All rights reserved.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at http://subversion.tigris.org/license-1.html.
+ * If newer versions of this license are posted there, you may use a
+ * newer version instead, at your option.
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals.  For exact contribution history, see the revision
+ * history and logs, available at http://subversion.tigris.org/.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file CreateJ.h
+ * @brief Interface of the class CreateJ
+ */
+
+#ifndef CREATEJ_H
+#define CREATEJ_H
+
+#include <jni.h>
+#include "svn_wc.h"
+
+/**
+ * This class passes centralizes the creating of Java objects from
+ * Subversion's C structures.
+ * @since 1.6
+ */
+class CreateJ
+{
+ public:
+  static jobject
+  ConflictDescriptor(const svn_wc_conflict_description_t *desc);
+
+  static jobject
+  Info(const svn_wc_entry_t *entry);
+
+  static jobject
+  Lock(const svn_lock_t *lock);
+
+  static jobject
+  Property(jobject jthis, const char *path, const char *name,
+           svn_string_t *value);
+
+  static jobjectArray
+  RevisionRangeArray(apr_array_header_t *ranges);
+
+ protected:
+  static jobject
+  ConflictVersion(const svn_wc_conflict_version_t *version);
+};
+
+#endif  // CREATEJ_H

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/EnumMapper.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/EnumMapper.cpp	Fri Jan \
                30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/EnumMapper.cpp	Fri Jan \
30 16:31:36 2009	(r35609) @@ -493,6 +493,8 @@ jint \
EnumMapper::mapOperation(svn_wc_ope  {
   switch (operation)
     {
+    case svn_wc_operation_none:
+      return org_tigris_subversion_javahl_Operation_none;
     case svn_wc_operation_update:
       return org_tigris_subversion_javahl_Operation_update;
     case svn_wc_operation_switch:

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/InfoCallback.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/InfoCallback.cpp	Fri Jan \
                30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/InfoCallback.cpp	Fri Jan \
30 16:31:36 2009	(r35609) @@ -19,9 +19,8 @@
  * @brief Implementation of the class InfoCallback
  */
 
-#include "SVNClient.h"
 #include "InfoCallback.h"
-#include "ConflictResolverCallback.h"
+#include "CreateJ.h"
 #include "EnumMapper.h"
 #include "JNIUtil.h"
 #include "svn_time.h"
@@ -146,7 +145,7 @@ InfoCallback::createJavaInfo2(const char
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
-  jobject jlock = SVNClient::createJavaLock(info->lock);
+  jobject jlock = CreateJ::Lock(info->lock);
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
@@ -178,8 +177,7 @@ InfoCallback::createJavaInfo2(const char
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
-  jobject jdesc = ConflictResolverCallback::createJConflictDescriptor(
-                                                            info->tree_conflict);
+  jobject jdesc = CreateJ::ConflictDescriptor(info->tree_conflict);
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/ListCallback.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/ListCallback.cpp	Fri Jan \
                30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/ListCallback.cpp	Fri Jan \
30 16:31:36 2009	(r35609) @@ -21,7 +21,7 @@
 
 #include "ListCallback.h"
 #include "EnumMapper.h"
-#include "SVNClient.h"
+#include "CreateJ.h"
 #include "JNIUtil.h"
 #include "svn_time.h"
 
@@ -98,7 +98,7 @@ ListCallback::doList(const char *path,
   jobject jlock;
   if (lock != NULL)
     {
-      jlock = SVNClient::createJavaLock(lock);
+      jlock = CreateJ::Lock(lock);
       if (JNIUtil::isJavaExceptionThrown())
         return SVN_NO_ERROR;
     }

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/Notify2.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/Notify2.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/Notify2.cpp	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/Notify2.cpp	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -21,7 +21,7 @@
 
 #include "Notify2.h"
 #include "JNIUtil.h"
-#include "SVNClient.h"
+#include "CreateJ.h"
 #include "EnumMapper.h"
 #include "RevisionRange.h"
 
@@ -158,7 +158,7 @@ Notify2::onNotify(const svn_wc_notify_t 
   if (JNIUtil::isJavaExceptionThrown())
     return;
 
-  jobject jLock = SVNClient::createJavaLock(wcNotify->lock);
+  jobject jLock = CreateJ::Lock(wcNotify->lock);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/SVNAdmin.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/SVNAdmin.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/SVNAdmin.cpp	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/SVNAdmin.cpp	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -20,7 +20,7 @@
  */
 
 #include "SVNAdmin.h"
-#include "SVNClient.h"
+#include "CreateJ.h"
 #include "JNIUtil.h"
 #include "svn_error_codes.h"
 #include "svn_repos.h"
@@ -533,7 +533,7 @@ jobjectArray SVNAdmin::lslocks(const cha
       void *val;
       apr_hash_this (hi, NULL, NULL, &val);
       svn_lock_t *lock = (svn_lock_t *)val;
-      jobject jLock = SVNClient::createJavaLock(lock);
+      jobject jLock = CreateJ::Lock(lock);
       env->SetObjectArrayElement(ret, i, jLock);
       if (JNIUtil::isJavaExceptionThrown())
         return NULL;

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.cpp	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.cpp	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -44,6 +44,7 @@
 #include "EnumMapper.h"
 #include "StringArray.h"
 #include "RevpropTable.h"
+#include "CreateJ.h"
 #include "svn_auth.h"
 #include "svn_dso.h"
 #include "svn_types.h"
@@ -248,15 +249,10 @@ void SVNClient::logMessages(const char *
             return;
     }
 
-    svn_client_log_args_t *log_args = svn_client_log_args_create(
-                                                            requestPool.pool());
-    log_args->limit = limit;
-    log_args->discover_changed_paths = discoverPaths;
-    log_args->strict_node_history = stopOnCopy;
-    log_args->include_merged_revisions = includeMergedRevisions;
-
     SVN_JNI_ERR(svn_client_log5(targets, pegRevision.revision(), ranges,
-                                revProps.array(requestPool), log_args,
+                                limit, discoverPaths, stopOnCopy,
+                                includeMergedRevisions,
+                                revProps.array(requestPool),
                                 LogMessageCallback::callback, callback, ctx,
                                 requestPool.pool()), );
 }
@@ -831,7 +827,7 @@ SVNClient::getMergeinfo(const char *targ
 
         jstring jpath = JNIUtil::makeJString((const char *) path);
         jobjectArray jranges =
-            makeJRevisionRangeArray((apr_array_header_t *) val);
+            CreateJ::RevisionRangeArray((apr_array_header_t *) val);
 
         env->CallVoidMethod(jmergeinfo, addRevisions, jpath, jranges);
 
@@ -939,7 +935,7 @@ jobject SVNClient::propertyGet(jobject j
     if (propval == NULL)
         return NULL;
 
-    return createJavaProperty(jthis, path, name, propval);
+    return CreateJ::Property(jthis, path, name, propval);
 }
 
 void SVNClient::properties(const char *path, Revision &revision,
@@ -1332,68 +1328,6 @@ void *SVNClient::getCommitMessageBaton(c
     return NULL;
 }
 
-jobject SVNClient::createJavaProperty(jobject jthis, const char *path,
-                                      const char *name, svn_string_t *value)
-{
-    JNIEnv *env = JNIUtil::getEnv();
-    jclass clazz = env->FindClass(JAVA_PACKAGE"/PropertyData");
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    static jmethodID mid = 0;
-    if (mid == 0)
-    {
-        mid = env->GetMethodID(clazz, "<init>",
-                               "(L"JAVA_PACKAGE"/SVNClient;Ljava/lang/String;"
-                               "Ljava/lang/String;Ljava/lang/String;[B)V");
-        if (JNIUtil::isJavaExceptionThrown())
-            return NULL;
-    }
-    jstring jPath = JNIUtil::makeJString(path);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jstring jName = JNIUtil::makeJString(name);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jstring jValue = JNIUtil::makeJString(value->data);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jbyteArray jData = JNIUtil::makeJByteArray((const signed char *)value->data,
-                                               value->len);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jobject jprop = env->NewObject(clazz, mid, jthis, jPath, jName, jValue,
-                                  jData);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(clazz);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jPath);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jName);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jValue);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jData);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    return jprop;
-}
-
 jbyteArray SVNClient::fileContent(const char *path, Revision &revision,
                                   Revision &pegRevision)
 {
@@ -1569,7 +1503,7 @@ jobject SVNClient::revProperty(jobject j
     if (propval == NULL)
         return NULL;
 
-    return createJavaProperty(jthis, path, name, propval);
+    return CreateJ::Property(jthis, path, name, propval);
 }
 void SVNClient::relocate(const char *from, const char *to, const char *path,
                          bool recurse)
@@ -1700,73 +1634,6 @@ void SVNClient::getChangelists(const cha
                 );
 }
 
-jobject SVNClient::createJavaLock(const svn_lock_t *lock)
-{
-    if (lock == NULL)
-        return NULL;
-    JNIEnv *env = JNIUtil::getEnv();
-
-    jclass clazz = env->FindClass(JAVA_PACKAGE"/Lock");
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    static jmethodID mid = 0;
-    if (mid == 0)
-    {
-        mid = env->GetMethodID(clazz, "<init>",
-                               "(Ljava/lang/String;Ljava/lang/String;"
-                               "Ljava/lang/String;"
-                               "Ljava/lang/String;JJ)V");
-        if (JNIUtil::isJavaExceptionThrown())
-            return NULL;
-    }
-
-    jstring jOwner = JNIUtil::makeJString(lock->owner);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jstring jPath = JNIUtil::makeJString(lock->path);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jstring jToken = JNIUtil::makeJString(lock->token);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jstring jComment = JNIUtil::makeJString(lock->comment);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jlong jCreationDate = lock->creation_date;
-    jlong jExpirationDate = lock->expiration_date;
-    jobject jlock = env->NewObject(clazz, mid, jOwner, jPath, jToken, jComment,
-                                   jCreationDate, jExpirationDate);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(clazz);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jOwner);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jPath);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jToken);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    env->DeleteLocalRef(jComment);
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    return jlock;
-}
-
 void SVNClient::lock(Targets &targets, const char *comment, bool force)
 {
     Pool requestPool;
@@ -2061,8 +1928,7 @@ jobjectArray SVNClient::revProperties(jo
 
         apr_hash_this(hi, (const void **)&key, NULL, (void**)&val);
 
-        jobject object = createJavaProperty(jthis, path,
-                                            key, val);
+        jobject object = CreateJ::Property(jthis, path, key, val);
 
         env->SetObjectArrayElement(jprops, i, object);
         if (JNIUtil::isJavaExceptionThrown())
@@ -2104,164 +1970,7 @@ jobject SVNClient::info(const char *path
                              requestPool.pool()),
                 NULL);
 
-    return createJavaInfo(entry);
-}
-
-jobject SVNClient::createJavaInfo(const svn_wc_entry_t *entry)
-{
-    if (entry == NULL)
-        return NULL;
-
-    JNIEnv *env = JNIUtil::getEnv();
-
-    jclass clazz = env->FindClass(JAVA_PACKAGE"/Info");
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    static jmethodID mid = 0;
-    if (mid == 0)
-    {
-        mid = env->GetMethodID(clazz, "<init>",
-                               "(Ljava/lang/String;Ljava/lang/String;"
-                               "Ljava/lang/String;Ljava/lang/String;"
-                               "IILjava/lang/String;JJLjava/util/Date;"
-                               "Ljava/util/Date;Ljava/util/Date;"
-                               "ZZZZJLjava/lang/String;)V");
-        if (JNIUtil::isJavaExceptionThrown())
-        {
-            return NULL;
-        }
-    }
-
-    jstring jName = JNIUtil::makeJString(entry->name);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jstring jUrl = JNIUtil::makeJString(entry->url);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jstring jUuid = JNIUtil::makeJString(entry->uuid);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jstring jRepository = JNIUtil::makeJString(entry->repos);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jint jSchedule = EnumMapper::mapScheduleKind(entry->schedule);
-    jint jNodeKind = EnumMapper::mapNodeKind(entry->kind);
-    jstring jAuthor = JNIUtil::makeJString(entry->cmt_author);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jlong jRevision = entry->revision;
-    jlong jLastChangedRevision = entry->cmt_rev;
-    jobject jLastChangedDate = JNIUtil::createDate(entry->cmt_date);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jobject jLastDateTextUpdate = JNIUtil::createDate(entry->text_time);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jobject jLastDatePropsUpdate = JNIUtil::createDate(entry->prop_time);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-    jboolean jCopied = entry->copied ? JNI_TRUE : JNI_FALSE;
-    jboolean jDeleted = entry->deleted ? JNI_TRUE : JNI_FALSE;
-    jboolean jAbsent = entry->absent ? JNI_TRUE : JNI_FALSE;
-    jboolean jIncomplete = entry->incomplete ? JNI_TRUE : JNI_FALSE;
-    jlong jCopyRev = entry->copyfrom_rev;
-    jstring jCopyUrl = JNIUtil::makeJString(entry->copyfrom_url);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    jobject jinfo = env->NewObject(clazz, mid, jName, jUrl, jUuid, jRepository,
-                                   jSchedule, jNodeKind, jAuthor, jRevision,
-                                   jLastChangedRevision, jLastChangedDate,
-                                   jLastDateTextUpdate, jLastDatePropsUpdate,
-                                   jCopied, jDeleted, jAbsent, jIncomplete,
-                                   jCopyRev, jCopyUrl);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(clazz);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jName);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jUrl);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jUuid);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jRepository);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jAuthor);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jLastChangedDate);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jLastDateTextUpdate);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jLastDatePropsUpdate);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    env->DeleteLocalRef(jCopyUrl);
-    if (JNIUtil::isJavaExceptionThrown())
-    {
-        return NULL;
-    }
-
-    return jinfo;
+    return CreateJ::Info(entry);
 }
 
 void
@@ -2287,34 +1996,3 @@ SVNClient::info2(const char *path, Revis
                                  changelists.array(requestPool), ctx,
                                  requestPool.pool()), );
 }
-
-jobjectArray SVNClient::makeJRevisionRangeArray(apr_array_header_t *ranges)
-{
-    JNIEnv *env = JNIUtil::getEnv();
-
-    jclass clazz = env->FindClass(JAVA_PACKAGE "/RevisionRange");
-    if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-    jobjectArray jranges = env->NewObjectArray(ranges->nelts, clazz, NULL);
-
-    for (int i = 0; i < ranges->nelts; ++i)
-    {
-        // Convert svn_merge_range_t *'s to Java RevisionRange objects.
-        svn_merge_range_t *range =
-            APR_ARRAY_IDX(ranges, i, svn_merge_range_t *);
-        jobject jrange = RevisionRange::makeJRevisionRange(range);
-        if (jrange == NULL)
-            return NULL;
-
-        env->SetObjectArrayElement(jranges, i, jrange);
-        if (JNIUtil::isJavaExceptionThrown())
-            return NULL;
-
-        env->DeleteLocalRef(jrange);
-        if (JNIUtil::isJavaExceptionThrown())
-            return NULL;
-    }
-
-    return jranges;
-}

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.h	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/SVNClient.h	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -202,11 +202,8 @@ class SVNClient :public SVNBase
   static SVNClient *getCppObject(jobject jthis);
   SVNClient();
   virtual ~SVNClient();
-  static jobject createJavaLock(const svn_lock_t *lock);
  private:
   static svn_error_t *checkCancel(void *cancelBaton);
-  jobject createJavaProperty(jobject jthis, const char *path,
-                             const char *name, svn_string_t *value);
   svn_client_ctx_t *getContext(const char *message);
   svn_stream_t *createReadStream(apr_pool_t *pool, const char *path,
                                  Revision &revision, Revision &pegRevision,
@@ -222,8 +219,6 @@ class SVNClient :public SVNBase
             const char *outfileName, svn_depth_t depth, StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force);
 
-  jobject createJavaInfo(const svn_wc_entry_t *entry);
-
   Notify *m_notify;
   Notify2 *m_notify2;
   ConflictResolverCallback *m_conflictResolver;
@@ -233,8 +228,6 @@ class SVNClient :public SVNBase
   bool m_cancelOperation;
   CommitMessage *m_commitMessage;
 
-  jobjectArray makeJRevisionRangeArray(apr_array_header_t *ranges);
-
   /**
    * Implements the svn_client_get_commit_log3_t API.
    */

Modified: branches/svnpatch-diff/subversion/bindings/javahl/native/StatusCallback.cpp
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javahl/native/StatusCallback.cpp?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/native/StatusCallback.cpp	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/native/StatusCallback.cpp	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -20,9 +20,8 @@
  */
 
 #include "StatusCallback.h"
-#include "ConflictResolverCallback.h"
+#include "CreateJ.h"
 #include "EnumMapper.h"
-#include "SVNClient.h"
 #include "JNIUtil.h"
 #include "svn_time.h"
 #include "../include/org_tigris_subversion_javahl_NodeKind.h"
@@ -175,14 +174,13 @@ StatusCallback::createJavaStatus(const c
       jIsLocked = (status->locked == 1) ? JNI_TRUE: JNI_FALSE;
       jIsSwitched = (status->switched == 1) ? JNI_TRUE: JNI_FALSE;
       jIsFileExternal = (status->file_external == 1) ? JNI_TRUE: JNI_FALSE;
-      jConflictDescription = ConflictResolverCallback::createJConflictDescriptor(
-                                                      status->tree_conflict);
+      jConflictDescription = CreateJ::ConflictDescriptor(status->tree_conflict);
       if (JNIUtil::isJavaExceptionThrown())
         return NULL;
 
       jIsTreeConflicted = (status->tree_conflict != NULL) 
                              ? JNI_TRUE: JNI_FALSE;
-      jLock = SVNClient::createJavaLock(status->repos_lock);
+      jLock = CreateJ::Lock(status->repos_lock);
       if (JNIUtil::isJavaExceptionThrown())
         return NULL;
 

Modified: branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javah \
l/src/org/tigris/subversion/javahl/ConflictDescriptor.java?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -76,12 +76,23 @@ public class ConflictDescriptor
      */
     private int operation;
 
+    /**
+     * @see ConflictVersion
+     */
+    private ConflictVersion srcLeftVersion;
+
+    /**
+     * @see ConflictVersion
+     */
+    private ConflictVersion srcRightVersion;
+
     /** This constructor should only be called from JNI code. */
     ConflictDescriptor(String path, int conflictKind, int nodeKind,
                        String propertyName, boolean isBinary, String mimeType,
                        int action, int reason, int operation,
                        String basePath, String theirPath,
-                       String myPath, String mergedPath)
+                       String myPath, String mergedPath,
+                       ConflictVersion srcLeft, ConflictVersion srcRight)
     {
         this.path = path;
         this.conflictKind = conflictKind;
@@ -96,6 +107,8 @@ public class ConflictDescriptor
         this.myPath = myPath;
         this.mergedPath = mergedPath;
         this.operation = operation;
+        this.srcLeftVersion = srcLeft;
+        this.srcRightVersion = srcRight;
     }
 
     public String getPath()
@@ -175,6 +188,16 @@ public class ConflictDescriptor
         return operation;
     }
 
+    public ConflictVersion getSrcLeftVersion()
+    {
+        return srcLeftVersion;
+    }
+
+    public ConflictVersion getSrcRightVersion()
+    {
+        return srcRightVersion;
+    }
+
     /**
      * Poor man's enum for <code>svn_wc_conflict_kind_t</code>.
      */

Copied: branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java \
(from r35607, trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java)
 ==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java	Fri \
Jan 30 16:31:36 2009	(r35609, copy of r35607, \
trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java)
 @@ -0,0 +1,75 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Copyright (c) 2009 CollabNet.  All rights reserved.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at http://subversion.tigris.org/license-1.html.
+ * If newer versions of this license are posted there, you may use a
+ * newer version instead, at your option.
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals.  For exact contribution history, see the revision
+ * history and logs, available at http://subversion.tigris.org/.
+ * ====================================================================
+ * @endcopyright
+ */
+
+package org.tigris.subversion.javahl;
+
+/**
+ * The description of a merge conflict, encountered during
+ * merge/update/switch operations.
+ *
+ * @since 1.6
+ */
+public class ConflictVersion
+{
+    private String reposURL;
+    private long pegRevision;
+    private String pathInRepos;
+
+    /**
+     * @see NodeKind
+     */
+    private int nodeKind;
+
+    /** This constructor should only be called from JNI code. */
+    ConflictVersion(String reposURL, long pegRevision, String pathInRepos,
+                    int nodeKind)
+    {
+        this.reposURL = reposURL;
+        this.pegRevision = pegRevision;
+        this.pathInRepos = pathInRepos;
+        this.nodeKind = nodeKind;
+    }
+
+    public String getReposURL()
+    {
+        return reposURL;
+    }
+
+    public long getPegRevision()
+    {
+        return pegRevision;
+    }
+
+    public String getPathInRepos()
+    {
+        return pathInRepos;
+    }
+
+    /**
+     * @see NodeKind
+     */
+    public int getNodeKind()
+    {
+        return nodeKind;
+    }
+
+    public String toString() {
+        return "(" + NodeKind.getNodeKindName(nodeKind) + ") " + reposURL +
+        "/" + pathInRepos + "@" + pegRevision;
+    }
+}

Modified: branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javah \
l/src/org/tigris/subversion/javahl/Operation.java?pathrev=35609&r1=35608&r2=35609 \
                ==============================================================================
                
--- branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -23,14 +23,17 @@ package \
                org.tigris.subversion.javahl;
  */
 public final class Operation
 {
+    /* none */
+    public static final int none = 0;
+
     /* update */
-    public static final int update = 0;
+    public static final int update = 1;
 
     /* switch */
     /* Note: this is different that svn_wc.h, because 'switch' is a
      * reserved word in java  :(  */
-    public static final int switched = 1;
+    public static final int switched = 2;
 
     /* merge */
-    public static final int merge = 2;
+    public static final int merge = 3;
 }

Modified: branches/svnpatch-diff/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
                
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/javah \
l/tests/org/tigris/subversion/javahl/BasicTests.java?pathrev=35609&r1=35608&r2=35609 \
                ==============================================================================
                
--- branches/svnpatch-diff/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java	Fri \
                Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java	Fri \
Jan 30 16:31:36 2009	(r35609) @@ -3055,6 +3055,94 @@ public class BasicTests extends \
SVNTests  }
 
     /**
+     * Test the basic tree conflict functionality.
+     * @throws Throwable
+     */
+    public void testTreeConflict() throws Throwable
+    {
+        // build the test setup. Used for the changes
+        OneTest thisTest = new OneTest();
+        WC wc = thisTest.getWc();
+
+        // build the backup test setup. That is the one that will be updated
+        OneTest tcTest = thisTest.copy(".tree-conflict");
+
+
+        // Move files from A/B/E to A/B/F.
+        String[] srcPaths = { "alpha" };
+        for (int i = 0; i < srcPaths.length; i++)
+        {
+            String fileName = srcPaths[i];
+            srcPaths[i] = new File(thisTest.getWorkingCopy(),
+                                   "A/B/E/" + fileName).getPath();
+
+            wc.addItem("A/B/F/" + fileName,
+                       wc.getItemContent("A/B/E/" + fileName));
+            wc.setItemWorkingCopyRevision("A/B/F/" + fileName, 2);
+            addExpectedCommitItem(thisTest.getWCPath(), thisTest.getUrl(),
+                                  "A/B/F/" + fileName, NodeKind.file,
+                                  CommitItemStateFlags.Add |
+                                  CommitItemStateFlags.IsCopy);
+
+            wc.removeItem("A/B/E/" + fileName);
+            addExpectedCommitItem(thisTest.getWCPath(), thisTest.getUrl(),
+                                  "A/B/E/" + fileName, NodeKind.file,
+                                  CommitItemStateFlags.Delete);
+        }
+        client.move(srcPaths,
+                    new File(thisTest.getWorkingCopy(), "A/B/F").getPath(),
+                    null, false, true, false, null);
+
+        // Commit the changes, and check the state of the WC.
+        assertEquals("Unexpected WC revision number after commit",
+                     client.commit(new String[] { thisTest.getWCPath() },
+                                   "Move files", true), 2);
+        thisTest.checkStatus();
+
+        // modify A/B/E/alpha in second working copy
+        File alpha = new File(tcTest.getWorkingCopy(), "A/B/E/alpha");
+        PrintWriter alphaWriter = new PrintWriter(new FileOutputStream(alpha, \
true)); +        alphaWriter.print("appended alpha text");
+        alphaWriter.close();
+
+        // update the tc test
+        assertEquals("wrong revision number from update",
+                     client.update(tcTest.getWCPath(), null, true),
+                     2);
+
+        // set the expected working copy layout for the tc test
+        tcTest.getWc().addItem("A/B/F/alpha",
+                tcTest.getWc().getItemContent("A/B/E/alpha"));
+        tcTest.getWc().setItemWorkingCopyRevision("A/B/F/alpha", 2);
+        // we expect the tree conflict to turn the existing item into
+        // a scheduled-add with history.  We expect the modifications in
+        // the local file to have been copied to the new file.
+        tcTest.getWc().setItemTextStatus("A/B/E/alpha", StatusKind.added);
+        tcTest.getWc().setItemTextStatus("A/B/F/alpha", StatusKind.modified);
+
+        // check the status of the working copy of the tc test
+        tcTest.checkStatus();
+
+        // get the Info2 of the tree conflict
+        MyInfoCallback callback = new MyInfoCallback();
+        client.info2(tcTest.getWCPath() + "/A/B/E/alpha", null,
+                null, Depth.unknown, null, callback);
+        ConflictDescriptor conflict = callback.getInfo().getConflictDescriptor();
+        
+        assertNotNull("Conflict should not be null", conflict);
+        
+        assertEquals(conflict.getSrcLeftVersion().getNodeKind(), NodeKind.file);
+        assertEquals(conflict.getSrcLeftVersion().getReposURL() + "/" +
+                conflict.getSrcLeftVersion().getPathInRepos(), tcTest.getUrl() + \
"/A/B/E/alpha"); +        assertEquals(conflict.getSrcLeftVersion().getPegRevision(), \
1L); +        
+        assertEquals(conflict.getSrcRightVersion().getNodeKind(), NodeKind.none);
+        assertEquals(conflict.getSrcRightVersion().getReposURL(), tcTest.getUrl());
+        assertEquals(conflict.getSrcRightVersion().getPegRevision(), 2L);
+        
+    }
+
+    /**
      * Test tolerance of unversioned obstructions when adding paths with
      * {@link org.tigris.subversion.javahl.SVNClient#checkout()},
      * {@link org.tigris.subversion.javahl.SVNClient#update()}, and
@@ -3382,4 +3470,17 @@ public class BasicTests extends SVNTests
             return (List) super.get(path);
         }
     }
+    
+    private class MyInfoCallback implements InfoCallback {
+        private Info2 info;
+
+        public void singleInfo(Info2 info) {
+            this.info = info;
+        }
+        
+        public Info2 getInfo() {
+            return info;
+        }
+        
+    }
 }

Modified: branches/svnpatch-diff/subversion/bindings/swig/python/tests/mergeinfo.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/swig/python/tests/mergeinfo.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/swig/python/tests/mergeinfo.py	Fri Jan \
                30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/swig/python/tests/mergeinfo.py	Fri Jan \
30 16:31:36 2009	(r35609) @@ -132,20 +132,16 @@ class \
SubversionMergeinfoTestCase(unitte  "Missing revision range 'non-inheritable' flag")
 
   def compare_mergeinfo_catalogs(self, catalog1, catalog2):
-    keys1 = list(catalog1.keys())
-    keys1.sort()
-    keys2 = list(catalog2.keys())
-    keys2.sort()
+    keys1 = sorted(catalog1.keys())
+    keys2 = sorted(catalog2.keys())
     self.assertEqual(keys1, keys2)
 
     for k in catalog1.keys():
         self.compare_mergeinfos(catalog1[k], catalog2[k])
 
   def compare_mergeinfos(self, mergeinfo1, mergeinfo2):
-    keys1 = list(mergeinfo1.keys())
-    keys1.sort()
-    keys2 = list(mergeinfo2.keys())
-    keys2.sort()
+    keys1 = sorted(mergeinfo1.keys())
+    keys2 = sorted(mergeinfo2.keys())
     self.assertEqual(keys1, keys2)
 
     for k in mergeinfo1.keys():

Modified: branches/svnpatch-diff/subversion/bindings/swig/python/tests/ra.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/bindings/swig/python/tests/ra.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/bindings/swig/python/tests/ra.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/bindings/swig/python/tests/ra.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -305,8 +305,7 @@ class SubversionRepositoryAccessTestCase
       elif len(log_revprops) == 0:
         self.assert_(log_entry.revprops == None or len(log_entry.revprops) == 0)
       else:
-        revprop_names = list(log_entry.revprops.keys())
-        revprop_names.sort()
+        revprop_names = sorted(log_entry.revprops.keys())
         log_revprops.sort()
         self.assertEqual(revprop_names, log_revprops)
         for i in log_revprops:

Modified: branches/svnpatch-diff/subversion/include/private/svn_skel.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/private/svn_skel.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/private/svn_skel.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/private/svn_skel.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -146,6 +146,23 @@ svn_boolean_t svn_skel__matches_atom(con
 int svn_skel__list_length(const svn_skel_t *skel);
 
 
+/* Parse a `PROPLIST' SKEL into a regular hash of properties,
+   *PROPLIST_P, which has const char * property names, and
+   svn_string_t * values, or NULL if SKEL contains no properties.  Use
+   POOL for all allocations.  */
+svn_error_t *
+svn_skel__parse_proplist(apr_hash_t **proplist_p,
+                         svn_skel_t *skel,
+                         apr_pool_t *pool);
+
+/* Unparse a PROPLIST hash (which has const char * property names and
+   svn_stringbuf_t * values) into a `PROPLIST' skel *SKEL_P.  Use POOL
+   for all allocations.  */
+svn_error_t *
+svn_skel__unparse_proplist(svn_skel_t **skel_p,
+                           apr_hash_t *proplist,
+                           apr_pool_t *pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: branches/svnpatch-diff/subversion/include/private/svn_sqlite.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/private/svn_sqlite.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/private/svn_sqlite.h	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/private/svn_sqlite.h	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -145,6 +145,11 @@ svn_sqlite__column_boolean(svn_sqlite__s
 int
 svn_sqlite__column_int(svn_sqlite__stmt_t *stmt, int column);
 
+/* Return TRUE if the result of selecting the column is NULL,
+   FALSE otherwise */
+svn_boolean_t
+svn_sqlite__column_is_null(svn_sqlite__stmt_t *stmt, int column);
+
 /* Error-handling wrapper around sqlite3_finalize. */
 svn_error_t *
 svn_sqlite__finalize(svn_sqlite__stmt_t *stmt);

Modified: branches/svnpatch-diff/subversion/include/private/svn_utf_private.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/private/svn_utf_private.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/private/svn_utf_private.h	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/private/svn_utf_private.h	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -44,11 +44,12 @@ svn_boolean_t
 svn_utf__cstring_is_valid(const char *src);
 
 /* Return a pointer to the first character after the last valid UTF-8
- * multi-byte character in the string SRC of length LEN.  If SRC is a valid
- * UTF-8 the return value will point to the byte after SRC+LEN, otherwise
- * it will point to the start of the first invalid multi-byte character.
- * In either case all the characters between SRC and the return pointer are
- * valid UTF-8.
+ * potentially multi-byte character in the string SRC of length LEN.
+ * Validity of bytes from SRC to SRC+LEN-1, inclusively, is checked.
+ * If SRC is a valid UTF-8, the return value will point to the byte SRC+LEN,
+ * otherwise it will point to the start of the first invalid character.
+ * In either case all the characters between SRC and the return pointer - 1,
+ * inclusively, are valid UTF-8.
  *
  * See also svn_utf__is_valid().
  */

Modified: branches/svnpatch-diff/subversion/include/svn_checksum.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_checksum.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_checksum.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_checksum.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -66,8 +66,8 @@ typedef struct svn_checksum_t
  */
 typedef struct svn_checksum_ctx_t svn_checksum_ctx_t;
 
-/** Allocate, initialize and return a @c svn_checksum_t structure of type
- * @a kind.  The checksum is allocated in @a pool.
+/** Return a new checksum structure of type @a kind, initialized to the all-
+ * zeros value, allocated in @a pool.
  *
  * @since New in 1.6.
  */
@@ -83,24 +83,24 @@ svn_checksum_create(svn_checksum_kind_t 
 svn_error_t *
 svn_checksum_clear(svn_checksum_t *checksum);
 
-/** Compare digests @a d1 and @a d2.  If their kinds do not match or
- * if neither is all zeros, and their content does not match, then
+/** Compare checksums @a checksum1 and @a checksum2.  If their kinds do not
+ * match or if neither is all zeros, and their content does not match, then
  * return FALSE; else return TRUE.
  *
  * @since New in 1.6.
  */
 svn_boolean_t
-svn_checksum_match(const svn_checksum_t *d1,
-                   const svn_checksum_t *d2);
+svn_checksum_match(const svn_checksum_t *checksum1,
+                   const svn_checksum_t *checksum2);
 
 
 /**
- * Return a deep copy of @a src, allocated in @a pool.
+ * Return a deep copy of @a checksum, allocated in @a pool.
  *
  * @since New in 1.6.
  */
 svn_checksum_t *
-svn_checksum_dup(const svn_checksum_t *src,
+svn_checksum_dup(const svn_checksum_t *checksum,
                  apr_pool_t *pool);
 
 
@@ -125,10 +125,11 @@ svn_checksum_to_cstring(const svn_checks
                         apr_pool_t *pool);
 
 
-/** Parse the hex representation of a checksum of kind @a kind into
- * @a checksum, allocating in @a pool.
+/** Parse the hex representation @a hex of a checksum of kind @a kind and
+ * set @a *checksum to the result, allocating in @a pool.
  *
- * If @a hex is @c NULL, then @a *checksum will also be @c NULL.
+ * If @a hex is @c NULL or is the all-zeros checksum, then set @a *checksum
+ * to @c NULL.
  *
  * @since New in 1.6.
  */
@@ -154,7 +155,7 @@ svn_checksum(svn_checksum_t **checksum,
 
 /**
  * Return in @a pool a newly allocated checksum populated with the checksum
- * of type @a kind for the empty string of type.
+ * of type @a kind for the empty string.
  *
  * @since New in 1.6.
  */

Modified: branches/svnpatch-diff/subversion/include/svn_client.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_client.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_client.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_client.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1,7 +1,7 @@
 /**
  * @copyright
  * ====================================================================
- * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -1910,48 +1910,6 @@ svn_client_status(svn_revnum_t *result_r
  */
 
 /**
- * A structure to optional arguments for svn_client_log5().  It can grow
- * as needed to avoid rev'ing the API.  Never allocate this structure directly,
- * as its size may change in future versions of Subversion.  Use
- * svn_client_log_args_create() instead.
- *
- * @since New in 1.6.
- */
-typedef struct svn_client_log_args_t
-{
-  /** If non-zero only invoke the reciever on the first @a limit logs. */
-  int limit;
-
-  /** If set, then the `@a changed_paths' argument to the receiver will be
-   * passed on each invocation. */
-  svn_boolean_t discover_changed_paths;
-
-  /** If set, copy history (if any exists) will not be traversed while
-   * harvesting revision logs for each target. */
-  svn_boolean_t strict_node_history;
-
-
-  /** If set, log information for revisions which have been merged to the
-   * log targets will also be returned. */
-  svn_boolean_t include_merged_revisions;
-
-  /* Add new members here, and update svn_client_log_args_create(). */
-} svn_client_log_args_t;
-
-/**
- * Create a @c svn_client_log_args_t structure, for use with svn_client_log5().
- * Values of structure members are as follows:
- *   @c limit: 0
- *   @c discover_changed_paths: FALSE
- *   @c strict_node_history: FALSE
- *   @c include_merged_revisions: FALSE
- *
- * @since New in 1.6.
- */
-svn_client_log_args_t *
-svn_client_log_args_create(apr_pool_t *pool);
-
-/**
  * Invoke @a receiver with @a receiver_baton on each log message from
  * each start/end revision pair in the @a revision_ranges in turn,
  * inclusive (but never invoke @a receiver on a given log message more
@@ -1965,7 +1923,17 @@ svn_client_log_args_create(apr_pool_t *p
  * @c svn_opt_revision_unspecified, it defaults to @c svn_opt_revision_head
  * for URLs or @c svn_opt_revision_working for WC paths.
  *
- * Use additional argument values as defined in @a args.
+ * If @a limit is non-zero only invoke @a receiver on the first @a limit
+ * logs.
+ *
+ * If @a discover_changed_paths is set, then the `@a changed_paths' argument
+ * to @a receiver will be passed on each invocation.
+ *
+ * If @a strict_node_history is set, copy history (if any exists) will
+ * not be traversed while harvesting revision logs for each target.
+ *
+ * If @a include_merged_revisions is set, log information for revisions
+ * which have been merged to @a targets will also be returned.
  *
  * If @a revprops is NULL, retrieve all revprops; else, retrieve only the
  * revprops named in the array (i.e. retrieve none if the array is empty).
@@ -1991,8 +1959,11 @@ svn_error_t *
 svn_client_log5(const apr_array_header_t *targets,
                 const svn_opt_revision_t *peg_revision,
                 const apr_array_header_t *revision_ranges,
+                int limit,
+                svn_boolean_t discover_changed_paths,
+                svn_boolean_t strict_node_history,
+                svn_boolean_t include_merged_revisions,
                 const apr_array_header_t *revprops,
-                const svn_client_log_args_t *args,
                 svn_log_entry_receiver_t receiver,
                 void *receiver_baton,
                 svn_client_ctx_t *ctx,
@@ -3220,6 +3191,9 @@ typedef struct svn_client_copy_source_t
  * If @a make_parents is TRUE, create any non-existent parent directories
  * also.
  *
+ * If @a ignore_externals is set, don't process externals definitions
+ * as part of this operation.
+ *
  * If non-NULL, @a revprop_table is a hash table holding additional,
  * custom revision properties (<tt>const char *</tt> names mapped to
  * <tt>svn_string_t *</tt> values) to be set on the new revision in
@@ -3234,8 +3208,27 @@ typedef struct svn_client_copy_source_t
  * for each item added at the new location, passing the new, relative path of
  * the added item.
  *
+ * @since New in 1.6.
+ */
+svn_error_t *
+svn_client_copy5(svn_commit_info_t **commit_info_p,
+                 apr_array_header_t *sources,
+                 const char *dst_path,
+                 svn_boolean_t copy_as_child,
+                 svn_boolean_t make_parents,
+                 svn_boolean_t ignore_externals,
+                 const apr_hash_t *revprop_table,
+                 svn_client_ctx_t *ctx,
+                 apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_copy5(), with @a ignore_externals set to @c FALSE.
+ *
  * @since New in 1.5.
+ *
+ * @deprecated Provided for backward compatibility with the 1.5 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_copy4(svn_commit_info_t **commit_info_p,
                  apr_array_header_t *sources,
@@ -4450,7 +4443,7 @@ typedef struct svn_info_t
   const char *copyfrom_url;
   svn_revnum_t copyfrom_rev;
   apr_time_t text_time;
-  apr_time_t prop_time;
+  apr_time_t prop_time;  /* will always be 0 for svn 1.4 and later */
   const char *checksum;
   const char *conflict_old;
   const char *conflict_new;

Modified: branches/svnpatch-diff/subversion/include/svn_dirent_uri.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_dirent_uri.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_dirent_uri.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_dirent_uri.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -391,7 +391,7 @@ svn_dirent_get_absolute(const char **pab
  * If @a pool is @c NULL , a pointer into @a uri2 will be returned to
  *       identify the remainder uri.
  *
- * ### todo: the ".." restriction is unfortunate, and would ideally
+ * ### @todo the ".." restriction is unfortunate, and would ideally
  * be lifted by making the implementation smarter.  But this is not
  * trivial: if the uri is "../foo", how do you know whether or not
  * the current directory is named "foo" in its parent?

Modified: branches/svnpatch-diff/subversion/include/svn_mergeinfo.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_mergeinfo.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_mergeinfo.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_mergeinfo.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -143,11 +143,14 @@ typedef apr_hash_t *svn_mergeinfo_catalo
  * Perform temporary allocations in @a pool.
  *
  * If @a input is not a grammatically correct @c SVN_PROP_MERGEINFO
- * property, contains overlapping revision ranges, or revision
- * ranges with a start revision greater than or equal to its end revision,
- * or contains paths mapped to empty revision ranges, then return
- * @c SVN_ERR_MERGEINFO_PARSE_ERROR.  Unordered revision ranges are
- * allowed, but will be sorted when placed into @a *mergeinfo.
+ * property, contains overlapping revision ranges of differing
+ * inheritability, or revision ranges with a start revision greater
+ * than or equal to its end revision, or contains paths mapped to empty
+ * revision ranges, then return  @c SVN_ERR_MERGEINFO_PARSE_ERROR.
+ * Unordered revision ranges are  allowed, but will be sorted when
+ * placed into @a *mergeinfo.  Overlapping revision ranges of the same
+ * inheritability are also allowed, but will be combined into a single
+ * range when placed into @a *mergeinfo.
  *
  * @since New in 1.5.
  */

Modified: branches/svnpatch-diff/subversion/include/svn_path.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_path.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_path.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_path.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -435,7 +435,7 @@ svn_path_is_dotpath_present(const char *
  *       in which case a pointer into @a path2 will be returned to
  *       identify the remainder path.
  *
- * ### todo: the ".." restriction is unfortunate, and would ideally
+ * ### @todo the ".." restriction is unfortunate, and would ideally
  * be lifted by making the implementation smarter.  But this is not
  * trivial: if the path is "../foo", how do you know whether or not
  * the current directory is named "foo" in its parent?

Modified: branches/svnpatch-diff/subversion/include/svn_props.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_props.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_props.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_props.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -191,15 +191,21 @@ svn_categorize_props(const apr_array_hea
 
 /** Given two property hashes (<tt>const char *name</tt> -> <tt>const
  * svn_string_t *value</tt>), deduce the differences between them (from
- * @a source_props -> @c target_props).  Return these changes as a series of
- * @c svn_prop_t structures stored in @a propdiffs, allocated from @a pool.
+ * @a source_props -> @c target_props).  Set @a propdiffs to a new array of
+ * @c svn_prop_t structures, with one entry for each property that differs,
+ * including properties that exist in @a source_props or @a target_props but
+ * not both. The @c value field of each entry is that property's value from
+ * @a target_props or NULL if that property only exists in @a source_props.
+ *
+ * Allocate the array from @a pool. Allocate the contents of the array from
+ * @a pool or by reference to the storage of the input hashes or both.
  *
  * For note, here's a quick little table describing the logic of this
  * routine:
  *
  * @verbatim
-   basehash        localhash         event
-   --------        ---------         -----
+   source_props    target_props      event
+   ------------    ------------      -----
    value = foo     value = NULL      Deletion occurred.
    value = foo     value = bar       Set occurred (modification)
    value = NULL    value = baz       Set occurred (creation) @endverbatim

Modified: branches/svnpatch-diff/subversion/include/svn_subst.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_subst.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_subst.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_subst.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -38,6 +38,9 @@ extern "C" {
 
 /* EOL conversion and keyword expansion. */
 
+/** The EOL used in the Repository for "native" files */
+#define SVN_SUBST_NATIVE_EOL_STR "\n"
+
 /** Valid states for 'svn:eol-style' property.
  *
  * Property nonexistence is equivalent to 'none'.

Modified: branches/svnpatch-diff/subversion/include/svn_wc.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/include/svn_wc.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/include/svn_wc.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/include/svn_wc.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1206,10 +1206,12 @@ typedef enum svn_wc_conflict_reason_t
  */
 typedef enum svn_wc_conflict_kind_t
 {
-  svn_wc_conflict_kind_text,         /* textual conflict (on a file) */
-  svn_wc_conflict_kind_property,     /* property conflict (on a file or dir) */
-  svn_wc_conflict_kind_tree          /* tree conflict (on a dir) */
-
+  /** textual conflict (on a file) */
+  svn_wc_conflict_kind_text,
+  /** property conflict (on a file or dir) */
+  svn_wc_conflict_kind_property,
+  /** tree conflict (on a dir) @since New in 1.6. */
+  svn_wc_conflict_kind_tree 
 } svn_wc_conflict_kind_t;
 
 
@@ -1219,6 +1221,7 @@ typedef enum svn_wc_conflict_kind_t
  */
 typedef enum svn_wc_operation_t
 {
+  svn_wc_operation_none = 0,
   svn_wc_operation_update,
   svn_wc_operation_switch,
   svn_wc_operation_merge
@@ -1679,6 +1682,7 @@ typedef struct svn_wc_diff_callbacks3_t
    * A file @a path was deleted.  The [loss of] contents can be seen by
    * comparing @a tmpfile1 and @a tmpfile2.  @a originalprops provides
    * the properties of the file.
+   * ### Some existing callers include WC "entry props" in @a originalprops.
    *
    * If known, the @c svn:mime-type value of each file is passed into
    * @a mimetype1 and @a mimetype2;  either or both of the values can
@@ -2115,7 +2119,10 @@ typedef struct svn_wc_entry_t
    */
   apr_time_t text_time;
 
-  /** last up-to-date time for properties (0 means no information available) */
+  /** last up-to-date time for properties (0 means no information available)
+   *
+   * @deprecated This value will always be 0 in version 1.4 and later.
+   */
   apr_time_t prop_time;
 
   /** Hex MD5 checksum for the untranslated text base file,

Modified: branches/svnpatch-diff/subversion/libsvn_client/client.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/client.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/client.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/client.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -108,9 +108,9 @@ svn_client__get_revision_number(svn_revn
                                 const char *path,
                                 apr_pool_t *pool);
 
-/* Set *COPYFROM_PATH and *COPYFROM_REV to the path and revision that
-   served as the source of the copy from which PATH_OR_URL at REVISION
-   was created, or NULL and SVN_INVALID_REVNUM (respectively) if
+/* Set *COPYFROM_PATH and *COPYFROM_REV to the path (without initial '/')
+   and revision that served as the source of the copy from which PATH_OR_URL
+   at REVISION was created, or NULL and SVN_INVALID_REVNUM (respectively) if
    PATH_OR_URL at REVISION was not the result of a copy operation. */
 svn_error_t *svn_client__get_copy_source(const char *path_or_url,
                                          const svn_opt_revision_t *revision,

Modified: branches/svnpatch-diff/subversion/libsvn_client/commit.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/commit.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/commit.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/commit.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -140,7 +140,7 @@ send_file_contents(const char *path,
           svn_boolean_t repair = FALSE;
 
           if (eol_style == svn_subst_eol_style_native)
-            eol = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+            eol = SVN_SUBST_NATIVE_EOL_STR;
           else if (eol_style == svn_subst_eol_style_fixed)
             repair = TRUE;
           else if (eol_style != svn_subst_eol_style_none)

Modified: branches/svnpatch-diff/subversion/libsvn_client/copy.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/copy.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/copy.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/copy.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1275,6 +1275,7 @@ wc_to_repos_copy(svn_commit_info_t **com
 static svn_error_t *
 repos_to_wc_copy_single(svn_client__copy_pair_t *pair,
                         svn_boolean_t same_repositories,
+                        svn_boolean_t ignore_externals,
                         svn_ra_session_t *ra_session,
                         svn_wc_adm_access_t *adm_access,
                         svn_client_ctx_t *ctx,
@@ -1290,7 +1291,7 @@ repos_to_wc_copy_single(svn_client__copy
               (NULL, pair->src_original, pair->dst, &pair->src_peg_revision,
                &pair->src_op_revision, NULL,
                SVN_DEPTH_INFINITY_OR_FILES(TRUE),
-               FALSE, FALSE, NULL, ctx, pool));
+               ignore_externals, FALSE, NULL, ctx, pool));
 
       /* Rewrite URLs recursively, remove wcprops, and mark everything
          as 'copied' -- assuming that the src and dst are from the
@@ -1427,6 +1428,7 @@ repos_to_wc_copy_single(svn_client__copy
 static svn_error_t *
 repos_to_wc_copy(const apr_array_header_t *copy_pairs,
                  svn_boolean_t make_parents,
+                 svn_boolean_t ignore_externals,
                  svn_client_ctx_t *ctx,
                  apr_pool_t *pool)
 {
@@ -1626,6 +1628,7 @@ repos_to_wc_copy(const apr_array_header_
       SVN_ERR(repos_to_wc_copy_single(APR_ARRAY_IDX(copy_pairs, i,
                                                     svn_client__copy_pair_t *),
                                       same_repositories,
+                                      ignore_externals,
                                       ra_session, adm_access,
                                       ctx, iterpool));
     }
@@ -1646,6 +1649,7 @@ try_copy(svn_commit_info_t **commit_info
          svn_boolean_t is_move,
          svn_boolean_t force,
          svn_boolean_t make_parents,
+         svn_boolean_t ignore_externals,
          const apr_hash_t *revprop_table,
          svn_client_ctx_t *ctx,
          apr_pool_t *pool)
@@ -1926,7 +1930,8 @@ try_copy(svn_commit_info_t **commit_info
   else if ((srcs_are_urls) && (! dst_is_url))
     {
       *commit_info_p = NULL;
-      return repos_to_wc_copy(copy_pairs, make_parents, ctx, pool);
+      return repos_to_wc_copy(copy_pairs, make_parents, ignore_externals,
+                              ctx, pool);
     }
   else
     {
@@ -1939,11 +1944,12 @@ try_copy(svn_commit_info_t **commit_info
 
 /* Public Interfaces */
 svn_error_t *
-svn_client_copy4(svn_commit_info_t **commit_info_p,
+svn_client_copy5(svn_commit_info_t **commit_info_p,
                  apr_array_header_t *sources,
                  const char *dst_path,
                  svn_boolean_t copy_as_child,
                  svn_boolean_t make_parents,
+                 svn_boolean_t ignore_externals,
                  const apr_hash_t *revprop_table,
                  svn_client_ctx_t *ctx,
                  apr_pool_t *pool)
@@ -1961,6 +1967,7 @@ svn_client_copy4(svn_commit_info_t **com
                  FALSE /* is_move */,
                  TRUE /* force, set to avoid deletion check */,
                  make_parents,
+                 ignore_externals,
                  revprop_table,
                  ctx,
                  subpool);
@@ -1988,6 +1995,7 @@ svn_client_copy4(svn_commit_info_t **com
                      FALSE /* is_move */,
                      TRUE /* force, set to avoid deletion check */,
                      make_parents,
+                     ignore_externals,
                      revprop_table,
                      ctx,
                      subpool);
@@ -2047,6 +2055,7 @@ svn_client_move5(svn_commit_info_t **com
                  TRUE /* is_move */,
                  force,
                  make_parents,
+                 FALSE,
                  revprop_table,
                  ctx,
                  subpool);
@@ -2070,6 +2079,7 @@ svn_client_move5(svn_commit_info_t **com
                      TRUE /* is_move */,
                      force,
                      make_parents,
+                     FALSE,
                      revprop_table,
                      ctx,
                      subpool);

Modified: branches/svnpatch-diff/subversion/libsvn_client/deprecated.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/deprecated.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/deprecated.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/deprecated.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -3,7 +3,7 @@
  *                "we can't lose 'em, but we can shun 'em!"
  *
  * ====================================================================
- * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -336,6 +336,19 @@ svn_client_commit(svn_client_commit_info
 
 /*** From copy.c ***/
 
+svn_error_t *
+svn_client_copy4(svn_commit_info_t **commit_info_p,
+                 apr_array_header_t *sources,
+                 const char *dst_path,
+                 svn_boolean_t copy_as_child,
+                 svn_boolean_t make_parents,
+                 const apr_hash_t *revprop_table,
+                 svn_client_ctx_t *ctx,
+                 apr_pool_t *pool)
+{
+  return svn_client_copy5(commit_info_p, sources, dst_path, copy_as_child,
+                          make_parents, FALSE, revprop_table, ctx, pool);
+}
 
 svn_error_t *
 svn_client_copy3(svn_commit_info_t **commit_info_p,
@@ -359,7 +372,6 @@ svn_client_copy3(svn_commit_info_t **com
                           NULL, ctx, pool);
 }
 
-
 svn_error_t *
 svn_client_copy2(svn_commit_info_t **commit_info_p,
                  const char *src_path,
@@ -949,7 +961,6 @@ svn_client_log4(const apr_array_header_t
                 svn_client_ctx_t *ctx,
                 apr_pool_t *pool)
 {
-  svn_client_log_args_t *log_args;
   apr_array_header_t *revision_ranges;
   svn_opt_revision_range_t *range;
 
@@ -962,14 +973,10 @@ svn_client_log4(const apr_array_header_t
 
   APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *) = range;
 
-  log_args = svn_client_log_args_create(pool);
-  log_args->limit = limit;
-  log_args->discover_changed_paths = discover_changed_paths;
-  log_args->strict_node_history = strict_node_history;
-  log_args->include_merged_revisions = include_merged_revisions;
-
-  return svn_client_log5(targets, peg_revision, revision_ranges, revprops,
-                         log_args, receiver, receiver_baton, ctx, pool);
+  return svn_client_log5(targets, peg_revision, revision_ranges, limit,
+                         discover_changed_paths, strict_node_history,
+                         include_merged_revisions, revprops, receiver,
+                         receiver_baton, ctx, pool);
 }
 
 

Modified: branches/svnpatch-diff/subversion/libsvn_client/export.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/export.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/export.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/export.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -778,12 +778,16 @@ close_file(void *file_baton,
   else
     {
       svn_subst_eol_style_t style;
-      const char *eol;
-      apr_hash_t *final_kw;
+      const char *eol = NULL;
+      svn_boolean_t repair = FALSE;
+      apr_hash_t *final_kw = NULL;
 
       if (fb->eol_style_val)
-        SVN_ERR(get_eol_style(&style, &eol, fb->eol_style_val->data,
-                              eb->native_eol));
+        {
+          SVN_ERR(get_eol_style(&style, &eol, fb->eol_style_val->data,
+                                eb->native_eol));
+          repair = TRUE;
+        }
 
       if (fb->keywords_val)
         SVN_ERR(svn_subst_build_keywords2(&final_kw, fb->keywords_val->data,
@@ -792,9 +796,7 @@ close_file(void *file_baton,
 
       SVN_ERR(svn_subst_copy_and_translate3
               (fb->tmppath, fb->path,
-               fb->eol_style_val ? eol : NULL,
-               fb->eol_style_val ? TRUE : FALSE, /* repair */
-               fb->keywords_val ? final_kw : NULL,
+               eol, repair, final_kw,
                TRUE, /* expand */
                fb->special,
                pool));

Modified: branches/svnpatch-diff/subversion/libsvn_client/info.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/info.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/info.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/info.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -64,7 +64,7 @@ build_info_from_dirent(svn_info_t **info
     tmpinfo->size               = SVN_INFO_SIZE_UNKNOWN;
 
   tmpinfo->size64               = dirent->size;
-  tmpinfo->working_size         = SVN_INVALID_FILESIZE;
+  tmpinfo->working_size64       = SVN_INVALID_FILESIZE;
   tmpinfo->tree_conflict        = NULL;
 
   *info = tmpinfo;
@@ -99,7 +99,6 @@ build_info_from_entry(svn_info_t **info,
   tmpinfo->copyfrom_url         = entry->copyfrom_url;
   tmpinfo->copyfrom_rev         = entry->copyfrom_rev;
   tmpinfo->text_time            = entry->text_time;
-  tmpinfo->prop_time            = entry->prop_time;
   tmpinfo->checksum             = entry->checksum;
   tmpinfo->conflict_old         = entry->conflict_old;
   tmpinfo->conflict_new         = entry->conflict_new;

Modified: branches/svnpatch-diff/subversion/libsvn_client/log.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/log.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/log.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/log.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -2,7 +2,7 @@
  * log.c:  return log messages
  *
  * ====================================================================
- * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -175,6 +175,8 @@ typedef struct
   /* ra session for retrieving revprops from old servers */
   svn_ra_session_t *ra_session;
   /* caller's list of requested revprops, receiver, and baton */
+  const char *ra_session_url;
+  apr_pool_t *ra_session_pool;
   const apr_array_header_t *revprops;
   svn_log_entry_receiver_t receiver;
   void *baton;
@@ -220,6 +222,12 @@ pre_15_receiver(void *baton, svn_log_ent
               want_log = TRUE;
               continue;
             }
+
+          if (rb->ra_session == NULL)
+            SVN_ERR(svn_client_open_ra_session(&rb->ra_session, 
+                                                rb->ra_session_url, 
+                                               rb->ctx, rb->ra_session_pool));
+
           SVN_ERR(svn_ra_rev_prop(rb->ra_session, log_entry->revision,
                                   name, &value, pool));
           if (log_entry->revprops == NULL)
@@ -244,6 +252,11 @@ pre_15_receiver(void *baton, svn_log_ent
     }
   else
     {
+      if (rb->ra_session == NULL)
+        SVN_ERR(svn_client_open_ra_session(&rb->ra_session, 
+                                           rb->ra_session_url,
+                                           rb->ctx, rb->ra_session_pool));
+
       SVN_ERR(svn_ra_rev_proplist(rb->ra_session, log_entry->revision,
                                   &log_entry->revprops, pool));
     }
@@ -277,8 +290,11 @@ svn_error_t *
 svn_client_log5(const apr_array_header_t *targets,
                 const svn_opt_revision_t *peg_revision,
                 const apr_array_header_t *revision_ranges,
+                int limit,
+                svn_boolean_t discover_changed_paths,
+                svn_boolean_t strict_node_history,
+                svn_boolean_t include_merged_revisions,
                 const apr_array_header_t *revprops,
-                const svn_client_log_args_t *args,
                 svn_log_entry_receiver_t real_receiver,
                 void *real_receiver_baton,
                 svn_client_ctx_t *ctx,
@@ -293,9 +309,8 @@ svn_client_log5(const apr_array_header_t
   svn_revnum_t ignored_revnum;
   svn_opt_revision_t session_opt_rev;
   const char *ra_target;
-  pre_15_receiver_baton_t rb;
+  pre_15_receiver_baton_t rb = {0};
   apr_pool_t *iterpool;
-  int limit = args->limit;
   int i;
 
   if (revision_ranges->nelts == 0)
@@ -500,8 +515,10 @@ svn_client_log5(const apr_array_header_t
     if (!has_log_revprops) {
       /* See above pre-1.5 notes. */
       rb.ctx = ctx;
-      SVN_ERR(svn_client_open_ra_session(&rb.ra_session, actual_url,
-                                         ctx, pool));
+
+      /* Create ra session on first use */
+      rb.ra_session_pool = pool;
+      rb.ra_session_url = actual_url;
     }
   }
 
@@ -605,9 +622,9 @@ svn_client_log5(const apr_array_header_t
                               start_revnum,
                               end_revnum,
                               limit,
-                              args->discover_changed_paths,
-                              args->strict_node_history,
-                              args->include_merged_revisions,
+                              discover_changed_paths,
+                              strict_node_history,
+                              include_merged_revisions,
                               passed_receiver_revprops,
                               passed_receiver,
                               passed_receiver_baton,
@@ -625,11 +642,3 @@ svn_client_log5(const apr_array_header_t
 
   return SVN_NO_ERROR;
 }
-
-svn_client_log_args_t *
-svn_client_log_args_create(apr_pool_t *pool)
-{
-  svn_client_log_args_t *log_args = apr_pcalloc(pool, sizeof(*log_args));
-
-  return log_args;
-}

Modified: branches/svnpatch-diff/subversion/libsvn_client/merge.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/merge.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/merge.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/merge.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -6694,8 +6694,17 @@ merge_cousins_and_supplement_mergeinfo(c
   apr_array_header_t *remove_sources, *add_sources, *ranges;
   svn_opt_revision_t peg_revision;
   const char *old_url;
-  svn_boolean_t same_repos =
-    (strcmp(wc_repos_root, source_repos_root) == 0) ? TRUE : FALSE;
+  const char *source_repos_uuid;
+  const char *wc_repos_uuid;
+  svn_boolean_t same_repos;
+
+  SVN_ERR(svn_client_uuid_from_url(&source_repos_uuid, source_repos_root,
+                                   ctx, pool));
+  SVN_ERR(svn_client_uuid_from_url(&wc_repos_uuid, wc_repos_root,
+                                   ctx, pool));
+
+  same_repos =
+    (strcmp(wc_repos_uuid, source_repos_uuid) == 0) ? TRUE : FALSE;
 
   peg_revision.kind = svn_opt_revision_number;
   SVN_ERR(svn_ra_get_session_url(ra_session, &old_url, pool));
@@ -6808,6 +6817,8 @@ svn_client_merge3(const char *source1,
   svn_revnum_t yc_rev = SVN_INVALID_REVNUM;
   apr_pool_t *sesspool;
   svn_boolean_t same_repos;
+  const char *source_repos_uuid;
+  const char *wc_repos_uuid;
 
   /* Sanity check our input -- we require specified revisions. */
   if ((revision1->kind == svn_opt_revision_unspecified)
@@ -6874,7 +6885,12 @@ svn_client_merge3(const char *source1,
   SVN_ERR(svn_ra_get_repos_root2(ra_session1, &source_repos_root, sesspool));
 
   /* Do our working copy and sources come from the same repository? */
-  same_repos = (strcmp(source_repos_root, wc_repos_root) == 0) ? TRUE : FALSE;
+  SVN_ERR(svn_client_uuid_from_url(&source_repos_uuid, source_repos_root,
+                                   ctx, pool));
+  SVN_ERR(svn_client_uuid_from_url(&wc_repos_uuid, wc_repos_root,
+                                   ctx, pool));
+
+  same_repos = (strcmp(source_repos_uuid, wc_repos_uuid) == 0) ? TRUE : FALSE;
 
   /* Unless we're ignoring ancestry, see if the two sources are related.  */
   if (! ignore_ancestry)
@@ -7903,6 +7919,8 @@ svn_client_merge_peg3(const char *source
   apr_pool_t *sesspool;
   svn_boolean_t use_sleep;
   svn_error_t *err;
+  const char *source_repos_uuid;
+  const char *wc_repos_uuid;
 
   /* No ranges to merge?  No problem. */
   if (ranges_to_merge->nelts == 0)
@@ -7946,9 +7964,14 @@ svn_client_merge_peg3(const char *source
 
   /* Do the real merge!  (We say with confidence that our merge
      sources are both ancestral and related.) */
+  SVN_ERR(svn_client_uuid_from_url(&source_repos_uuid, source_repos_root,
+                                   ctx, pool));
+  SVN_ERR(svn_client_uuid_from_url(&wc_repos_uuid, wc_repos_root,
+                                   ctx, pool));
+
   err = do_merge(merge_sources, target_wcpath, entry, adm_access,
                  TRUE, TRUE,
-                 (strcmp(wc_repos_root, source_repos_root) == 0),
+                 (strcmp(wc_repos_uuid, source_repos_uuid) == 0),
                  ignore_ancestry, force, dry_run, record_only, depth,
                  merge_options, &use_sleep, ctx, pool);
 

Modified: branches/svnpatch-diff/subversion/libsvn_client/mergeinfo.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/mergeinfo.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/mergeinfo.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/mergeinfo.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -2,7 +2,7 @@
  * mergeinfo.c :  merge history functions for the libsvn_client library
  *
  * ====================================================================
- * Copyright (c) 2006-2009 CollabNet.  All rights reserved.
+ * Copyright (c) 2006-2007 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -1089,7 +1089,6 @@ logs_for_mergeinfo_rangelist(const char 
   apr_array_header_t *revision_ranges;
   svn_opt_revision_t oldest_rev, youngest_rev;
   svn_opt_revision_range_t *range;
-  svn_client_log_args_t *log_args;
   struct filter_log_entry_baton_t fleb;
 
   if (! rangelist->nelts)
@@ -1118,19 +1117,15 @@ logs_for_mergeinfo_rangelist(const char 
   fleb.log_receiver_baton = log_receiver_baton;
   fleb.ctx = ctx;
 
-  /* Build log API arguments. */
+  /* Drive the log. */
   revision_ranges = apr_array_make(pool, 1, sizeof(svn_opt_revision_range_t *));
   range = apr_pcalloc(pool, sizeof(*range));
   range->end = youngest_rev;
   range->start = oldest_rev;
   APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *) = range;
-  log_args = svn_client_log_args_create(pool);
-  log_args->discover_changed_paths = discover_changed_paths;
-
-  /* Drive the log. */
-  SVN_ERR(svn_client_log5(target, &youngest_rev, revision_ranges, revprops,
-                          log_args, filter_log_entry_with_rangelist, &fleb, ctx,
-                          pool));
+  SVN_ERR(svn_client_log5(target, &youngest_rev, revision_ranges,
+                          0, discover_changed_paths, FALSE, FALSE, revprops,
+                          filter_log_entry_with_rangelist, &fleb, ctx, pool));
 
   /* Check for cancellation. */
   if (ctx->cancel_func)
@@ -1474,7 +1469,7 @@ svn_client_suggest_merge_sources(apr_arr
   if (copyfrom_path)
     {
       APR_ARRAY_PUSH(list, const char *) =
-        svn_path_url_add_component(repos_root, copyfrom_path + 1, pool);
+        svn_path_url_add_component(repos_root, copyfrom_path, pool);
     }
 
   if (mergeinfo)

Modified: branches/svnpatch-diff/subversion/libsvn_client/prop_commands.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/prop_commands.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/prop_commands.c	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/prop_commands.c	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -486,8 +486,8 @@ svn_client_revprop_set2(const char *prop
     {
       svn_wc_notify_t *notify = svn_wc_create_notify_url(URL,
                                              propval == NULL
-                                               ? svn_wc_notify_revprop_set
-                                               : svn_wc_notify_revprop_deleted,
+                                               ? svn_wc_notify_revprop_deleted
+                                               : svn_wc_notify_revprop_set,
                                              pool);
       notify->prop_name = propname;
       notify->revision = *set_rev;

Modified: branches/svnpatch-diff/subversion/libsvn_client/update.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_client/update.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_client/update.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_client/update.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -2,7 +2,7 @@
  * update.c:  wrappers around wc update functionality
  *
  * ====================================================================
- * Copyright (c) 2000-2007 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -149,7 +149,7 @@ svn_client__update_internal(svn_revnum_t
   anchor = svn_wc_adm_access_path(adm_access);
 
   /* Get full URL from the ANCHOR. */
-  SVN_ERR(svn_wc_entry(&entry, anchor, adm_access, FALSE, pool));
+  SVN_ERR(svn_wc__entry_versioned(&entry, anchor, adm_access, FALSE, pool));
   if (! entry->url)
     return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
                              _("Entry '%s' has no URL"),

Modified: branches/svnpatch-diff/subversion/libsvn_diff/diff_file.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_diff/diff_file.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_diff/diff_file.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_diff/diff_file.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1079,7 +1079,7 @@ output_unified_diff_modified(void *baton
             }
           invalid_character =
             svn_utf__last_valid(output_baton->hunk_extra_context,
-                                SVN_DIFF__EXTRA_CONTEXT_LENGTH - 1);
+                                SVN_DIFF__EXTRA_CONTEXT_LENGTH);
           for (p = invalid_character - output_baton->hunk_extra_context;
                p < SVN_DIFF__EXTRA_CONTEXT_LENGTH; p++)
             {

Modified: branches/svnpatch-diff/subversion/libsvn_fs/fs-loader.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_fs/fs-loader.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_fs/fs-loader.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_fs/fs-loader.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -652,7 +652,23 @@ svn_error_t *
 svn_fs_commit_txn(const char **conflict_p, svn_revnum_t *new_rev,
                   svn_fs_txn_t *txn, apr_pool_t *pool)
 {
-  return txn->vtable->commit(conflict_p, new_rev, txn, pool);
+#ifdef PACK_AFTER_EVERY_COMMIT
+  svn_fs_root_t *txn_root;
+  svn_fs_t *fs;
+  const char *fs_path;
+
+  SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool));
+  fs = svn_fs_root_fs(txn_root);
+  fs_path = svn_fs_path(fs, pool);
+#endif
+
+  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));
+#endif
+
+  return SVN_NO_ERROR;
 }
 
 svn_error_t *

Modified: branches/svnpatch-diff/subversion/libsvn_fs_base/dag.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_fs_base/dag.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_fs_base/dag.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_fs_base/dag.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -561,8 +561,7 @@ svn_fs_base__dag_get_proplist(apr_hash_t
                                     noderev->prop_key, trail, pool));
   proplist_skel = svn_skel__parse(raw_proplist.data, raw_proplist.len, pool);
   if (proplist_skel)
-    SVN_ERR(svn_fs_base__parse_proplist_skel(&proplist,
-                                             proplist_skel, pool));
+    SVN_ERR(svn_skel__parse_proplist(&proplist, proplist_skel, pool));
 
   *proplist_p = proplist;
   return SVN_NO_ERROR;
@@ -601,8 +600,7 @@ svn_fs_base__dag_set_proplist(dag_node_t
   rep_key = noderev->prop_key;
 
   /* Flatten the proplist into a string. */
-  SVN_ERR(svn_fs_base__unparse_proplist_skel(&proplist_skel,
-                                             proplist, pool));
+  SVN_ERR(svn_skel__unparse_proplist(&proplist_skel, proplist, pool));
   raw_proplist_buf = svn_skel__unparse(proplist_skel, pool);
 
   /* If this repository supports representation sharing, and the

Modified: branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.c	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.c	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -1,7 +1,7 @@
 /* fs_skels.c --- conversion between fs native types and skeletons
  *
  * ====================================================================
- * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -64,26 +64,6 @@ is_valid_checksum_skel(svn_skel_t *skel)
 
 
 static svn_boolean_t
-is_valid_proplist_skel(svn_skel_t *skel)
-{
-  int len = svn_skel__list_length(skel);
-
-  if ((len >= 0) && (len & 1) == 0)
-    {
-      svn_skel_t *elt;
-
-      for (elt = skel->children; elt; elt = elt->next)
-        if (! elt->is_atom)
-          return FALSE;
-
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-
-static svn_boolean_t
 is_valid_revision_skel(svn_skel_t *skel)
 {
   int len = svn_skel__list_length(skel);
@@ -397,37 +377,6 @@ is_valid_lock_skel(svn_skel_t *skel)
 /*** Parsing (conversion from skeleton to native FS type) ***/
 
 svn_error_t *
-svn_fs_base__parse_proplist_skel(apr_hash_t **proplist_p,
-                                 svn_skel_t *skel,
-                                 apr_pool_t *pool)
-{
-  apr_hash_t *proplist = NULL;
-  svn_skel_t *elt;
-
-  /* Validate the skel. */
-  if (! is_valid_proplist_skel(skel))
-    return skel_err("proplist");
-
-  /* Create the returned structure */
-  if (skel->children)
-    proplist = apr_hash_make(pool);
-  for (elt = skel->children; elt; elt = elt->next->next)
-    {
-      svn_string_t *value = svn_string_ncreate(elt->next->data,
-                                               elt->next->len, pool);
-      apr_hash_set(proplist,
-                   apr_pstrmemdup(pool, elt->data, elt->len),
-                   elt->len,
-                   value);
-    }
-
-  /* Return the structure. */
-  *proplist_p = proplist;
-  return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
 svn_fs_base__parse_revision_skel(revision_t **revision_p,
                                  svn_skel_t *skel,
                                  apr_pool_t *pool)
@@ -498,8 +447,8 @@ svn_fs_base__parse_transaction_skel(tran
                                                root_id->len, pool);
 
   /* PROPLIST */
-  SVN_ERR(svn_fs_base__parse_proplist_skel(&(transaction->proplist),
-                                           proplist, pool));
+  SVN_ERR(svn_skel__parse_proplist(&(transaction->proplist),
+                                   proplist, pool));
 
   /* COPIES */
   if ((len = svn_skel__list_length(copies)))
@@ -942,45 +891,6 @@ svn_fs_base__parse_lock_skel(svn_lock_t 
 /*** Unparsing (conversion from native FS type to skeleton) ***/
 
 svn_error_t *
-svn_fs_base__unparse_proplist_skel(svn_skel_t **skel_p,
-                                   apr_hash_t *proplist,
-                                   apr_pool_t *pool)
-{
-  svn_skel_t *skel = svn_skel__make_empty_list(pool);
-  apr_hash_index_t *hi;
-
-  /* Create the skel. */
-  if (proplist)
-    {
-      /* Loop over hash entries */
-      for (hi = apr_hash_first(pool, proplist); hi; hi = apr_hash_next(hi))
-        {
-          const void *key;
-          void *val;
-          apr_ssize_t klen;
-          svn_string_t *value;
-
-          apr_hash_this(hi, &key, &klen, &val);
-          value = val;
-
-          /* VALUE */
-          svn_skel__prepend(svn_skel__mem_atom(value->data, value->len, pool),
-                            skel);
-
-          /* NAME */
-          svn_skel__prepend(svn_skel__mem_atom(key, klen, pool), skel);
-        }
-    }
-
-  /* Validate and return the skel. */
-  if (! is_valid_proplist_skel(skel))
-    return skel_err("proplist");
-  *skel_p = skel;
-  return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
 svn_fs_base__unparse_revision_skel(svn_skel_t **skel_p,
                                    const revision_t *revision,
                                    apr_pool_t *pool)
@@ -1059,8 +969,8 @@ svn_fs_base__unparse_transaction_skel(sv
   svn_skel__prepend(copies_skel, skel);
 
   /* PROPLIST */
-  SVN_ERR(svn_fs_base__unparse_proplist_skel(&proplist_skel,
-                                             transaction->proplist, pool));
+  SVN_ERR(svn_skel__unparse_proplist(&proplist_skel,
+                                     transaction->proplist, pool));
   svn_skel__prepend(proplist_skel, skel);
 
   /* REVISION or BASE-ID */
@@ -1096,6 +1006,8 @@ svn_fs_base__unparse_transaction_skel(sv
 }
 
 
+/* Construct a skel representing CHECKSUM, allocated in POOL, and prepend
+ * it onto the existing skel SKEL. */
 static svn_error_t *
 prepend_checksum(svn_skel_t *skel,
                  svn_checksum_t *checksum,
@@ -1148,10 +1060,7 @@ svn_fs_base__unparse_representation_skel
   {
     svn_checksum_t *md5_checksum = rep->md5_checksum;
     if (! md5_checksum)
-      {
-        md5_checksum = svn_checksum_create(svn_checksum_md5, pool);
-        SVN_ERR(svn_checksum_clear(md5_checksum));
-      }
+      md5_checksum = svn_checksum_create(svn_checksum_md5, pool);
     prepend_checksum(header_skel, md5_checksum, pool);
   }
 

Modified: branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.h	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_fs_base/util/fs_skels.h	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -37,15 +37,6 @@ extern "C" {
 /*** Parsing (conversion from skeleton to native FS type) ***/
 
 
-/* Parse a `PROPLIST' SKEL into a regular hash of properties,
-   *PROPLIST_P, which has const char * property names, and
-   svn_string_t * values, or NULL if SKEL contains no properties.  Use
-   POOL for all allocations.  */
-svn_error_t *
-svn_fs_base__parse_proplist_skel(apr_hash_t **proplist_p,
-                                 svn_skel_t *skel,
-                                 apr_pool_t *pool);
-
 /* Parse a `REVISION' SKEL into *REVISION_P.  Use POOL for all
    allocations.  */
 svn_error_t *
@@ -107,14 +98,6 @@ svn_fs_base__parse_lock_skel(svn_lock_t 
 /*** Unparsing (conversion from native FS type to skeleton) ***/
 
 
-/* Unparse a PROPLIST hash (which has const char * property names and
-   svn_stringbuf_t * values) into a `PROPLIST' skel *SKEL_P.  Use POOL
-   for all allocations.  */
-svn_error_t *
-svn_fs_base__unparse_proplist_skel(svn_skel_t **skel_p,
-                                   apr_hash_t *proplist,
-                                   apr_pool_t *pool);
-
 /* Unparse REVISION into a `REVISION' skel *SKEL_P.  Use POOL for all
    allocations.  */
 svn_error_t *

Modified: branches/svnpatch-diff/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_fs_fs/fs_fs.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_fs_fs/fs_fs.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_fs_fs/fs_fs.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1401,7 +1401,7 @@ svn_fs_fs__hotcopy(const char *src_path,
                    apr_pool_t *pool)
 {
   const char *src_subdir, *dst_subdir;
-  svn_revnum_t youngest, rev;
+  svn_revnum_t youngest, rev, min_unpacked_rev;
   apr_pool_t *iterpool;
   svn_node_kind_t kind;
   int format, max_files_per_dir;
@@ -1418,10 +1418,22 @@ svn_fs_fs__hotcopy(const char *src_path,
   /* Copy the uuid. */
   SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_UUID, pool));
 
-  /* Copy the min unpacked rev. */
+  /* Copy the min unpacked rev, and read its value. */
   if (format >= SVN_FS_FS__MIN_PACKED_FORMAT)
-    SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_MIN_UNPACKED_REV,
-                                 pool));
+    {
+      const char *min_unpacked_rev_path;
+      min_unpacked_rev_path = svn_path_join(src_path, PATH_MIN_UNPACKED_REV,
+                                            pool);
+
+      SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_MIN_UNPACKED_REV,
+                                   pool));
+      SVN_ERR(read_min_unpacked_rev(&min_unpacked_rev, min_unpacked_rev_path,
+                                    pool));
+    }
+  else
+    {
+      min_unpacked_rev = 0;
+    }
 
   /* Find the youngest revision from this current file. */
   SVN_ERR(get_youngest(&youngest, dst_path, pool));
@@ -1433,7 +1445,24 @@ svn_fs_fs__hotcopy(const char *src_path,
   SVN_ERR(svn_io_make_dir_recursively(dst_subdir, pool));
 
   iterpool = svn_pool_create(pool);
-  for (rev = 0; rev <= youngest; rev++)
+  /* First, copy packed shards. */
+  for (rev = 0; rev < min_unpacked_rev; rev += max_files_per_dir)
+    {
+      const char *packed_shard = apr_psprintf(iterpool, "%ld.pack", rev);
+      const char *src_subdir_packed_shard;
+      src_subdir_packed_shard = svn_path_join(src_subdir, packed_shard, pool);
+
+      SVN_ERR(svn_io_copy_dir_recursively(src_subdir_packed_shard,
+                                          dst_subdir, packed_shard,
+                                          TRUE /* copy_perms */,
+                                          NULL /* cancel_func */, NULL,
+                                          iterpool));
+      svn_pool_clear(iterpool);
+    }
+
+  /* Then, copy non-packed shards. */
+  assert(rev == min_unpacked_rev);
+  for (; rev <= youngest; rev++)
     {
       const char *src_subdir_shard = src_subdir,
                  *dst_subdir_shard = dst_subdir;

Modified: branches/svnpatch-diff/subversion/libsvn_ra/ra_loader.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra/ra_loader.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra/ra_loader.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra/ra_loader.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -545,6 +545,7 @@ svn_error_t *svn_ra_change_rev_prop(svn_
                                     const svn_string_t *value,
                                     apr_pool_t *pool)
 {
+  SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(rev));
   return session->vtable->change_rev_prop(session, rev, name, value, pool);
 }
 
@@ -553,6 +554,7 @@ svn_error_t *svn_ra_rev_proplist(svn_ra_
                                  apr_hash_t **props,
                                  apr_pool_t *pool)
 {
+  SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(rev));
   return session->vtable->rev_proplist(session, rev, props, pool);
 }
 
@@ -562,6 +564,7 @@ svn_error_t *svn_ra_rev_prop(svn_ra_sess
                              svn_string_t **value,
                              apr_pool_t *pool)
 {
+  SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(rev));
   return session->vtable->rev_prop(session, rev, name, value, pool);
 }
 

Modified: branches/svnpatch-diff/subversion/libsvn_ra_neon/options.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_neon/options.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_neon/options.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_neon/options.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -18,11 +18,10 @@
 
 
 
-#include <apr_pools.h>
-
+#include "svn_pools.h"
 #include "svn_error.h"
-
 #include "svn_private_config.h"
+#include "../libsvn_ra/ra_loader.h"
 
 #include "ra_neon.h"
 
@@ -46,8 +45,6 @@ typedef struct {
   svn_string_t *activity_coll;
 } options_ctx_t;
 
-
-
 static int
 validate_element(svn_ra_neon__xml_elmid parent, svn_ra_neon__xml_elmid child)
 {
@@ -151,3 +148,243 @@ svn_ra_neon__get_activity_collection(con
 
   return SVN_NO_ERROR;
 }
+
+
+/** Capabilities exchange. */
+
+/* Both server and repository support the capability. */
+static const char *capability_yes = "yes";
+/* Either server or repository does not support the capability. */
+static const char *capability_no = "no";
+/* Server supports the capability, but don't yet know if repository does. */
+static const char *capability_server_yes = "server-yes";
+
+
+/* Store in RAS the capabilities discovered from REQ's headers.
+   Use POOL for temporary allocation only. */
+static void
+parse_capabilities(ne_request *req,
+                   svn_ra_neon__session_t *ras,
+                   apr_pool_t *pool)
+{
+  const char *header_value;
+
+  /* Start out assuming all capabilities are unsupported. */
+  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_DEPTH,
+               APR_HASH_KEY_STRING, capability_no);
+  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_MERGEINFO,
+               APR_HASH_KEY_STRING, capability_no);
+  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS,
+               APR_HASH_KEY_STRING, capability_no);
+
+  /* Then find out which ones are supported. */
+  header_value = ne_get_response_header(req, "dav");
+  if (header_value)
+    {
+      /* Multiple headers of the same name will have been merged
+         together by the time we see them (either by an intermediary,
+         as is permitted in HTTP, or by neon) -- merged in the sense
+         that if a header "foo" appears multiple times, all the values
+         will be concatenated together, with spaces at the splice
+         points.  For example, if the server sent:
+
+            DAV: 1,2
+            DAV: version-control,checkout,working-resource
+            DAV: merge,baseline,activity,version-controlled-collection
+            DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
+
+          Here we might see:
+
+          header_value == "1,2, version-control,checkout,working-resource, \
merge,baseline,activity,version-controlled-collection, \
http://subversion.tigris.org/xmlns/dav/svn/depth, \
<http://apache.org/dav/propset/fs/1>" +
+          (Deliberately not line-wrapping that, so you can see what
+          we're about to parse.)
+      */
+
+      apr_array_header_t *vals =
+        svn_cstring_split(header_value, ",", TRUE, pool);
+
+      /* Right now we only have a few capabilities to detect, so
+         just seek for them directly.  This could be written
+         slightly more efficiently, but that wouldn't be worth it
+         until we have many more capabilities. */
+
+      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals))
+        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_DEPTH,
+                     APR_HASH_KEY_STRING, capability_yes);
+
+      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals))
+        /* The server doesn't know what repository we're referring
+           to, so it can't just say capability_yes. */
+        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_MERGEINFO,
+                     APR_HASH_KEY_STRING, capability_server_yes);
+
+      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals))
+        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS,
+                     APR_HASH_KEY_STRING, capability_yes);
+
+      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY,
+                                      vals))
+        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_PARTIAL_REPLAY,
+                     APR_HASH_KEY_STRING, capability_yes);
+    }
+}
+
+
+/* Exchange capabilities with the server, by sending an OPTIONS
+   request announcing the client's capabilities, and by filling
+   RAS->capabilities with the server's capabilities as read from the
+   response headers.  Use POOL only for temporary allocation. */
+svn_error_t *
+svn_ra_neon__exchange_capabilities(svn_ra_neon__session_t *ras, 
+                                   apr_pool_t *pool)
+{
+  int http_ret_code;
+  svn_ra_neon__request_t *rar;
+  svn_error_t *err = SVN_NO_ERROR;
+
+  rar = svn_ra_neon__request_create(ras, "OPTIONS", ras->url->data, pool);
+
+  /* Client capabilities are sent with every request.
+     See issue #3255 for more details. */
+  err = svn_ra_neon__request_dispatch(&http_ret_code, rar,
+                                      NULL, NULL, 200, 0, pool);
+  if (err)
+    goto cleanup;
+
+  if (http_ret_code == 200)
+    {
+      parse_capabilities(rar->ne_req, ras, pool);
+    }
+  else
+    {
+      /* "can't happen", because svn_ra_neon__request_dispatch()
+         itself should have returned error if response code != 200. */
+      return svn_error_createf
+        (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
+         _("OPTIONS request (for capabilities) got HTTP response code %d"),
+         http_ret_code);
+    }
+
+ cleanup:
+  svn_ra_neon__request_destroy(rar);
+
+  return err;
+}
+
+
+svn_error_t *
+svn_ra_neon__has_capability(svn_ra_session_t *session,
+                            svn_boolean_t *has,
+                            const char *capability,
+                            apr_pool_t *pool)
+{
+  svn_ra_neon__session_t *ras = session->priv;
+  const char *cap_result;
+
+  /* This capability doesn't rely on anything server side. */
+  if (strcmp(capability, SVN_RA_CAPABILITY_COMMIT_REVPROPS) == 0)
+    {
+      *has = TRUE;
+      return SVN_NO_ERROR;
+    }
+
+ cap_result = apr_hash_get(ras->capabilities,
+                           capability,
+                           APR_HASH_KEY_STRING);
+
+  /* If any capability is unknown, they're all unknown, so ask. */
+  if (cap_result == NULL)
+    SVN_ERR(svn_ra_neon__exchange_capabilities(ras, pool));
+
+
+  /* Try again, now that we've fetched the capabilities. */
+  cap_result = apr_hash_get(ras->capabilities,
+                            capability, APR_HASH_KEY_STRING);
+
+  /* Some capabilities depend on the repository as well as the server.
+     NOTE: ../libsvn_ra_serf/serf.c:svn_ra_serf__has_capability()
+     has a very similar code block.  If you change something here,
+     check there as well. */
+  if (cap_result == capability_server_yes)
+    {
+      if (strcmp(capability, SVN_RA_CAPABILITY_MERGEINFO) == 0)
+        {
+          /* Handle mergeinfo specially.  Mergeinfo depends on the
+             repository as well as the server, but the server routine
+             that answered our svn_ra_neon__exchange_capabilities() call
+             above didn't even know which repository we were interested in
+             -- it just told us whether the server supports mergeinfo.
+             If the answer was 'no', there's no point checking the
+             particular repository; but if it was 'yes, we still must
+             change it to 'no' iff the repository itself doesn't
+             support mergeinfo. */
+          svn_mergeinfo_catalog_t ignored;
+          svn_error_t *err;
+          apr_array_header_t *paths = apr_array_make(pool, 1,
+                                                     sizeof(char *));
+          APR_ARRAY_PUSH(paths, const char *) = "";
+
+          err = svn_ra_neon__get_mergeinfo(session, &ignored, paths, 0,
+                                           FALSE, FALSE, pool);
+
+          if (err)
+            {
+              if (err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
+                {
+                  svn_error_clear(err);
+                  cap_result = capability_no;
+                }
+              else if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
+                {
+                  /* Mergeinfo requests use relative paths, and
+                     anyway we're in r0, so this is a likely error,
+                     but it means the repository supports mergeinfo! */
+                  svn_error_clear(err);
+                  cap_result = capability_yes;
+                }
+              else
+                return err;
+
+            }
+          else
+            cap_result = capability_yes;
+
+          apr_hash_set(ras->capabilities,
+                       SVN_RA_CAPABILITY_MERGEINFO, APR_HASH_KEY_STRING,
+                       cap_result);
+        }
+      else
+        {
+          return svn_error_createf
+            (SVN_ERR_UNKNOWN_CAPABILITY, NULL,
+             _("Don't know how to handle '%s' for capability '%s'"),
+             capability_server_yes, capability);
+        }
+    }
+
+  if (cap_result == capability_yes)
+    {
+      *has = TRUE;
+    }
+  else if (cap_result == capability_no)
+    {
+      *has = FALSE;
+    }
+  else if (cap_result == NULL)
+    {
+      return svn_error_createf
+        (SVN_ERR_UNKNOWN_CAPABILITY, NULL,
+         _("Don't know anything about capability '%s'"), capability);
+    }
+  else  /* "can't happen" */
+    {
+      /* Well, let's hope it's a string. */
+      return svn_error_createf
+        (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
+         _("Attempt to fetch capability '%s' resulted in '%s'"),
+         capability, cap_result);
+    }
+
+  return SVN_NO_ERROR;
+}

Modified: branches/svnpatch-diff/subversion/libsvn_ra_neon/ra_neon.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_neon/ra_neon.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_neon/ra_neon.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_neon/ra_neon.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1053,6 +1053,12 @@ svn_ra_neon__has_capability(svn_ra_sessi
                             const char *capability,
                             apr_pool_t *pool);
 
+/* 
+ * Do a capabilities exchange with the server. */
+svn_error_t *
+svn_ra_neon__exchange_capabilities(svn_ra_neon__session_t *ras, 
+                                   apr_pool_t *pool);
+
 /*
  * Implements the get_deleted_rev RA layer function. */
 svn_error_t *

Modified: branches/svnpatch-diff/subversion/libsvn_ra_neon/session.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_neon/session.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_neon/session.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_neon/session.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -698,246 +698,6 @@ ra_neon_neonprogress(void *baton, off_t 
 
 
 
-/** Capabilities exchange. */
-
-/* Both server and repository support the capability. */
-static const char *capability_yes = "yes";
-/* Either server or repository does not support the capability. */
-static const char *capability_no = "no";
-/* Server supports the capability, but don't yet know if repository does. */
-static const char *capability_server_yes = "server-yes";
-
-
-/* Store in RAS the capabilities discovered from REQ's headers.
-   Use POOL for temporary allocation only. */
-static void
-parse_capabilities(ne_request *req,
-                   svn_ra_neon__session_t *ras,
-                   apr_pool_t *pool)
-{
-  const char *header_value;
-
-  /* Start out assuming all capabilities are unsupported. */
-  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_DEPTH,
-               APR_HASH_KEY_STRING, capability_no);
-  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_MERGEINFO,
-               APR_HASH_KEY_STRING, capability_no);
-  apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS,
-               APR_HASH_KEY_STRING, capability_no);
-
-  /* Then find out which ones are supported. */
-  header_value = ne_get_response_header(req, "dav");
-  if (header_value)
-    {
-      /* Multiple headers of the same name will have been merged
-         together by the time we see them (either by an intermediary,
-         as is permitted in HTTP, or by neon) -- merged in the sense
-         that if a header "foo" appears multiple times, all the values
-         will be concatenated together, with spaces at the splice
-         points.  For example, if the server sent:
-
-            DAV: 1,2
-            DAV: version-control,checkout,working-resource
-            DAV: merge,baseline,activity,version-controlled-collection
-            DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
-
-          Here we might see:
-
-          header_value == "1,2, version-control,checkout,working-resource, \
merge,baseline,activity,version-controlled-collection, \
http://subversion.tigris.org/xmlns/dav/svn/depth, \
                <http://apache.org/dav/propset/fs/1>"
-
-          (Deliberately not line-wrapping that, so you can see what
-          we're about to parse.)
-      */
-
-      apr_array_header_t *vals =
-        svn_cstring_split(header_value, ",", TRUE, pool);
-
-      /* Right now we only have a few capabilities to detect, so
-         just seek for them directly.  This could be written
-         slightly more efficiently, but that wouldn't be worth it
-         until we have many more capabilities. */
-
-      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals))
-        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_DEPTH,
-                     APR_HASH_KEY_STRING, capability_yes);
-
-      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals))
-        /* The server doesn't know what repository we're referring
-           to, so it can't just say capability_yes. */
-        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_MERGEINFO,
-                     APR_HASH_KEY_STRING, capability_server_yes);
-
-      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals))
-        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS,
-                     APR_HASH_KEY_STRING, capability_yes);
-
-      if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY,
-                                      vals))
-        apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_PARTIAL_REPLAY,
-                     APR_HASH_KEY_STRING, capability_yes);
-    }
-}
-
-
-/* Exchange capabilities with the server, by sending an OPTIONS
-   request announcing the client's capabilities, and by filling
-   RAS->capabilities with the server's capabilities as read from the
-   response headers.  Use POOL only for temporary allocation. */
-static svn_error_t *
-exchange_capabilities(svn_ra_neon__session_t *ras, apr_pool_t *pool)
-{
-  int http_ret_code;
-  svn_ra_neon__request_t *rar;
-  svn_error_t *err = SVN_NO_ERROR;
-
-  rar = svn_ra_neon__request_create(ras, "OPTIONS", ras->url->data, pool);
-
-  /* Client capabilities are sent with every request.
-     See issue #3255 for more details. */
-  err = svn_ra_neon__request_dispatch(&http_ret_code, rar,
-                                      NULL, NULL, 200, 0, pool);
-  if (err)
-    goto cleanup;
-
-  if (http_ret_code == 200)
-    {
-      parse_capabilities(rar->ne_req, ras, pool);
-    }
-  else
-    {
-      /* "can't happen", because svn_ra_neon__request_dispatch()
-         itself should have returned error if response code != 200. */
-      return svn_error_createf
-        (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
-         _("OPTIONS request (for capabilities) got HTTP response code %d"),
-         http_ret_code);
-    }
-
- cleanup:
-  svn_ra_neon__request_destroy(rar);
-
-  return err;
-}
-
-
-svn_error_t *
-svn_ra_neon__has_capability(svn_ra_session_t *session,
-                            svn_boolean_t *has,
-                            const char *capability,
-                            apr_pool_t *pool)
-{
-  svn_ra_neon__session_t *ras = session->priv;
-  const char *cap_result;
-
-  /* This capability doesn't rely on anything server side. */
-  if (strcmp(capability, SVN_RA_CAPABILITY_COMMIT_REVPROPS) == 0)
-    {
-      *has = TRUE;
-      return SVN_NO_ERROR;
-    }
-
- cap_result = apr_hash_get(ras->capabilities,
-                           capability,
-                           APR_HASH_KEY_STRING);
-
-  /* If any capability is unknown, they're all unknown, so ask. */
-  if (cap_result == NULL)
-    SVN_ERR(exchange_capabilities(ras, pool));
-
-
-  /* Try again, now that we've fetched the capabilities. */
-  cap_result = apr_hash_get(ras->capabilities,
-                            capability, APR_HASH_KEY_STRING);
-
-  /* Some capabilities depend on the repository as well as the server.
-     NOTE: ../libsvn_ra_serf/serf.c:svn_ra_serf__has_capability()
-     has a very similar code block.  If you change something here,
-     check there as well. */
-  if (cap_result == capability_server_yes)
-    {
-      if (strcmp(capability, SVN_RA_CAPABILITY_MERGEINFO) == 0)
-        {
-          /* Handle mergeinfo specially.  Mergeinfo depends on the
-             repository as well as the server, but the server routine
-             that answered our exchange_capabilities() call above
-             didn't even know which repository we were interested in
-             -- it just told us whether the server supports mergeinfo.
-             If the answer was 'no', there's no point checking the
-             particular repository; but if it was 'yes, we still must
-             change it to 'no' iff the repository itself doesn't
-             support mergeinfo. */
-          svn_mergeinfo_catalog_t ignored;
-          svn_error_t *err;
-          apr_array_header_t *paths = apr_array_make(pool, 1,
-                                                     sizeof(char *));
-          APR_ARRAY_PUSH(paths, const char *) = "";
-
-          err = svn_ra_neon__get_mergeinfo(session, &ignored, paths, 0,
-                                           FALSE, FALSE, pool);
-
-          if (err)
-            {
-              if (err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
-                {
-                  svn_error_clear(err);
-                  cap_result = capability_no;
-                }
-              else if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
-                {
-                  /* Mergeinfo requests use relative paths, and
-                     anyway we're in r0, so this is a likely error,
-                     but it means the repository supports mergeinfo! */
-                  svn_error_clear(err);
-                  cap_result = capability_yes;
-                }
-              else
-                return err;
-
-            }
-          else
-            cap_result = capability_yes;
-
-          apr_hash_set(ras->capabilities,
-                       SVN_RA_CAPABILITY_MERGEINFO, APR_HASH_KEY_STRING,
-                       cap_result);
-        }
-      else
-        {
-          return svn_error_createf
-            (SVN_ERR_UNKNOWN_CAPABILITY, NULL,
-             _("Don't know how to handle '%s' for capability '%s'"),
-             capability_server_yes, capability);
-        }
-    }
-
-  if (cap_result == capability_yes)
-    {
-      *has = TRUE;
-    }
-  else if (cap_result == capability_no)
-    {
-      *has = FALSE;
-    }
-  else if (cap_result == NULL)
-    {
-      return svn_error_createf
-        (SVN_ERR_UNKNOWN_CAPABILITY, NULL,
-         _("Don't know anything about capability '%s'"), capability);
-    }
-  else  /* "can't happen" */
-    {
-      /* Well, let's hope it's a string. */
-      return svn_error_createf
-        (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
-         _("Attempt to fetch capability '%s' resulted in '%s'"),
-         capability, cap_result);
-    }
-
-  return SVN_NO_ERROR;
-}
-
-
-
 /* ### need an ne_session_dup to avoid the second gethostbyname
  * call and make this halfway sane. */
 
@@ -1281,7 +1041,7 @@ svn_ra_neon__open(svn_ra_session_t *sess
   ne_set_progress(sess2, ra_neon_neonprogress, neonprogress_baton);
   session->priv = ras;
 
-  return exchange_capabilities(ras, pool);
+  return svn_ra_neon__exchange_capabilities(ras, pool);
 }
 
 

Modified: branches/svnpatch-diff/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_serf/ra_serf.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_serf/ra_serf.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_serf/ra_serf.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -35,6 +35,11 @@
 #include "private/svn_dav_protocol.h"
 
 
+/* Enforce the minimum version of serf. */
+#if !SERF_VERSION_AT_LEAST(0, 3, 0)
+#error Please update your version of serf to at least 0.3.0.
+#endif
+
 /** Use this to silence compiler warnings about unused parameters. */
 #define UNUSED_CTX(x) ((void)(x))
 
@@ -45,10 +50,8 @@
                    APR_STRINGIFY(SERF_PATCH_VERSION)
 
 #ifdef WIN32
-#if SERF_VERSION_AT_LEAST(0, 1, 3)
 #define SVN_RA_SERF_SSPI_ENABLED
 #endif
-#endif /* WIN32 */
 
 
 /* Forward declarations. */
@@ -318,9 +321,6 @@ svn_ra_serf__conn_closed(serf_connection
                          apr_pool_t *pool);
 
 apr_status_t
-svn_ra_serf__is_conn_closing(serf_bucket_t *response);
-
-apr_status_t
 svn_ra_serf__cleanup_serf_session(void *data);
 
 /* Helper function to provide SSL client certificates. */

Modified: branches/svnpatch-diff/subversion/libsvn_ra_serf/serf.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_serf/serf.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_serf/serf.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_serf/serf.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -336,10 +336,9 @@ load_config(svn_ra_serf__session_t *sess
 {
   svn_config_t *config, *config_client;
   const char *server_group;
-#if SERF_VERSION_AT_LEAST(0, 1, 3)
-  const char *proxy_host = NULL, *port_str = NULL;
+  const char *proxy_host = NULL;
+  const char *port_str = NULL;
   unsigned int proxy_port;
-#endif
 
   config = apr_hash_get(config_hash, SVN_CONFIG_CATEGORY_SERVERS,
                         APR_HASH_KEY_STRING);
@@ -355,7 +354,6 @@ load_config(svn_ra_serf__session_t *sess
   svn_auth_set_parameter(session->wc_callbacks->auth_baton,
                          SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS, config);
 
-#if SERF_VERSION_AT_LEAST(0, 1, 3)
   /* Load the global proxy server settings, if set. */
   svn_config_get(config, &proxy_host, SVN_CONFIG_SECTION_GLOBAL,
                  SVN_CONFIG_OPTION_HTTP_PROXY_HOST, NULL);
@@ -372,7 +370,6 @@ load_config(svn_ra_serf__session_t *sess
                               TRUE));
   svn_config_get(config, &session->ssl_authorities, SVN_CONFIG_SECTION_GLOBAL,
                  SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES, NULL);
-#endif
 
   if (config)
     server_group = svn_config_find_group(config,
@@ -390,7 +387,6 @@ load_config(svn_ra_serf__session_t *sess
       svn_auth_set_parameter(session->wc_callbacks->auth_baton,
                              SVN_AUTH_PARAM_SERVER_GROUP, server_group);
 
-#if SERF_VERSION_AT_LEAST(0, 1, 3)
       /* Load the group proxy server settings, overriding global settings. */
       svn_config_get(config, &proxy_host, server_group,
                      SVN_CONFIG_OPTION_HTTP_PROXY_HOST, NULL);
@@ -408,10 +404,8 @@ load_config(svn_ra_serf__session_t *sess
                                   TRUE));
       svn_config_get(config, &session->ssl_authorities, server_group,
                      SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES, NULL);
-#endif
     }
 
-#if SERF_VERSION_AT_LEAST(0, 1, 3)
   /* Convert the proxy port value, if any. */
   if (port_str)
     {
@@ -447,12 +441,10 @@ load_config(svn_ra_serf__session_t *sess
     }
   else
     session->using_proxy = FALSE;
-#endif
 
   return SVN_NO_ERROR;
 }
 
-#if SERF_VERSION_AT_LEAST(0,1,3)
 static void
 svn_ra_serf__progress(void *progress_baton, apr_off_t read, apr_off_t written)
 {
@@ -464,7 +456,6 @@ svn_ra_serf__progress(void *progress_bat
                                   serf_sess->pool);
     }
 }
-#endif
 
 static svn_error_t *
 svn_ra_serf__open(svn_ra_session_t *session,
@@ -580,10 +571,8 @@ svn_ra_serf__open(svn_ra_session_t *sess
                              serf_sess->pool);
 
   /* Set the progress callback. */
-#if SERF_VERSION_AT_LEAST(0,1,3)
   serf_context_set_progress_cb(serf_sess->context, svn_ra_serf__progress,
                                serf_sess);
-#endif
 
   serf_sess->num_conns = 1;
 

Modified: branches/svnpatch-diff/subversion/libsvn_ra_serf/util.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_serf/util.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_serf/util.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_serf/util.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -41,8 +41,8 @@
 #define XML_STATUS_OK    1
 #define XML_STATUS_ERROR 0
 #endif
+
 
-#if SERF_VERSION_AT_LEAST(0,1,3)
 static const apr_uint32_t serf_failure_map[][2] =
 {
   { SERF_SSL_CERT_NOTYETVALID,   SVN_AUTH_SSL_NOTYETVALID },
@@ -115,13 +115,11 @@ ssl_server_cert(void *baton, int failure
   apr_hash_t *issuer, *subject, *serf_cert;
   void *creds;
 
-#if SERF_VERSION_AT_LEAST(0, 3, 0)
   /* Implicitly approve any non-server certs. */
   if (serf_ssl_cert_depth(cert) > 0)
     {
       return APR_SUCCESS;
     }
-#endif
 
   apr_pool_create(&subpool, conn->session->pool);
 
@@ -143,11 +141,7 @@ ssl_server_cert(void *baton, int failure
   if (! cert_info.valid_until)
     cert_info.valid_until = apr_pstrdup(subpool, "[invalid date]");
   cert_info.issuer_dname = convert_organisation_to_str(issuer, subpool);
-#if SERF_VERSION_AT_LEAST(0, 2, 1)
   cert_info.ascii_cert = serf_ssl_cert_export(cert, subpool);
-#else
-  cert_info.ascii_cert = "ce";
-#endif
 
   svn_failures = ssl_convert_serf_failures(failures);
 
@@ -227,7 +221,6 @@ load_authorities(svn_ra_serf__connection
 
   return SVN_NO_ERROR;
 }
-#endif
 
 serf_bucket_t *
 svn_ra_serf__conn_setup(apr_socket_t *sock,
@@ -237,12 +230,8 @@ svn_ra_serf__conn_setup(apr_socket_t *so
   serf_bucket_t *bucket;
   svn_ra_serf__connection_t *conn = baton;
 
-#if SERF_VERSION_AT_LEAST(0,1,3)
   bucket = serf_context_bucket_socket_create(conn->session->context,
                                              sock, conn->bkt_alloc);
-#else
-  bucket = serf_bucket_socket_create(sock, conn->bkt_alloc);
-#endif
 
   if (conn->using_ssl)
     {
@@ -251,15 +240,14 @@ svn_ra_serf__conn_setup(apr_socket_t *so
       if (!conn->ssl_context)
         {
           conn->ssl_context = serf_bucket_ssl_decrypt_context_get(bucket);
-#if SERF_VERSION_AT_LEAST(0,1,1)
+
           serf_ssl_client_cert_provider_set(conn->ssl_context,
                                             svn_ra_serf__handle_client_cert,
                                             conn, conn->session->pool);
           serf_ssl_client_cert_password_set(conn->ssl_context,
                                             svn_ra_serf__handle_client_cert_pw,
                                             conn, conn->session->pool);
-#endif
-#if SERF_VERSION_AT_LEAST(0,1,3)
+
           serf_ssl_server_cert_callback_set(conn->ssl_context,
                                             ssl_server_cert,
                                             conn);
@@ -281,7 +269,6 @@ svn_ra_serf__conn_setup(apr_socket_t *so
                   svn_error_clear(err);
                 }
             }
-#endif
         }
     }
 
@@ -349,29 +336,9 @@ svn_ra_serf__conn_closed(serf_connection
 apr_status_t
 svn_ra_serf__cleanup_serf_session(void *data)
 {
-#if !SERF_VERSION_AT_LEAST(0,3,0)
-  svn_ra_serf__session_t *serf_sess = data;
-  int i;
-
-  /* If we are cleaning up due to an error, don't call connection_close
-   * as we're already on our way out of here and we'll defer to serf's
-   * cleanups.
-   */
-  if (serf_sess->pending_error)
-    {
-      return APR_SUCCESS;
-    }
+  /* svn_ra_serf__session_t *serf_sess = data; */
 
-  /* serf 0.3.0+ will close connections on pool cleanup */
-  for (i = 0; i < serf_sess->num_conns; i++)
-    {
-      if (serf_sess->conns[i])
-        {
-          serf_connection_close(serf_sess->conns[i]->conn);
-          serf_sess->conns[i] = NULL;
-        }
-    }
-#endif
+  /* Nothing to do. */
 
   return APR_SUCCESS;
 }
@@ -522,19 +489,17 @@ svn_ra_serf__setup_serf_req(serf_request
       if (!conn->ssl_context)
         {
           conn->ssl_context = serf_bucket_ssl_encrypt_context_get(*req_bkt);
-#if SERF_VERSION_AT_LEAST(0,1,1)
+
           serf_ssl_client_cert_provider_set(conn->ssl_context,
                                             svn_ra_serf__handle_client_cert,
                                             conn, conn->session->pool);
           serf_ssl_client_cert_password_set(conn->ssl_context,
                                             svn_ra_serf__handle_client_cert_pw,
                                             conn, conn->session->pool);
-#endif
         }
     }
 
   /* Set up Proxy settings */
-#if SERF_VERSION_AT_LEAST(0,1,3)
   if (conn->session->using_proxy)
     {
       char *root = apr_uri_unparse(conn->session->pool,
@@ -542,7 +507,6 @@ svn_ra_serf__setup_serf_req(serf_request
                                    APR_URI_UNP_OMITPATHINFO);
       serf_bucket_request_set_root(*req_bkt, root);
     }
-#endif
 
   if (ret_hdrs_bkt)
     {
@@ -591,23 +555,6 @@ svn_ra_serf__context_run_wait(svn_boolea
   return SVN_NO_ERROR;
 }
 
-#if ! SERF_VERSION_AT_LEAST(0, 1, 3)
-apr_status_t
-svn_ra_serf__is_conn_closing(serf_bucket_t *response)
-{
-  serf_bucket_t *hdrs;
-  const char *val;
-
-  hdrs = serf_bucket_response_get_headers(response);
-  val = serf_bucket_headers_get(hdrs, "Connection");
-  if (val && svn_cstring_casecmp("close", val) == 0)
-    {
-      return SERF_ERROR_CLOSING;
-    }
-
-  return APR_EOF;
-}
-#endif
 
 /*
  * Expat callback invoked on a start element tag for an error response.
@@ -1115,24 +1062,12 @@ svn_ra_serf__handle_server_error(serf_re
                                  serf_bucket_t *response,
                                  apr_pool_t *pool)
 {
-  svn_ra_serf__server_error_t server_err;
+  svn_ra_serf__server_error_t server_err = { 0 };
   apr_status_t status;
 
-  memset(&server_err, 0, sizeof(server_err));
   status = svn_ra_serf__handle_discard_body(request, response,
                                             &server_err, pool);
 
-#if ! SERF_VERSION_AT_LEAST(0, 1, 3)
-  if (APR_STATUS_IS_EOF(status))
-    {
-      status = svn_ra_serf__is_conn_closing(response);
-      if (status == SERF_ERROR_CLOSING)
-        {
-          serf_connection_reset(serf_request_get_conn(request));
-        }
-    }
-#endif
-
   return server_err.error;
 }
 
@@ -1243,12 +1178,6 @@ handle_response(serf_request_t *request,
           if (! APR_STATUS_IS_EAGAIN(status))
             {
               svn_ra_serf__priority_request_create(ctx);
-#if ! SERF_VERSION_AT_LEAST(0, 1, 3)
-              if (APR_STATUS_IS_EOF(status))
-                {
-                  status = svn_ra_serf__is_conn_closing(response);
-                }
-#endif
               return status;
             }
         }
@@ -1274,13 +1203,6 @@ handle_response(serf_request_t *request,
                                      pool);
     }
 
-#if ! SERF_VERSION_AT_LEAST(0, 1, 3)
-  if (APR_STATUS_IS_EOF(status))
-    {
-      status = svn_ra_serf__is_conn_closing(response);
-    }
-#endif
-
 cleanup:
   /* If a snapshot was set on the body bucket, it wasn't destroyed when the
      request was sent, we have to destroy it now upon successful handling of
@@ -1365,7 +1287,6 @@ setup_request(serf_request_t *request,
                hasn't been read yet is a cheap operation. We need a way to find
                out if we really need to restore a snapshot, or if we still are
                in the initial state. */
-#if SERF_VERSION_AT_LEAST(0,3,0)
             apr_status_t status;
             if (ctx->body_snapshot_set)
               {
@@ -1387,7 +1308,6 @@ setup_request(serf_request_t *request,
                    fall back to non-snapshot behavior and hope that the request
                    is handled the first time. */
               }
-#endif
           }
 
       svn_ra_serf__setup_serf_req(request, req_bkt, &headers_bkt, ctx->conn,
@@ -1416,16 +1336,8 @@ svn_ra_serf__request_create(svn_ra_serf_
 serf_request_t *
 svn_ra_serf__priority_request_create(svn_ra_serf__handler_t *handler)
 {
-#if SERF_VERSION_AT_LEAST(0,1,3)
   return serf_connection_priority_request_create(handler->conn->conn,
                                                  setup_request, handler);
-#else
-  /* Fall back to the adding the new request at the end of the queue. While
-     this will make certain auth. protocols fail, at least basic authentication
-     will still work. */
-  return serf_connection_request_create(handler->conn->conn,
-                                        setup_request, handler);
-#endif
 }
 
 svn_error_t *

Modified: branches/svnpatch-diff/subversion/libsvn_ra_svn/client.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_ra_svn/client.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_ra_svn/client.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_ra_svn/client.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -447,19 +447,6 @@ static svn_error_t *make_tunnel(const ch
   if (status != APR_SUCCESS)
     return svn_error_wrap_apr(status, _("Can't create tunnel"));
 
-  /* Arrange for the tunnel agent to get a SIGKILL on pool
-   * cleanup.  This is a little extreme, but the alternatives
-   * weren't working out:
-   *   - Closing the pipes and waiting for the process to die
-   *     was prone to mysterious hangs which are difficult to
-   *     diagnose (e.g. svnserve dumps core due to unrelated bug;
-   *     sshd goes into zombie state; ssh connection is never
-   *     closed; ssh never terminates).
-   *   - Killing the tunnel agent with SIGTERM leads to unsightly
-   *     stderr output from ssh.
-   */
-  apr_pool_note_subprocess(pool, proc, APR_KILL_ALWAYS);
-
   /* APR pipe objects inherit by default.  But we don't want the
    * tunnel agent's pipes held open by future child processes
    * (such as other ra_svn sessions), so turn that off. */
@@ -1330,7 +1317,7 @@ static svn_error_t *ra_svn_log(svn_ra_se
                 return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
                                         _("Changed-path entry not a list"));
               SVN_ERR(svn_ra_svn_parse_tuple(elt->u.list, iterpool,
-                                             "cw(?cr)(?c)",
+                                             "cw(?cr)?(?c)",
                                              &cpath, &action, &copy_path,
                                              &copy_rev, &kind_str));
               cpath = svn_path_canonicalize(cpath, iterpool);

Modified: branches/svnpatch-diff/subversion/libsvn_subr/checksum.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/checksum.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/checksum.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/checksum.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -91,21 +91,21 @@ svn_checksum_clear(svn_checksum_t *check
 }
 
 svn_boolean_t
-svn_checksum_match(const svn_checksum_t *d1,
-                   const svn_checksum_t *d2)
+svn_checksum_match(const svn_checksum_t *checksum1,
+                   const svn_checksum_t *checksum2)
 {
-  if (d1 == NULL || d2 == NULL)
+  if (checksum1 == NULL || checksum2 == NULL)
     return TRUE;
 
-  if (d1->kind != d2->kind)
+  if (checksum1->kind != checksum2->kind)
     return FALSE;
 
-  switch (d1->kind)
+  switch (checksum1->kind)
     {
       case svn_checksum_md5:
-        return svn_md5__digests_match(d1->digest, d2->digest);
+        return svn_md5__digests_match(checksum1->digest, checksum2->digest);
       case svn_checksum_sha1:
-        return svn_sha1__digests_match(d1->digest, d2->digest);
+        return svn_sha1__digests_match(checksum1->digest, checksum2->digest);
       default:
         /* We really shouldn't get here, but if we do... */
         return FALSE;
@@ -183,31 +183,14 @@ svn_checksum_parse_hex(svn_checksum_t **
 }
 
 svn_checksum_t *
-svn_checksum_dup(const svn_checksum_t *src,
+svn_checksum_dup(const svn_checksum_t *checksum,
                  apr_pool_t *pool)
 {
-  apr_size_t size;
-  svn_checksum_t *dest;
-  svn_error_t *err;
-
   /* The duplicate of a NULL checksum is a NULL... */
-  if (src == NULL)
+  if (checksum == NULL)
     return NULL;
 
-  dest = svn_checksum_create(src->kind, pool);
-
-  err = validate_kind(src->kind);
-  if (err)
-    {
-      svn_error_clear(err);
-      return NULL;
-    }
-  size = DIGESTSIZE(src->kind);
-
-  dest->digest = apr_palloc(pool, size);
-  memcpy((unsigned char *)dest->digest, src->digest, size);
-
-  return dest;
+  return svn_checksum__from_digest(checksum->digest, checksum->kind, pool);
 }
 
 svn_error_t *
@@ -247,18 +230,16 @@ svn_checksum_t *
 svn_checksum_empty_checksum(svn_checksum_kind_t kind,
                             apr_pool_t *pool)
 {
-  svn_checksum_t *checksum = svn_checksum_create(kind, pool);
+  const unsigned char *digest;
 
   switch (kind)
     {
       case svn_checksum_md5:
-        memcpy((unsigned char *)checksum->digest, svn_md5__empty_string_digest(),
-               APR_MD5_DIGESTSIZE);
+        digest = svn_md5__empty_string_digest();
         break;
 
       case svn_checksum_sha1:
-        memcpy((unsigned char *)checksum->digest,
-               svn_sha1__empty_string_digest(), APR_SHA1_DIGESTSIZE);
+        digest = svn_sha1__empty_string_digest();
         break;
 
       default:
@@ -266,7 +247,7 @@ svn_checksum_empty_checksum(svn_checksum
         return NULL;
     }
 
-  return checksum;
+  return svn_checksum__from_digest(digest, kind, pool);
 }
 
 struct svn_checksum_ctx_t

Modified: branches/svnpatch-diff/subversion/libsvn_subr/cmdline.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/cmdline.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/cmdline.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/cmdline.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -559,26 +559,6 @@ svn_cmdline_create_auth_baton(svn_auth_b
   return SVN_NO_ERROR;
 }
 
-
-svn_error_t *
-svn_cmdline_setup_auth_baton(svn_auth_baton_t **ab,
-                             svn_boolean_t non_interactive,
-                             const char *auth_username,
-                             const char *auth_password,
-                             const char *config_dir,
-                             svn_boolean_t no_auth_cache,
-                             svn_config_t *cfg,
-                             svn_cancel_func_t cancel_func,
-                             void *cancel_baton,
-                             apr_pool_t *pool)
-{
-  return svn_cmdline_create_auth_baton(ab, non_interactive,
-                                       auth_username, auth_password,
-                                       config_dir, no_auth_cache, FALSE,
-                                       cfg, cancel_func, cancel_baton, pool);
-}
-
-
 svn_error_t *
 svn_cmdline__getopt_init(apr_getopt_t **os,
                          int argc,

Modified: branches/svnpatch-diff/subversion/libsvn_subr/config_impl.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/config_impl.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/config_impl.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/config_impl.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -106,7 +106,7 @@ svn_error_t *svn_config__parse_registry(
 
 /* System-wide and configuration subdirectory names.
    NOTE: Don't use these directly; call svn_config__sys_config_path()
-   or svn_config__user_config_path() instead. */
+   or svn_config_get_user_config_path() instead. */
 #ifdef WIN32
 #  define SVN_CONFIG__SUBDIRECTORY    "Subversion"
 #else  /* ! WIN32 */
@@ -133,21 +133,6 @@ svn_config__sys_config_path(const char *
                             apr_pool_t *pool);
 
 
-/* Set *PATH_P to the path to config file FNAME in the user's personal
-   configuration area; if FNAME is NULL, set *PATH_P to the directory
-   name of the user's config area.  Allocate *PATH_P in POOL.
-
-   If the user's personal configuration area cannot be located (most
-   likely under Win32), set *PATH_P to NULL regardless of FNAME.
-
-   CONFIG_DIR overrides this and if set *PATH_P is set to it.
-   */
-svn_error_t *
-svn_config__user_config_path(const char *config_dir,
-                             const char **path_p,
-                             const char *fname,
-                             apr_pool_t *pool);
-
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: branches/svnpatch-diff/subversion/libsvn_subr/deprecated.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/deprecated.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/deprecated.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/deprecated.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -207,7 +207,7 @@ svn_subst_stream_translated_to_normal_fo
                                            apr_pool_t *pool)
 {
   if (eol_style == svn_subst_eol_style_native)
-    eol_str = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+    eol_str = SVN_SUBST_NATIVE_EOL_STR;
   else if (! (eol_style == svn_subst_eol_style_fixed
               || eol_style == svn_subst_eol_style_none))
     return svn_error_create(SVN_ERR_IO_UNKNOWN_EOL, NULL, NULL);
@@ -257,7 +257,7 @@ svn_subst_translate_to_normal_form(const
 {
 
   if (eol_style == svn_subst_eol_style_native)
-    eol_str = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+    eol_str = SVN_SUBST_NATIVE_EOL_STR;
   else if (! (eol_style == svn_subst_eol_style_fixed
               || eol_style == svn_subst_eol_style_none))
     return svn_error_create(SVN_ERR_IO_UNKNOWN_EOL, NULL, NULL);
@@ -634,3 +634,22 @@ svn_log_changed_path_dup(const svn_log_c
 
   return new_changed_path;
 }
+
+/*** From cmdline.c ***/
+svn_error_t *
+svn_cmdline_setup_auth_baton(svn_auth_baton_t **ab,
+                             svn_boolean_t non_interactive,
+                             const char *auth_username,
+                             const char *auth_password,
+                             const char *config_dir,
+                             svn_boolean_t no_auth_cache,
+                             svn_config_t *cfg,
+                             svn_cancel_func_t cancel_func,
+                             void *cancel_baton,
+                             apr_pool_t *pool)
+{
+  return svn_cmdline_create_auth_baton(ab, non_interactive,
+                                       auth_username, auth_password,
+                                       config_dir, no_auth_cache, FALSE,
+                                       cfg, cancel_func, cancel_baton, pool);
+}

Modified: branches/svnpatch-diff/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/mergeinfo.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/mergeinfo.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/mergeinfo.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -527,24 +527,28 @@ parse_revision_line(const char **input, 
           if (lastrange->start <= range->end
               && range->start <= lastrange->end)
             {
-              /* The ranges intersect. */
+              /* The ranges are adjacent or intersect. */
 
-              /* svn_mergeinfo_parse promises to combine adjacent
-                 ranges, but not overlapping ranges. */
-              if (range->start < lastrange->end)
+              /* svn_mergeinfo_parse promises to combine overlapping
+                 ranges as long as their inheritability is the same. */
+              if (range->start < lastrange->end
+                  && range->inheritable != lastrange->inheritable)
                 {
                   svn_string_t *r1, *r2;
 
                   SVN_ERR(range_to_string(&r1, lastrange, pool));
                   SVN_ERR(range_to_string(&r2, range, pool));
                   return svn_error_createf(SVN_ERR_MERGEINFO_PARSE_ERROR, NULL,
-                                           _("Parsing of overlapping revision "
-                                             "ranges '%s' and '%s' is not "
-                                             "supported"), r1->data, r2->data);
+                                           _("Unable to parse overlapping "
+                                             "revision ranges '%s' and '%s' "
+                                             "with different inheritance "
+                                             "types"), r1->data, r2->data);
                 }
-              else if (lastrange->inheritable == range->inheritable)
+
+              /* Combine overlapping or adjacent ranges with the
+                 same inheritability. */              
+              if (lastrange->inheritable == range->inheritable)
                 {
-                  /* Combine adjacent ranges with the same inheritability. */
                   lastrange->end = range->end;
                   if (i + 1 < revlist->nelts)
                     memmove(revlist->elts + (revlist->elt_size * i),

Modified: branches/svnpatch-diff/subversion/libsvn_subr/skel.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/skel.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/skel.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/skel.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -163,6 +163,36 @@ putsize(char *data, apr_size_t len, apr_
   return i;
 }
 
+
+/* Checking validity of skels. */
+static svn_error_t *
+skel_err(const char *skel_type)
+{
+  return svn_error_createf(SVN_ERR_FS_MALFORMED_SKEL, NULL,
+                           "Malformed%s%s skeleton",
+                           skel_type ? " " : "",
+                           skel_type ? skel_type : "");
+}
+
+
+static svn_boolean_t
+is_valid_proplist_skel(svn_skel_t *skel)
+{
+  int len = svn_skel__list_length(skel);
+
+  if ((len >= 0) && (len & 1) == 0)
+    {
+      svn_skel_t *elt;
+
+      for (elt = skel->children; elt; elt = elt->next)
+        if (! elt->is_atom)
+          return FALSE;
+
+      return TRUE;
+    }
+
+  return FALSE;
+}
 
 
 static svn_skel_t *parse(const char *data, apr_size_t len,
@@ -587,3 +617,77 @@ svn_skel__list_length(const svn_skel_t *
 
   return len;
 }
+
+
+
+/* Parsing and unparsing into high-level types. */
+
+
+svn_error_t *
+svn_skel__parse_proplist(apr_hash_t **proplist_p,
+                         svn_skel_t *skel,
+                         apr_pool_t *pool)
+{
+  apr_hash_t *proplist = NULL;
+  svn_skel_t *elt;
+
+  /* Validate the skel. */
+  if (! is_valid_proplist_skel(skel))
+    return skel_err("proplist");
+
+  /* Create the returned structure */
+  if (skel->children)
+    proplist = apr_hash_make(pool);
+  for (elt = skel->children; elt; elt = elt->next->next)
+    {
+      svn_string_t *value = svn_string_ncreate(elt->next->data,
+                                               elt->next->len, pool);
+      apr_hash_set(proplist,
+                   apr_pstrmemdup(pool, elt->data, elt->len),
+                   elt->len,
+                   value);
+    }
+
+  /* Return the structure. */
+  *proplist_p = proplist;
+  return SVN_NO_ERROR;
+}
+
+
+svn_error_t *
+svn_skel__unparse_proplist(svn_skel_t **skel_p,
+                           apr_hash_t *proplist,
+                           apr_pool_t *pool)
+{
+  svn_skel_t *skel = svn_skel__make_empty_list(pool);
+  apr_hash_index_t *hi;
+
+  /* Create the skel. */
+  if (proplist)
+    {
+      /* Loop over hash entries */
+      for (hi = apr_hash_first(pool, proplist); hi; hi = apr_hash_next(hi))
+        {
+          const void *key;
+          void *val;
+          apr_ssize_t klen;
+          svn_string_t *value;
+
+          apr_hash_this(hi, &key, &klen, &val);
+          value = val;
+
+          /* VALUE */
+          svn_skel__prepend(svn_skel__mem_atom(value->data, value->len, pool),
+                            skel);
+
+          /* NAME */
+          svn_skel__prepend(svn_skel__mem_atom(key, klen, pool), skel);
+        }
+    }
+
+  /* Validate and return the skel. */
+  if (! is_valid_proplist_skel(skel))
+    return skel_err("proplist");
+  *skel_p = skel;
+  return SVN_NO_ERROR;
+}

Modified: branches/svnpatch-diff/subversion/libsvn_subr/sqlite.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/sqlite.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/sqlite.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/sqlite.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -186,11 +186,12 @@ svn_sqlite__step(svn_boolean_t *got_row,
 
   if (sqlite_result != SQLITE_DONE && sqlite_result != SQLITE_ROW)
     {
-      /* Create the error, then reset the statement, and return the error. */
-      svn_error_t *err = svn_error_create(SQLITE_ERROR_CODE(sqlite_result),
-                                          NULL, sqlite3_errmsg(stmt->db->db3));
-      svn_error_clear(svn_sqlite__reset(stmt));
-      return err;
+      svn_error_t *err1, *err2;
+
+      err1 = svn_error_create(SQLITE_ERROR_CODE(sqlite_result), NULL,
+                              sqlite3_errmsg(stmt->db->db3));
+      err2 = svn_sqlite__reset(stmt);
+      return svn_error_compose_create(err1, err2);
     }
 
   *got_row = (sqlite_result == SQLITE_ROW);
@@ -217,6 +218,9 @@ vbindf(svn_sqlite__stmt_t *stmt, const c
 
   for (count = 1; *fmt; fmt++, count++)
     {
+      const void *blob;
+      apr_size_t blob_size;
+
       switch (*fmt)
         {
           case 's':
@@ -230,9 +234,9 @@ vbindf(svn_sqlite__stmt_t *stmt, const c
             break;
 
           case 'b':
-            SVN_ERR(svn_sqlite__bind_blob(stmt, count,
-                                          va_arg(ap, const void *),
-                                          va_arg(ap, apr_size_t)));
+            blob = va_arg(ap, const void *);
+            blob_size = va_arg(ap, apr_size_t);
+            SVN_ERR(svn_sqlite__bind_blob(stmt, count, blob, blob_size));
             break;
 
           default:
@@ -310,6 +314,12 @@ svn_sqlite__column_int(svn_sqlite__stmt_
   return sqlite3_column_int(stmt->s3stmt, column);
 }
 
+svn_boolean_t
+svn_sqlite__column_is_null(svn_sqlite__stmt_t *stmt, int column)
+{
+  return sqlite3_column_type(stmt->s3stmt, column) == SQLITE_NULL;
+}
+
 svn_error_t *
 svn_sqlite__finalize(svn_sqlite__stmt_t *stmt)
 {

Modified: branches/svnpatch-diff/subversion/libsvn_subr/stream.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/stream.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/stream.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/stream.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -909,18 +909,14 @@ close_handler_md5(void *baton)
   SVN_ERR(svn_stream_close(btn->proxy));
 
   if (btn->read_digest)
-    {
-      *btn->read_digest = apr_palloc(btn->pool, APR_MD5_DIGESTSIZE);
-      memcpy((unsigned char *) *btn->read_digest, btn->read_checksum->digest,
-             APR_MD5_DIGESTSIZE);
-    }
+    *btn->read_digest
+      = apr_pmemdup(btn->pool, btn->read_checksum->digest,
+                    APR_MD5_DIGESTSIZE);
 
   if (btn->write_digest)
-    {
-      *btn->write_digest = apr_palloc(btn->pool, APR_MD5_DIGESTSIZE);
-      memcpy((unsigned char *) *btn->write_digest, btn->write_checksum->digest,
-             APR_MD5_DIGESTSIZE);
-    }
+    *btn->write_digest
+      = apr_pmemdup(btn->pool, btn->write_checksum->digest,
+                    APR_MD5_DIGESTSIZE);
 
   return SVN_NO_ERROR;
 }

Modified: branches/svnpatch-diff/subversion/libsvn_subr/subst.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/subst.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/subst.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/subst.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -41,10 +41,6 @@
 
 #include "svn_private_config.h"
 
-/* The Repository Default EOL used for files which
- * use the 'native' eol style.
- */
-#define SVN_SUBST__DEFAULT_EOL_STR "\n"
 
 /**
  * The textual elements of a detranslated special file.  One of these
@@ -108,7 +104,7 @@ svn_subst_translation_required(svn_subst
   return (special || keywords
           || (style != svn_subst_eol_style_none && force_eol_check)
           || (style == svn_subst_eol_style_native &&
-              strcmp(APR_EOL_STR, SVN_SUBST__DEFAULT_EOL_STR) != 0)
+              strcmp(APR_EOL_STR, SVN_SUBST_NATIVE_EOL_STR) != 0)
           || (style == svn_subst_eol_style_fixed &&
               strcmp(APR_EOL_STR, eol) != 0));
 }
@@ -1348,16 +1344,6 @@ create_special_file_from_stream(svn_stre
 }
 
 
-/* ### temp forward declaration, rather than a move, to minimize diff size */
-static svn_error_t *
-svn_subst_create_translated(svn_stream_t *src_stream,
-                            const char *dst,
-                            const char *eol_str,
-                            svn_boolean_t repair,
-                            apr_hash_t *keywords,
-                            svn_boolean_t expand,
-                            apr_pool_t *pool);
-
 svn_error_t *
 svn_subst_copy_and_translate3(const char *src,
                               const char *dst,
@@ -1369,6 +1355,8 @@ svn_subst_copy_and_translate3(const char
                               apr_pool_t *pool)
 {
   svn_stream_t *src_stream;
+  svn_stream_t *dst_stream;
+  const char *dst_tmp;
   svn_error_t *err;
   svn_node_kind_t kind;
   svn_boolean_t path_special;
@@ -1381,8 +1369,6 @@ svn_subst_copy_and_translate3(const char
     {
       if (expand)
         {
-          svn_stream_t *source;
-
           if (path_special)
             {
               /* We are being asked to create a special file from a special
@@ -1393,14 +1379,14 @@ svn_subst_copy_and_translate3(const char
                  ### svn_subst_read_specialfile even checks the file type
                  ### for us! */
 
-              SVN_ERR(svn_subst_read_specialfile(&source, src, pool, pool));
+              SVN_ERR(svn_subst_read_specialfile(&src_stream, src, pool, pool));
             }
           else
             {
-              SVN_ERR(svn_stream_open_readonly(&source, src, pool, pool));
+              SVN_ERR(svn_stream_open_readonly(&src_stream, src, pool, pool));
             }
 
-          return create_special_file_from_stream(source, dst, pool);
+          return create_special_file_from_stream(src_stream, dst, pool);
         }
       /* else !expand */
 
@@ -1414,55 +1400,26 @@ svn_subst_copy_and_translate3(const char
   /* Open source file. */
   SVN_ERR(svn_stream_open_readonly(&src_stream, src, pool, pool));
 
-  /* ### note: this checks for SPECIAL and for NO-TRANS. whatever. */
-  /* ### inline this code. create_translated is no longer... */
-  err = svn_subst_create_translated(src_stream, dst,
-                                    eol_str, repair, keywords, expand,
-                                    pool);
-
-  /* On errors, we have a pathname available. */
-  if (err && err->apr_err == SVN_ERR_IO_INCONSISTENT_EOL)
-    err = svn_error_createf(SVN_ERR_IO_INCONSISTENT_EOL, err,
-                            _("File '%s' has inconsistent newlines"),
-                            svn_path_local_style(src, pool));
-
-  return svn_error_compose_create(err, svn_stream_close(src_stream));
-}
-
-
-static svn_error_t *
-svn_subst_create_translated(svn_stream_t *src_stream,
-                            const char *dst,
-                            const char *eol_str,
-                            svn_boolean_t repair,
-                            apr_hash_t *keywords,
-                            svn_boolean_t expand,
-                            apr_pool_t *pool)
-{
-  const char *dst_tmp;
-  svn_stream_t *dst_stream;
-  svn_error_t *err;
-
-  /* Our API contract says that we don't close SRC_STREAM, but the code
-     below always does. Disown the sucker. */
-  src_stream = svn_stream_disown(src_stream, pool);
-
   /* For atomicity, we translate to a tmp file and then rename the tmp file
      over the real destination. */
   SVN_ERR(svn_stream_open_unique(&dst_stream, &dst_tmp,
                                  svn_path_dirname(dst, pool),
                                  svn_io_file_del_none, pool, pool));
 
-  /* If some translation is needed, the wrap the output stream (this is
-     more efficient than wrapping the input). */
-  if (eol_str || (keywords && (apr_hash_count(keywords) > 0)))
-    dst_stream = svn_subst_stream_translated(dst_stream, eol_str, repair,
-                                             keywords, expand, pool);
+  dst_stream = svn_subst_stream_translated(dst_stream, eol_str, repair,
+                                           keywords, expand, pool);
 
   /* ###: use cancel func/baton in place of NULL/NULL below. */
   err = svn_stream_copy3(src_stream, dst_stream, NULL, NULL, pool);
   if (err)
-    return svn_error_compose_create(err, svn_io_remove_file(dst_tmp, pool));
+    {
+      /* On errors, we have a pathname available. */
+      if (err->apr_err == SVN_ERR_IO_INCONSISTENT_EOL)
+        err = svn_error_createf(SVN_ERR_IO_INCONSISTENT_EOL, err,
+                                _("File '%s' has inconsistent newlines"),
+                                svn_path_local_style(src, pool));
+      return svn_error_compose_create(err, svn_io_remove_file(dst_tmp, pool));
+    }
 
   /* Now that dst_tmp contains the translated data, do the atomic rename. */
   return svn_io_file_rename(dst_tmp, dst, pool);

Modified: branches/svnpatch-diff/subversion/libsvn_subr/svn_base64.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_subr/svn_base64.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_subr/svn_base64.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_subr/svn_base64.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -408,10 +408,8 @@ base64_from_checksum(const svn_checksum_
 svn_stringbuf_t *
 svn_base64_from_md5(unsigned char digest[], apr_pool_t *pool)
 {
-  svn_checksum_t *checksum;
-
-  checksum = svn_checksum_create(svn_checksum_md5, pool);
-  checksum->digest = digest;
+  svn_checksum_t *checksum
+    = svn_checksum__from_digest(digest, svn_checksum_md5, pool);
 
   return base64_from_checksum(checksum, pool);
 }

Modified: branches/svnpatch-diff/subversion/libsvn_wc/adm_ops.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/adm_ops.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/adm_ops.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/adm_ops.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -1880,8 +1880,7 @@ revert_admin_things(svn_wc_adm_access_t 
                      pool));
 
           SVN_ERR(svn_wc__loggy_set_entry_timestamp_from_wc
-                  (&log_accum, adm_access,
-                   fullpath, SVN_WC__ENTRY_ATTR_TEXT_TIME, pool));
+                  (&log_accum, adm_access, fullpath, pool));
           SVN_ERR(svn_wc__loggy_set_entry_working_size_from_wc
                   (&log_accum, adm_access, fullpath, pool));
         }

Modified: branches/svnpatch-diff/subversion/libsvn_wc/copy.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/copy.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/copy.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/copy.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -577,7 +577,7 @@ copy_file_administratively(const char *s
               svn_boolean_t repair = FALSE;
 
               if (eol_style == svn_subst_eol_style_native)
-                eol_str = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+                eol_str = SVN_SUBST_NATIVE_EOL_STR;
               else if (eol_style == svn_subst_eol_style_fixed)
                 repair = TRUE;
               else if (eol_style != svn_subst_eol_style_none)

Modified: branches/svnpatch-diff/subversion/libsvn_wc/entries.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/entries.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/entries.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/entries.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -2,7 +2,7 @@
  * entries.c :  manipulating the administrative `entries' file.
  *
  * ====================================================================
- * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -441,8 +441,10 @@ unserialize_file_external(const char **p
    string instead of a svn_stringbuf_t so that the string can be
    protected by write_str(). */
 static svn_error_t *
-serialize_file_external(const char **str, const char *path,
-                        svn_opt_revision_t *peg_rev, svn_opt_revision_t *rev,
+serialize_file_external(const char **str,
+                        const char *path,
+                        const svn_opt_revision_t *peg_rev,
+                        const svn_opt_revision_t *rev,
                         apr_pool_t *pool)
 {
   const char *s;
@@ -923,7 +925,7 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
 
   /* Attempt to set up timestamps. */
   {
-    const char *text_timestr, *prop_timestr;
+    const char *text_timestr;
 
     text_timestr = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_TEXT_TIME,
                                 APR_HASH_KEY_STRING);
@@ -943,23 +945,10 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
         *modify_flags |= SVN_WC__ENTRY_MODIFY_TEXT_TIME;
       }
 
-    prop_timestr = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_PROP_TIME,
-                                APR_HASH_KEY_STRING);
-    if (prop_timestr)
-      {
-        if (strcmp(prop_timestr, SVN_WC__TIMESTAMP_WC) == 0)
-          {
-            /* Special case:  a magic string that means 'get this value
-               from the working copy' -- we ignore it here, trusting
-               that the caller of this function know what to do about
-               it.  */
-          }
-        else
-          SVN_ERR(svn_time_from_cstring(&entry->prop_time, prop_timestr,
-                                        pool));
-
-        *modify_flags |= SVN_WC__ENTRY_MODIFY_PROP_TIME;
-      }
+    /* Note: we do not persist prop_time, so there is no need to attempt
+       to parse a new prop_time value from the log. Certainly, on any
+       recent working copy, there will not be a log record to alter
+       the prop_time value. */
   }
 
   /* Checksum. */
@@ -1057,15 +1046,6 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
       }
   }
 
-  /* changelist */
-  entry->changelist = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_CHANGELIST,
-                                   APR_HASH_KEY_STRING);
-  if (entry->changelist)
-    {
-      *modify_flags |= SVN_WC__ENTRY_MODIFY_CHANGELIST;
-      entry->changelist = apr_pstrdup(pool, entry->changelist);
-    }
-
   /* has-props flag. */
   SVN_ERR(do_bool_attr(&entry->has_props,
                        modify_flags, SVN_WC__ENTRY_MODIFY_HAS_PROPS,
@@ -1133,26 +1113,6 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n
       }
   }
 
-  /* File externals */
-  {
-    const char *val
-      = apr_hash_get(atts,
-                     SVN_WC__ENTRY_ATTR_FILE_EXTERNAL,
-                     APR_HASH_KEY_STRING);
-
-    if (val)
-      {
-        SVN_ERR(unserialize_file_external(&(entry->file_external_path),
-                                          &(entry->file_external_peg_rev),
-                                          &(entry->file_external_rev),
-                                          val,
-                                          pool));
-        entry->file_external_path = apr_pstrdup(pool,
-                                                entry->file_external_path);
-        *modify_flags |= SVN_WC__ENTRY_MODIFY_FILE_EXTERNAL;
-      }
-  }
-
   *new_entry = entry;
   return SVN_NO_ERROR;
 }
@@ -1166,9 +1126,6 @@ struct entries_accumulator
   /* The parser that's parsing it, for signal_expat_bailout(). */
   svn_xml_parser_t *parser;
 
-  /* Should we include 'deleted' entries in the hash? */
-  svn_boolean_t show_hidden;
-
   /* Don't leave home without one. */
   apr_pool_t *pool;
 
@@ -1215,8 +1172,7 @@ handle_start_tag(void *userData, const c
   /* Find the name and set up the entry under that name.  This
      should *NOT* be NULL, since svn_wc__atts_to_entry() should
      have made it into SVN_WC_ENTRY_THIS_DIR. */
-  if (!entry_is_hidden(entry) || accum->show_hidden)
-    apr_hash_set(accum->entries, entry->name, APR_HASH_KEY_STRING, entry);
+  apr_hash_set(accum->entries, entry->name, APR_HASH_KEY_STRING, entry);
 }
 
 /* Parse BUF of size SIZE as an entries file in XML format, storing the parsed
@@ -1225,7 +1181,6 @@ handle_start_tag(void *userData, const c
 static svn_error_t *
 parse_entries_xml(svn_wc_adm_access_t *adm_access,
                   apr_hash_t *entries,
-                  svn_boolean_t show_hidden,
                   const char *buf,
                   apr_size_t size,
                   apr_pool_t *pool)
@@ -1235,7 +1190,6 @@ parse_entries_xml(svn_wc_adm_access_t *a
 
   /* Set up userData for the XML parser. */
   accum.entries = entries;
-  accum.show_hidden = show_hidden;
   accum.pool = svn_wc_adm_access_pool(adm_access);
   accum.scratch_pool = svn_pool_create(pool);
 
@@ -1360,13 +1314,11 @@ resolve_to_defaults(apr_hash_t *entries,
 
 
 
-/* Fill the entries cache in ADM_ACCESS. Either the full hash cache will be
-   populated, if SHOW_HIDDEN is TRUE, or the truncated hash cache will be
-   populated if SHOW_HIDDEN is FALSE.  POOL is used for local memory
-   allocation, the access baton pool is used for the cache. */
+/* Fill the entries cache in ADM_ACCESS. The full hash cache will be
+   populated.  POOL is used for local memory allocation, the access baton
+   pool is used for the cache. */
 static svn_error_t *
 read_entries(svn_wc_adm_access_t *adm_access,
-             svn_boolean_t show_hidden,
              apr_pool_t *scratch_pool)
 {
   apr_pool_t *result_pool = svn_wc_adm_access_pool(adm_access);
@@ -1391,8 +1343,8 @@ read_entries(svn_wc_adm_access_t *adm_ac
   /* If the first byte of the file is not a digit, then it is probably in XML
      format. */
   if (curp != endp && !svn_ctype_isdigit(*curp))
-    SVN_ERR(parse_entries_xml(adm_access, entries, show_hidden,
-                              buf->data, buf->len, scratch_pool));
+    SVN_ERR(parse_entries_xml(adm_access, entries, buf->data, buf->len,
+                              scratch_pool));
   else
     {
       const char *val;
@@ -1436,18 +1388,14 @@ read_entries(svn_wc_adm_access_t *adm_ac
           ++curp;
           ++entryno;
 
-          if ((entry->depth != svn_depth_exclude)
-              || (!entry_is_hidden(entry) || show_hidden))
-            {
-              apr_hash_set(entries, entry->name, APR_HASH_KEY_STRING, entry);
-            }
+          apr_hash_set(entries, entry->name, APR_HASH_KEY_STRING, entry);
         }
     }
 
   /* Fill in any implied fields. */
   SVN_ERR(resolve_to_defaults(entries, result_pool));
 
-  svn_wc__adm_access_set_entries(adm_access, show_hidden, entries);
+  svn_wc__adm_access_set_entries(adm_access, TRUE, entries);
 
   return SVN_NO_ERROR;
 }
@@ -1541,7 +1489,7 @@ svn_wc_entries_read(apr_hash_t **entries
     {
       /* Ask for the deleted entries because most operations request them
          at some stage, getting them now avoids a second file parse. */
-      SVN_ERR(read_entries(adm_access, TRUE, pool));
+      SVN_ERR(read_entries(adm_access, pool));
 
       new_entries = svn_wc__adm_access_entries(adm_access, show_hidden, pool);
     }
@@ -1622,9 +1570,9 @@ write_time(svn_stringbuf_t *buf, apr_tim
    Allocations are done in POOL.  */
 static svn_error_t *
 write_entry(svn_stringbuf_t *buf,
-            svn_wc_entry_t *entry,
+            const svn_wc_entry_t *entry,
             const char *name,
-            svn_wc_entry_t *this_dir,
+            const svn_wc_entry_t *this_dir,
             apr_pool_t *pool)
 {
   const char *valuestr;
@@ -1834,9 +1782,9 @@ write_entry(svn_stringbuf_t *buf,
    comparison/optimization.  Allocations are done in POOL.  */
 static svn_error_t *
 write_entry_xml(svn_stringbuf_t **output,
-                svn_wc_entry_t *entry,
+                const svn_wc_entry_t *entry,
                 const char *name,
-                svn_wc_entry_t *this_dir,
+                const svn_wc_entry_t *this_dir,
                 apr_pool_t *pool)
 {
   apr_hash_t *atts = apr_hash_make(pool);
@@ -1955,11 +1903,8 @@ write_entry_xml(svn_stringbuf_t **output
       apr_hash_set(atts, SVN_WC__ENTRY_ATTR_TEXT_TIME, APR_HASH_KEY_STRING,
                    svn_time_to_cstring(entry->text_time, pool));
     }
-  if (entry->prop_time)
-    {
-      apr_hash_set(atts, SVN_WC__ENTRY_ATTR_PROP_TIME, APR_HASH_KEY_STRING,
-                   svn_time_to_cstring(entry->prop_time, pool));
-    }
+  /* Note: prop_time is no longer stored in "entries", so there is no need
+     to persist it into XML either. */
 
   /* Checksum */
   if (entry->checksum)
@@ -2026,6 +1971,11 @@ write_entry_xml(svn_stringbuf_t **output
     apr_hash_set(atts, SVN_WC__ENTRY_ATTR_PRESENT_PROPS,
                  APR_HASH_KEY_STRING, entry->present_props);
 
+  /* NOTE: if new entries are *added* to svn_wc_entry_t, then they do not
+     have to be written here. This function is ONLY used during the "cleanup"
+     phase just before we upgrade away from an XML entries file. The old
+     logs will never attempt to modify new fields. */
+
   /*** Now, remove stuff that can be derived through inheritance rules. ***/
 
   /* We only want to write out 'revision' and 'url' for the
@@ -2122,7 +2072,7 @@ write_entry_xml(svn_stringbuf_t **output
 static svn_error_t *
 write_entries_xml(svn_stringbuf_t **output,
                   apr_hash_t *entries,
-                  svn_wc_entry_t *this_dir,
+                  const svn_wc_entry_t *this_dir,
                   apr_pool_t *pool)
 {
   apr_hash_index_t *hi;
@@ -2143,7 +2093,7 @@ write_entries_xml(svn_stringbuf_t **outp
     {
       const void *key;
       void *val;
-      svn_wc_entry_t *this_entry;
+      const svn_wc_entry_t *this_entry;
 
       svn_pool_clear(subpool);
 
@@ -2176,7 +2126,7 @@ svn_wc__entries_write(apr_hash_t *entrie
   svn_stream_t *stream;
   const char *temp_file_path;
   apr_hash_index_t *hi;
-  svn_wc_entry_t *this_dir;
+  const svn_wc_entry_t *this_dir;
   apr_size_t len;
 
   SVN_ERR(svn_wc__adm_write_check(adm_access, pool));
@@ -2209,8 +2159,10 @@ svn_wc__entries_write(apr_hash_t *entrie
   if (svn_wc__adm_wc_format(adm_access) > SVN_WC__XML_ENTRIES_VERSION)
     {
       apr_pool_t *subpool = svn_pool_create(pool);
+
       bigstr = svn_stringbuf_createf(pool, "%d\n",
                                      svn_wc__adm_wc_format(adm_access));
+
       /* Write out "this dir" */
       SVN_ERR(write_entry(bigstr, this_dir, SVN_WC_ENTRY_THIS_DIR,
                           this_dir, pool));
@@ -2219,7 +2171,7 @@ svn_wc__entries_write(apr_hash_t *entrie
         {
           const void *key;
           void *val;
-          svn_wc_entry_t *this_entry;
+          const svn_wc_entry_t *this_entry;
 
           svn_pool_clear(subpool);
 
@@ -2274,7 +2226,7 @@ static svn_error_t *
 fold_entry(apr_hash_t *entries,
            const char *name,
            apr_uint64_t modify_flags,
-           svn_wc_entry_t *entry,
+           const svn_wc_entry_t *entry,
            apr_pool_t *pool)
 {
   svn_wc_entry_t *cur_entry
@@ -2343,9 +2295,6 @@ fold_entry(apr_hash_t *entries,
   if (modify_flags & SVN_WC__ENTRY_MODIFY_TEXT_TIME)
     cur_entry->text_time = entry->text_time;
 
-  if (modify_flags & SVN_WC__ENTRY_MODIFY_PROP_TIME)
-    cur_entry->prop_time = entry->prop_time;
-
   /* Conflict stuff */
   if (modify_flags & SVN_WC__ENTRY_MODIFY_CONFLICT_OLD)
     cur_entry->conflict_old = entry->conflict_old

Modified: branches/svnpatch-diff/subversion/libsvn_wc/entries.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/entries.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/entries.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/entries.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -49,7 +49,6 @@ extern "C" {
 #define SVN_WC__ENTRY_ATTR_REPOS              "repos"
 #define SVN_WC__ENTRY_ATTR_KIND               "kind"
 #define SVN_WC__ENTRY_ATTR_TEXT_TIME          "text-time"
-#define SVN_WC__ENTRY_ATTR_PROP_TIME          "prop-time"
 #define SVN_WC__ENTRY_ATTR_CHECKSUM           "checksum"
 #define SVN_WC__ENTRY_ATTR_SCHEDULE           "schedule"
 #define SVN_WC__ENTRY_ATTR_COPIED             "copied"
@@ -133,7 +132,7 @@ svn_error_t *svn_wc__atts_to_entry(svn_w
 #define SVN_WC__ENTRY_MODIFY_REPOS              APR_INT64_C(0x0000000000000004)
 #define SVN_WC__ENTRY_MODIFY_KIND               APR_INT64_C(0x0000000000000008)
 #define SVN_WC__ENTRY_MODIFY_TEXT_TIME          APR_INT64_C(0x0000000000000010)
-#define SVN_WC__ENTRY_MODIFY_PROP_TIME          APR_INT64_C(0x0000000000000020)
+/* OPEN                                      APR_INT64_C(0x0000000000000020) */
 #define SVN_WC__ENTRY_MODIFY_CHECKSUM           APR_INT64_C(0x0000000000000040)
 #define SVN_WC__ENTRY_MODIFY_SCHEDULE           APR_INT64_C(0x0000000000000080)
 #define SVN_WC__ENTRY_MODIFY_COPIED             APR_INT64_C(0x0000000000000100)

Modified: branches/svnpatch-diff/subversion/libsvn_wc/lock.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/lock.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/lock.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/lock.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -139,7 +139,6 @@ introduce_propcaching(svn_stringbuf_t *l
       void *val;
       const svn_wc_entry_t *entry;
       const char *entrypath;
-      svn_wc_entry_t tmpentry;
       apr_hash_t *base_props, *props;
 
       apr_hash_this(hi, NULL, NULL, &val);
@@ -156,17 +155,10 @@ introduce_propcaching(svn_stringbuf_t *l
                                  entrypath, subpool));
       SVN_ERR(svn_wc__install_props(&log_accum, adm_access, entrypath,
                                     base_props, props, TRUE, subpool));
-      /* Make sure we get rid of that prop-time field.
-         It only wastes space in new WCs. */
-      tmpentry.prop_time = 0;
-      SVN_ERR(svn_wc__loggy_entry_modify
-              (&log_accum, adm_access,
-               entrypath,
-               &tmpentry,
-               SVN_WC__ENTRY_MODIFY_PROP_TIME,
-               subpool));
     }
 
+  svn_pool_destroy(subpool);
+
   return SVN_NO_ERROR;
 }
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/log.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/log.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/log.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/log.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -770,14 +770,11 @@ log_do_modify_entry(struct log_runner *l
                         strcmp(name, SVN_WC_ENTRY_THIS_DIR) ? name : "",
                         loggy->pool);
 
-  /* Did the log command give us any timestamps?  There are three
-     possible scenarios here.  We must check both text_time
-     and prop_time for each of the three scenarios.  */
-
-  /* TEXT_TIME: */
+  /* svn_wc__atts_to_entry will no-op if the TEXT_TIME timestamp is
+     SVN_WC__TIMESTAMP_WC, so look for that case and fill in the proper
+     value. */
   valuestr = apr_hash_get(ah, SVN_WC__ENTRY_ATTR_TEXT_TIME,
                           APR_HASH_KEY_STRING);
-
   if ((modify_flags & SVN_WC__ENTRY_MODIFY_TEXT_TIME)
       && (! strcmp(valuestr, SVN_WC__TIMESTAMP_WC)))
     {
@@ -793,21 +790,6 @@ log_do_modify_entry(struct log_runner *l
       entry->text_time = text_time;
     }
 
-  /* PROP_TIME: */
-  valuestr = apr_hash_get(ah, SVN_WC__ENTRY_ATTR_PROP_TIME,
-                          APR_HASH_KEY_STRING);
-
-  if ((modify_flags & SVN_WC__ENTRY_MODIFY_PROP_TIME)
-      && (! strcmp(valuestr, SVN_WC__TIMESTAMP_WC)))
-    {
-      apr_time_t prop_time;
-
-      SVN_ERR(svn_wc__props_last_modified(&prop_time,
-                                          tfile, svn_wc__props_working,
-                                          loggy->adm_access, loggy->pool));
-      entry->prop_time = prop_time;
-    }
-
   valuestr = apr_hash_get(ah, SVN_WC__ENTRY_ATTR_WORKING_SIZE,
                           APR_HASH_KEY_STRING);
   if ((modify_flags & SVN_WC__ENTRY_MODIFY_WORKING_SIZE)
@@ -1062,17 +1044,16 @@ log_do_committed(struct log_runner *logg
   apr_pool_t *pool = loggy->pool;
   int is_this_dir = (strcmp(name, SVN_WC_ENTRY_THIS_DIR) == 0);
   const char *rev = svn_xml_get_attr_value(SVN_WC__LOG_ATTR_REVISION, atts);
-  svn_boolean_t wc_root, overwrote_working = FALSE, remove_executable = FALSE;
+  svn_boolean_t wc_root, remove_executable = FALSE;
   svn_boolean_t set_read_write = FALSE;
   const char *full_path;
   const char *pdir, *base_name;
   apr_hash_t *entries;
   const svn_wc_entry_t *orig_entry;
   svn_wc_entry_t *entry;
-  apr_time_t text_time = 0; /* By default, don't override old stamp. */
   svn_wc_adm_access_t *adm_access;
-  apr_finfo_t finfo;
   svn_boolean_t prop_mods;
+  apr_uint64_t modify_flags = 0;
 
   /* Determine the actual full path of the affected item. */
   if (! is_this_dir)
@@ -1263,6 +1244,9 @@ log_do_committed(struct log_runner *logg
 
   if (entry->kind == svn_node_file)
     {
+      svn_boolean_t overwrote_working;
+      apr_finfo_t finfo;
+
       /* Install the new file, which may involve expanding keywords.
          A copy of this file should have been dropped into our `tmp/text-base'
          directory during the commit process.  Part of this process
@@ -1286,15 +1270,20 @@ log_do_committed(struct log_runner *logg
                                  _("Error getting 'affected time' of '%s'"),
                                  svn_path_local_style(full_path, pool));
 
+      /* We will compute and modify the size and timestamp */
+      modify_flags |= SVN_WC__ENTRY_MODIFY_WORKING_SIZE
+                      | SVN_WC__ENTRY_MODIFY_TEXT_TIME;
+
+      entry->working_size = finfo.size;
+
       if (overwrote_working)
-        text_time = finfo.mtime;
+        entry->text_time = finfo.mtime;
       else
         {
           /* The working copy file hasn't been overwritten, meaning
              we need to decide which timestamp to use. */
 
           const char *basef;
-          svn_boolean_t modified = FALSE;
           apr_finfo_t basef_finfo;
 
           /* If the working file was overwritten (due to re-translation)
@@ -1310,6 +1299,8 @@ log_do_committed(struct log_runner *logg
                svn_path_local_style(basef, pool));
           else
             {
+              svn_boolean_t modified;
+
               /* Verify that the working file is the same as the base file
                  by comparing file sizes, then timestamps and the contents
                  after that. */
@@ -1332,12 +1323,10 @@ log_do_committed(struct log_runner *logg
                 }
               /* If they are the same, use the working file's timestamp,
                  else use the base file's timestamp. */
-              text_time = modified ? basef_finfo.mtime : finfo.mtime;
+              entry->text_time = modified ? basef_finfo.mtime : finfo.mtime;
             }
         }
     }
-  else
-    finfo.size = 0;
 
   /* Files have been moved, and timestamps have been found.  It is now
      time for The Big Entry Modification. Here we set fields in the entry
@@ -1347,7 +1336,6 @@ log_do_committed(struct log_runner *logg
   entry->schedule = svn_wc_schedule_normal;
   entry->copied = FALSE;
   entry->deleted = FALSE;
-  entry->text_time = text_time;
   entry->conflict_old = NULL;
   entry->conflict_new = NULL;
   entry->conflict_wrk = NULL;
@@ -1355,26 +1343,24 @@ log_do_committed(struct log_runner *logg
   entry->copyfrom_url = NULL;
   entry->copyfrom_rev = SVN_INVALID_REVNUM;
   entry->has_prop_mods = FALSE;
-  entry->working_size = finfo.size;
+
   /* We don't reset tree_conflict_data, because it's about conflicts on
      children, not on this node, and it could conceivably be valid to commit
      this node non-recursively while children are still in conflict. */
   if ((err = svn_wc__entry_modify(loggy->adm_access, name, entry,
-                                  (SVN_WC__ENTRY_MODIFY_REVISION
+                                  (modify_flags
+                                   | SVN_WC__ENTRY_MODIFY_REVISION
+                                   | SVN_WC__ENTRY_MODIFY_KIND
                                    | SVN_WC__ENTRY_MODIFY_SCHEDULE
                                    | SVN_WC__ENTRY_MODIFY_COPIED
                                    | SVN_WC__ENTRY_MODIFY_DELETED
-                                   | SVN_WC__ENTRY_MODIFY_COPYFROM_URL
-                                   | SVN_WC__ENTRY_MODIFY_COPYFROM_REV
                                    | SVN_WC__ENTRY_MODIFY_CONFLICT_OLD
                                    | SVN_WC__ENTRY_MODIFY_CONFLICT_NEW
                                    | SVN_WC__ENTRY_MODIFY_CONFLICT_WRK
                                    | SVN_WC__ENTRY_MODIFY_PREJFILE
-                                   | (text_time
-                                      ? SVN_WC__ENTRY_MODIFY_TEXT_TIME
-                                      : 0)
+                                   | SVN_WC__ENTRY_MODIFY_COPYFROM_URL
+                                   | SVN_WC__ENTRY_MODIFY_COPYFROM_REV
                                    | SVN_WC__ENTRY_MODIFY_HAS_PROP_MODS
-                                   | SVN_WC__ENTRY_MODIFY_WORKING_SIZE
                                    | SVN_WC__ENTRY_MODIFY_FORCE),
                                   FALSE, pool)))
     return svn_error_createf
@@ -2198,10 +2184,6 @@ svn_wc__loggy_entry_modify(svn_stringbuf
                  SVN_WC__ENTRY_ATTR_TEXT_TIME,
                  svn_time_to_cstring(entry->text_time, pool));
 
-  ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_PROP_TIME,
-                 SVN_WC__ENTRY_ATTR_PROP_TIME,
-                 svn_time_to_cstring(entry->prop_time, pool));
-
   ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_CHECKSUM,
                  SVN_WC__ENTRY_ATTR_CHECKSUM,
                  entry->checksum);
@@ -2349,7 +2331,6 @@ svn_error_t *
 svn_wc__loggy_set_entry_timestamp_from_wc(svn_stringbuf_t **log_accum,
                                           svn_wc_adm_access_t *adm_access,
                                           const char *path,
-                                          const char *time_prop,
                                           apr_pool_t *pool)
 {
   svn_xml_make_open_tag(log_accum,
@@ -2358,7 +2339,7 @@ svn_wc__loggy_set_entry_timestamp_from_w
                         SVN_WC__LOG_MODIFY_ENTRY,
                         SVN_WC__LOG_ATTR_NAME,
                         loggy_path(path, adm_access),
-                        time_prop,
+                        SVN_WC__ENTRY_ATTR_TEXT_TIME,
                         SVN_WC__TIMESTAMP_WC,
                         NULL);
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/log.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/log.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/log.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/log.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -229,7 +229,6 @@ svn_error_t *
 svn_wc__loggy_set_entry_timestamp_from_wc(svn_stringbuf_t **log_accum,
                                           svn_wc_adm_access_t *adm_access,
                                           const char *path,
-                                          const char *time_prop,
                                           apr_pool_t *pool);
 
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/merge.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/merge.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/merge.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/merge.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -211,7 +211,7 @@ detranslate_wc_file(const char **detrans
          consistent newlines and 'svn:eol-style' set.  */
 
       if (style == svn_subst_eol_style_native)
-        eol = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+        eol = SVN_SUBST_NATIVE_EOL_STR;
       else if (style != svn_subst_eol_style_fixed
                && style != svn_subst_eol_style_none)
         return svn_error_create(SVN_ERR_IO_UNKNOWN_EOL, NULL, NULL);

Modified: branches/svnpatch-diff/subversion/libsvn_wc/props.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/props.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/props.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/props.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -134,19 +134,7 @@ load_props(apr_hash_t **hash,
   if (finfo.size == 0)
     return SVN_NO_ERROR;
 
-  err = svn_stream_open_readonly(&stream, prop_path, pool, pool);
-
-  if (err)
-    {
-      if ((APR_STATUS_IS_ENOENT(err->apr_err)
-            || APR_STATUS_IS_ENOTDIR(err->apr_err)))
-        {
-           svn_error_clear(err);
-           return SVN_NO_ERROR;
-        }
-      else
-        return err;
-    }
+  SVN_ERR(svn_stream_open_readonly(&stream, prop_path, pool, pool));
 
   SVN_ERR(svn_hash_read2(*hash, stream, SVN_HASH_TERMINATOR, pool));
 
@@ -2767,16 +2755,15 @@ svn_wc_props_modified_p(svn_boolean_t *m
                         apr_pool_t *pool)
 {
   const svn_wc_entry_t *entry;
-  apr_pool_t *subpool = svn_pool_create(pool);
   int wc_format = svn_wc__adm_wc_format(adm_access);
 
-  SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, subpool));
+  SVN_ERR(svn_wc_entry(&entry, path, adm_access, FALSE, pool));
 
   /* If we have no entry, we can't have any prop mods. */
   if (! entry)
     {
       *modified_p = FALSE;
-      goto cleanup;
+      return SVN_NO_ERROR;
     }
 
   /* For newer WCs, if there is an entry for the path, we have a fast
@@ -2784,121 +2771,40 @@ svn_wc_props_modified_p(svn_boolean_t *m
   if (wc_format > SVN_WC__NO_PROPCACHING_VERSION)
     {
       *modified_p = entry->has_prop_mods;
-      goto cleanup;
+      return SVN_NO_ERROR;
     }
 
   /* So, we have a WC in an older format, we have some work to do... */
 
-  /* Check for numerous easy outs on older WC formats before we
-     resort to svn_prop_diffs(). */
-  if (wc_format <= SVN_WC__NO_PROPCACHING_VERSION)
-    {
-      svn_boolean_t bempty, wempty;
-      svn_boolean_t different_filesizes;
-      svn_boolean_t equal_timestamps;
-      const char *prop_path;
-      const char *prop_base_path;
-
-      /* Decide if either path is "empty" of properties. */
-      SVN_ERR(empty_props_p(&wempty, path, entry->kind, svn_wc__props_working,
-                            subpool));
-      SVN_ERR(empty_props_p(&bempty, path, entry->kind, svn_wc__props_base,
-                            subpool));
-
-      /* If something is scheduled for replacement, we do *not* want to
-         pay attention to any base-props;  they might be residual from the
-         old deleted file.  Or, if the base file is empty, we know the answer
-         immediately. */
-      if (entry->schedule == svn_wc_schedule_replace || bempty)
-        {
-          *modified_p = !wempty;
-          goto cleanup;
-        }
-
-      /* OK, so the base file is non-empty.  One more easy out: */
-      if (wempty)
-        {
-          /* base exists, working is empty */
-          *modified_p = TRUE;
-          goto cleanup;
-        }
-
-      /* At this point, we know both files exists.  Therefore we have no
-         choice but to start checking their contents. */
-
-      /* There are at least three tests we can try in succession. */
-
-      /* Easy-answer attempt #1:  (### this stat's the files again) */
-
-      /* Get the paths of the working and 'base' prop files. */
-      SVN_ERR(svn_wc__prop_path(&prop_path, path, entry->kind,
-                                svn_wc__props_working, subpool));
-      SVN_ERR(svn_wc__prop_path(&prop_base_path, path, entry->kind,
-                                svn_wc__props_base, subpool));
-
-      /* Check if the local and prop-base file have *definitely*
-         different filesizes. */
-      SVN_ERR(svn_io_filesizes_different_p(&different_filesizes,
-                                           prop_path,
-                                           prop_base_path,
-                                           subpool));
-      if (different_filesizes)
-        {
-          *modified_p = TRUE;
-          goto cleanup;
-        }
-
-      /* Easy-answer attempt #2: (### this stat's the files again) */
-
-      /* See if the local file's prop timestamp is the same as the
-         one recorded in the administrative directory.  */
-      SVN_ERR(svn_wc__timestamps_equal_p(&equal_timestamps, path, adm_access,
-                                         svn_wc__prop_time, subpool));
-      if (equal_timestamps)
-        {
-          *modified_p = FALSE;
-          goto cleanup;
-        }
-    } /* wc_format <= SVN_WC__NO_PROPCACHING_VERSION */
-
-  /* If we get here, then we either known we have prop changes and want
-     the specific changed props or we have a pre-propcaching WC version
-     and still haven't figured out if we even have changes.  Regardless,
-     our approach is the same in both cases.
-
-     In the pre-propcaching case:
-
-       We know that the filesizes are the same,
-       but the timestamps are different.  That's still not enough
-       evidence to make a correct decision;  we need to look at the
-       files' contents directly.
-
-       However, doing a byte-for-byte comparison won't work.  The two
-       properties files may have the *exact* same name/value pairs, but
-       arranged in a different order.  (Our hashdump format makes no
-       guarantees about ordering.)
-
-       Therefore, rather than use contents_identical_p(), we use
-       svn_prop_diffs(). */
   {
     apr_array_header_t *local_propchanges;
-    apr_hash_t *localprops, *baseprops;
+    apr_hash_t *localprops;
+    apr_hash_t *baseprops;
 
-    /* ### Amazingly, this stats the files again! */
     SVN_ERR(load_props(&localprops, path, entry->kind, svn_wc__props_working,
-                       subpool));
+                       pool));
+
+    /* If something is scheduled for replacement, we do *not* want to
+       pay attention to any base-props;  they might be residual from the
+       old deleted file. */
+    /* ### in modern WC formats, they should be the replaced file's
+       ### base props. hard to know on old WCs tho? (given the above
+       ### comment). just declare propmods if the node has any working
+       ### properties. */
+    if (entry->schedule == svn_wc_schedule_replace)
+      {
+        *modified_p = apr_hash_count(localprops) > 0;
+        return SVN_NO_ERROR;
+      }
+
     SVN_ERR(load_props(&baseprops, path, entry->kind, svn_wc__props_base,
-                       subpool));
+                       pool));
 
-    /* Don't use the subpool if we are hanging on to the changed props. */
-    SVN_ERR(svn_prop_diffs(&local_propchanges, localprops, baseprops, subpool));
+    SVN_ERR(svn_prop_diffs(&local_propchanges, localprops, baseprops, pool));
 
     *modified_p = (local_propchanges->nelts > 0);
   }
 
- cleanup:
-  svn_pool_destroy(subpool);
-
   return SVN_NO_ERROR;
 }
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/questions.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/questions.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/questions.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/questions.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -178,43 +178,18 @@ svn_error_t *
 svn_wc__timestamps_equal_p(svn_boolean_t *equal_p,
                            const char *path,
                            svn_wc_adm_access_t *adm_access,
-                           enum svn_wc__timestamp_kind timestamp_kind,
                            apr_pool_t *pool)
 {
-  apr_time_t wfile_time, entrytime = 0;
   const svn_wc_entry_t *entry;
+  apr_time_t wfile_time;
 
   /* Get the timestamp from the entries file */
   SVN_ERR(svn_wc__entry_versioned(&entry, path, adm_access, FALSE, pool));
 
   /* Get the timestamp from the working file and the entry */
-  if (timestamp_kind == svn_wc__text_time)
-    {
-      SVN_ERR(svn_io_file_affected_time(&wfile_time, path, pool));
-      entrytime = entry->text_time;
-    }
-
-  else if (timestamp_kind == svn_wc__prop_time)
-    {
-      SVN_ERR(svn_wc__props_last_modified(&wfile_time,
-                                          path, svn_wc__props_working,
-                                          adm_access, pool));
-      entrytime = entry->prop_time;
-    }
+  SVN_ERR(svn_io_file_affected_time(&wfile_time, path, pool));
 
-  if (! entrytime)
-    {
-      /* TODO: If either timestamp is inaccessible, the test cannot
-         return an answer.  Assume that the timestamps are
-         different. */
-      *equal_p = FALSE;
-      return SVN_NO_ERROR;
-    }
-
-  if (wfile_time == entrytime)
-    *equal_p = TRUE;
-  else
-    *equal_p = FALSE;
+  *equal_p = wfile_time == entry->text_time;
 
   return SVN_NO_ERROR;
 }
@@ -290,7 +265,7 @@ compare_and_verify(svn_boolean_t *modifi
           if (compare_textbases && need_translation)
             {
               if (eol_style == svn_subst_eol_style_native)
-                eol_str = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+                eol_str = SVN_SUBST_NATIVE_EOL_STR;
               else if (eol_style != svn_subst_eol_style_fixed
                        && eol_style != svn_subst_eol_style_none)
                 return svn_error_create(SVN_ERR_IO_UNKNOWN_EOL, NULL, NULL);

Modified: branches/svnpatch-diff/subversion/libsvn_wc/questions.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/questions.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/questions.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/questions.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -29,14 +29,6 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-/* Indicates which kind of timestamp to pay attention to.
-   See svn_wc__timestamps_equal_p(). */
-enum svn_wc__timestamp_kind
-{
-  svn_wc__text_time = 1,
-  svn_wc__prop_time
-};
-
 
 /* Return an SVN_ERR_WC_UNSUPPORTED_FORMAT error if the working copy
  * format WC_FORMAT is unsupported.  PATH is only used in the error
@@ -48,9 +40,9 @@ svn_error_t *
 svn_wc__check_format(int wc_format, const char *path, apr_pool_t *pool);
 
 
-/* Set *EQUAL_P to true if PATH's TIMESTAMP_KIND timestamp is the same as
- * the one recorded in its `entries' file, else to set to false. ADM_ACCESS
- * must be an access baton for PATH.
+/* Set *EQUAL_P to true if PATH's timestamp is the same as the one recorded
+ * in its `entries' file, else to set to false. ADM_ACCESS must be an access
+ * baton for PATH.
  *
  * Use POOL for any temporary allocation.
  */
@@ -58,7 +50,6 @@ svn_error_t *
 svn_wc__timestamps_equal_p(svn_boolean_t *equal_p,
                            const char *path,
                            svn_wc_adm_access_t *adm_access,
-                           enum svn_wc__timestamp_kind timestamp_kind,
                            apr_pool_t *pool);
 
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/translate.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/translate.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/translate.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/translate.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -102,7 +102,7 @@ svn_wc_translated_stream(svn_stream_t **
       if (to_nf)
         {
           if (style == svn_subst_eol_style_native)
-            eol = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+            eol = SVN_SUBST_NATIVE_EOL_STR;
           else if (style == svn_subst_eol_style_fixed)
             repair_forced = TRUE;
           else if (style != svn_subst_eol_style_none)
@@ -194,7 +194,7 @@ svn_wc_translated_file2(const char **xla
           /* to normal form */
 
           if (style == svn_subst_eol_style_native)
-            eol = "\n"; /* ### SVN_SUBST__DEFAULT_EOL_STR; */
+            eol = SVN_SUBST_NATIVE_EOL_STR;
           else if (style == svn_subst_eol_style_fixed)
             repair_forced = TRUE;
           else if (style != svn_subst_eol_style_none)

Modified: branches/svnpatch-diff/subversion/libsvn_wc/tree_conflicts.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/tree_conflicts.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/tree_conflicts.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/tree_conflicts.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -81,6 +81,7 @@ static const enum_mapping_t node_kind_ma
 /* A map for svn_wc_operation_t values. */
 static const enum_mapping_t operation_map[] =
 {
+  { "none",   svn_wc_operation_none },
   { "update", svn_wc_operation_update },
   { "switch", svn_wc_operation_switch },
   { "merge",  svn_wc_operation_merge },

Modified: branches/svnpatch-diff/subversion/libsvn_wc/update_editor.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/update_editor.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/update_editor.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/update_editor.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -3957,8 +3957,7 @@ merge_file(svn_wc_notify_state_t *conten
         {
           /* Adjust entries file to match working file */
           SVN_ERR(svn_wc__loggy_set_entry_timestamp_from_wc
-                  (&log_accum, adm_access,
-                   fb->path, SVN_WC__ENTRY_ATTR_TEXT_TIME, pool));
+                  (&log_accum, adm_access, fb->path, pool));
         }
       SVN_ERR(svn_wc__loggy_set_entry_working_size_from_wc
               (&log_accum, adm_access, fb->path, pool));
@@ -5003,8 +5002,7 @@ svn_wc_add_repos_file3(const char *dst_p
                                  tmp_text_base_path, dst_path,
                                  pool));
       SVN_ERR(svn_wc__loggy_set_entry_timestamp_from_wc
-              (&log_accum, adm_access,
-               dst_path, SVN_WC__ENTRY_ATTR_TEXT_TIME, pool));
+              (&log_accum, adm_access, dst_path, pool));
       SVN_ERR(svn_wc__loggy_set_entry_working_size_from_wc
               (&log_accum, adm_access, dst_path, pool));
     }

Modified: branches/svnpatch-diff/subversion/libsvn_wc/wc-metadata.sql
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/wc-metadata.sql?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/wc-metadata.sql	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/wc-metadata.sql	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -78,7 +78,7 @@ CREATE TABLE BASE_NODE (
   revnum  INTEGER NOT NULL,
 
   /* file/dir/special. none says this node is NOT present at this REV. */
-  kind  INTEGER NOT NULL,
+  kind  TEXT NOT NULL,
 
   /* if this node is a file, then the checksum and its translated size
      (given the properties on this file) are specified by the following
@@ -92,7 +92,7 @@ CREATE TABLE BASE_NODE (
   changed_author  TEXT NOT NULL,
 
   /* NULL depth means "default" (typically svn_depth_infinity) */
-  depth  INTEGER,
+  depth  TEXT,
 
   /* ### Do we need this?  We've currently got various mod time APIs
      ### internal to libsvn_wc, but those might be used in answering some
@@ -147,10 +147,11 @@ CREATE TABLE WORKING_NODE (
        if a BASE_NODE exists at the same local_relpath, then this is a
        replaced item (possibly copied or moved here), which implies the
        base node should be deleted first. */
-  kind  INTEGER NOT NULL,
+  kind  TEXT NOT NULL,
 
   /* Where this node was copied from. Set only on the root of the copy,
      and implied for all children. */
+  copyfrom_repos_id  INTEGER,
   copyfrom_repos_path  TEXT,
   copyfrom_revnum  INTEGER,
 
@@ -175,7 +176,7 @@ CREATE TABLE WORKING_NODE (
   changed_author  TEXT,
 
   /* NULL depth means "default" (typically svn_depth_infinity) */
-  depth  INTEGER,
+  depth  TEXT,
 
   /* ### Do we need this?  We've currently got various mod time APIs
      ### internal to libsvn_wc, but those might be used in answering some
@@ -186,7 +187,10 @@ CREATE TABLE WORKING_NODE (
   properties  BLOB NOT NULL,
 
   /* if not NULL, this node is part of a changelist. */
-  changelist_id  INTEGER
+  changelist_id  INTEGER,
+
+  /* if a directory, serialized data for all of tree conflicts therein. */
+  tree_conflict_data  TEXT
   );
 
 CREATE UNIQUE INDEX I_WORKING_PATH ON WORKING_NODE (wc_id, local_relpath);
@@ -234,7 +238,7 @@ CREATE UNIQUE INDEX I_CL_LIST ON CHANGEL
 
 /* ------------------------------------------------------------------------- */
 
-CREATE TABLE LOCKS (
+CREATE TABLE LOCK (
   /* URL of the node which is locked */
   url  TEXT NOT NULL PRIMARY KEY,
 

Modified: branches/svnpatch-diff/subversion/libsvn_wc/wc_db.h
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/libsvn_wc/wc_db.h?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/libsvn_wc/wc_db.h	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/libsvn_wc/wc_db.h	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -111,7 +111,7 @@ typedef enum {
    ### like it is "Right".
 */
 
-/* ### where/how to handle: text_time, prop_time, locks, working_size */
+/* ### where/how to handle: text_time, locks, working_size */
 
 /* ### update docstrings: all paths should be internal/canonical */
 

Modified: branches/svnpatch-diff/subversion/po/pl.po
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/po/pl.po?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/po/pl.po	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/po/pl.po	Fri Jan 30 16:31:36 2009	(r35609)
@@ -38,8 +38,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: subversion 1.6\n"
 "Report-Msgid-Bugs-To: dev@subversion.tigris.org\n"
-"POT-Creation-Date: 2009-01-18 18:00+0100\n"
-"PO-Revision-Date: 2009-01-18 18:00+0100\n"
+"POT-Creation-Date: 2009-01-31 00:00+0100\n"
+"PO-Revision-Date: 2009-01-31 00:00+0100\n"
 "Last-Translator: Subversion Developers <dev@subversion.tigris.org>\n"
 "Language-Team: Polish <dev@subversion.tigris.org>\n"
 "MIME-Version: 1.0\n"
@@ -50,72 +50,72 @@ msgstr ""
 #. Constructing nice error messages for roots.
 #. Build an SVN_ERR_FS_NOT_FOUND error, with a detailed error text,
 #. for PATH in ROOT. ROOT is of type svn_fs_root_t *.
-#: ../include/private/svn_fs_util.h:54
+#: ../include/private/svn_fs_util.h:61
 #, c-format
 msgid "File not found: transaction '%s', path '%s'"
 msgstr "Plik nieznaleziony: transakcja '%s', ścieżka '%s'"
 
-#: ../include/private/svn_fs_util.h:59
+#: ../include/private/svn_fs_util.h:66
 #, c-format
 msgid "File not found: revision %ld, path '%s'"
 msgstr "Plik nieznaleziony: wersja %ld, ścieżka '%s'"
 
 #. Build a detailed `file already exists' message for PATH in ROOT.
 #. ROOT is of type svn_fs_root_t *.
-#: ../include/private/svn_fs_util.h:70
+#: ../include/private/svn_fs_util.h:77
 #, c-format
 msgid "File already exists: filesystem '%s', transaction '%s', path '%s'"
 msgstr "Plik już istnieje: system plików '%s', transakcja '%s, ścieżka '%s'"
 
-#: ../include/private/svn_fs_util.h:75
+#: ../include/private/svn_fs_util.h:82
 #, c-format
 msgid "File already exists: filesystem '%s', revision %ld, path '%s'"
 msgstr "Plik już istnieje: system plików '%s', wersja %ld, ścieżka '%s'"
 
 #. ROOT is of type svn_fs_root_t *.
-#: ../include/private/svn_fs_util.h:83
+#: ../include/private/svn_fs_util.h:90
 msgid "Root object must be a transaction root"
 msgstr "Obiekt korzenia musi być korzeniem transakcji"
 
 #. SVN_FS__ERR_NOT_MUTABLE: the caller attempted to change a node
 #. outside of a transaction. FS is of type "svn_fs_t *".
-#: ../include/private/svn_fs_util.h:90
+#: ../include/private/svn_fs_util.h:97
 #, c-format
 msgid "File is not mutable: filesystem '%s', revision %ld, path '%s'"
 msgstr "Plik jest niemodyfikowalny: system plików '%s', wersja %ld, ścieżka '%s'"
 
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:97
+#: ../include/private/svn_fs_util.h:104
 #, c-format
 msgid "'%s' is not a directory in filesystem '%s'"
 msgstr "'%s' nie jest katalogiem w systemie plików '%s'"
 
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:104
+#: ../include/private/svn_fs_util.h:111
 #, c-format
 msgid "'%s' is not a file in filesystem '%s'"
 msgstr "'%s' nie jest plikiem w systemie plików '%s'"
 
 #. FS is of type "svn fs_t *", LOCK is of type "svn_lock_t *".
-#: ../include/private/svn_fs_util.h:111
+#: ../include/private/svn_fs_util.h:118
 #, c-format
 msgid "Path '%s' is already locked by user '%s' in filesystem '%s'"
 msgstr "Ścieżka '%s' jest już zablokowana przez użytkownika '%s' w systemie \
plików '%s'"  
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:118
+#: ../include/private/svn_fs_util.h:125
 #, c-format
 msgid "No lock on path '%s' in filesystem '%s'"
 msgstr "Brak blokady dla ścieżki '%s' w systemie plików '%s'"
 
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:125
+#: ../include/private/svn_fs_util.h:132
 #, c-format
 msgid "Lock has expired: lock-token '%s' in filesystem '%s'"
 msgstr "Blokada wygasła: żeton blokady '%s' w systemie plików '%s'"
 
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:132
+#: ../include/private/svn_fs_util.h:139
 #, c-format
 msgid "No username is currently associated with filesystem '%s'"
 msgstr "Brak użytkownika obecnie skojarzonego z systemem plików '%s'"
@@ -123,984 +123,984 @@ msgstr "Brak użytkownika obecnie skojar
 #. SVN_FS__ERR_LOCK_OWNER_MISMATCH: trying to use a lock whose
 #. LOCK_OWNER doesn't match the USERNAME associated with FS.
 #. FS is of type "svn fs_t *".
-#: ../include/private/svn_fs_util.h:141
+#: ../include/private/svn_fs_util.h:148
 #, c-format
 msgid "User '%s' is trying to use a lock owned by '%s' in filesystem '%s'"
 msgstr "Użytkownik '%s' próbuje użyć blokadę posiadaną przez '%s' w systemie \
plików '%s'"  
-#: ../include/svn_error_codes.h:158
+#: ../include/svn_error_codes.h:155
 msgid "Bad parent pool passed to svn_make_pool()"
 msgstr "Błędna pula macierzysta przekazana do svn_make_pool()"
 
-#: ../include/svn_error_codes.h:162
+#: ../include/svn_error_codes.h:159
 msgid "Bogus filename"
 msgstr "Niepoprawna nazwa pliku"
 
-#: ../include/svn_error_codes.h:166
+#: ../include/svn_error_codes.h:163
 msgid "Bogus URL"
 msgstr "Niepoprawny URL"
 
-#: ../include/svn_error_codes.h:170
+#: ../include/svn_error_codes.h:167
 msgid "Bogus date"
 msgstr "Niepoprawna data"
 
-#: ../include/svn_error_codes.h:174
+#: ../include/svn_error_codes.h:171
 msgid "Bogus mime-type"
 msgstr "Niepoprawny typ MIME"
 
-#: ../include/svn_error_codes.h:184
+#: ../include/svn_error_codes.h:181
 msgid "Wrong or unexpected property value"
 msgstr "Błędna lub nieoczekiwana wartość atrybutu"
 
-#: ../include/svn_error_codes.h:188
+#: ../include/svn_error_codes.h:185
 msgid "Version file format not correct"
 msgstr "Niepoprawny format pliku wersji"
 
-#: ../include/svn_error_codes.h:192
+#: ../include/svn_error_codes.h:189
 msgid "Path is not an immediate child of the specified directory"
 msgstr "Ścieżka nie jest bezpośrednim katalogiem podrzędnym podanego katalogu"
 
-#: ../include/svn_error_codes.h:196
+#: ../include/svn_error_codes.h:193
 msgid "Bogus UUID"
 msgstr "Niepoprawny UUID"
 
-#: ../include/svn_error_codes.h:201 ../include/svn_error_codes.h:820
+#: ../include/svn_error_codes.h:198 ../include/svn_error_codes.h:817
 msgid "Invalid configuration value"
 msgstr "BÅ‚Ä…d konfiguracji"
 
-#: ../include/svn_error_codes.h:205
+#: ../include/svn_error_codes.h:202
 msgid "Bogus server specification"
 msgstr "Niepoprawna specyfikacja serwera"
 
-#: ../include/svn_error_codes.h:209
+#: ../include/svn_error_codes.h:206
 msgid "Unsupported checksum type"
 msgstr "Nieobsługiwany typ sumy kontrolnej"
 
-#: ../include/svn_error_codes.h:213
+#: ../include/svn_error_codes.h:210
 msgid "Invalid character in hex checksum"
 msgstr "Nieprawidłowy znak w szesnastkowej sumie kontrolnej"
 
-#: ../include/svn_error_codes.h:219
+#: ../include/svn_error_codes.h:216
 msgid "No such XML tag attribute"
 msgstr "Brak takiego atrybutu XML"
 
-#: ../include/svn_error_codes.h:223
+#: ../include/svn_error_codes.h:220
 msgid "<delta-pkg> is missing ancestry"
 msgstr "<delta-pkg> nie zawiera informacji o pochodzeniu"
 
-#: ../include/svn_error_codes.h:227
+#: ../include/svn_error_codes.h:224
 msgid "Unrecognized binary data encoding; can't decode"
 msgstr "Nierozpoznany format danych binarnych; nie można rozkodować"
 
-#: ../include/svn_error_codes.h:231
+#: ../include/svn_error_codes.h:228
 msgid "XML data was not well-formed"
 msgstr "Niepoprawny składniowo XML"
 
-#: ../include/svn_error_codes.h:235
+#: ../include/svn_error_codes.h:232
 msgid "Data cannot be safely XML-escaped"
 msgstr "Nie można stworzyć poprawnego XML"
 
-#: ../include/svn_error_codes.h:241
+#: ../include/svn_error_codes.h:238
 msgid "Inconsistent line ending style"
 msgstr "Niespójny sposób zapisywania końców wiersza"
 
-#: ../include/svn_error_codes.h:245
+#: ../include/svn_error_codes.h:242
 msgid "Unrecognized line ending style"
 msgstr "Nieznany sposób zapisywania końców wiersza"
 
-#: ../include/svn_error_codes.h:250
+#: ../include/svn_error_codes.h:247
 msgid "Line endings other than expected"
 msgstr "Końce wiersza inne niż oczekiwano"
 
-#: ../include/svn_error_codes.h:254
+#: ../include/svn_error_codes.h:251
 msgid "Ran out of unique names"
 msgstr "Wykorzystano wszystkie unikalne nazwy"
 
-#: ../include/svn_error_codes.h:259
+#: ../include/svn_error_codes.h:256
 msgid "Framing error in pipe protocol"
 msgstr "BÅ‚Ä…d ramki w komunikacji IPC"
 
-#: ../include/svn_error_codes.h:264
+#: ../include/svn_error_codes.h:261
 msgid "Read error in pipe"
 msgstr "BÅ‚Ä…d odczytu IPC"
 
-#: ../include/svn_error_codes.h:268 ../libsvn_subr/cmdline.c:312
-#: ../libsvn_subr/cmdline.c:329 ../svn/util.c:887 ../svnlook/main.c:1694
+#: ../include/svn_error_codes.h:265 ../libsvn_subr/cmdline.c:313
+#: ../libsvn_subr/cmdline.c:330 ../svn/util.c:887 ../svnlook/main.c:1694
 #, c-format
 msgid "Write error"
 msgstr "BÅ‚Ä…d zapisu"
 
-#: ../include/svn_error_codes.h:274
+#: ../include/svn_error_codes.h:271
 msgid "Unexpected EOF on stream"
 msgstr "Nieoczekiwany koniec strumienia"
 
-#: ../include/svn_error_codes.h:278
+#: ../include/svn_error_codes.h:275
 msgid "Malformed stream data"
 msgstr "Uszkodzone dane w strumieniu"
 
-#: ../include/svn_error_codes.h:282
+#: ../include/svn_error_codes.h:279
 msgid "Unrecognized stream data"
 msgstr "Nierozpoznane dane w strumieniu"
 
-#: ../include/svn_error_codes.h:288
+#: ../include/svn_error_codes.h:285
 msgid "Unknown svn_node_kind"
 msgstr "Nieznany rodzaj obiektu"
 
-#: ../include/svn_error_codes.h:292
+#: ../include/svn_error_codes.h:289
 msgid "Unexpected node kind found"
 msgstr "Nieoczekiwany rodzaj obiektu"
 
-#: ../include/svn_error_codes.h:298
+#: ../include/svn_error_codes.h:295
 msgid "Can't find an entry"
 msgstr "Nie można znależć elementu"
 
-#: ../include/svn_error_codes.h:304
+#: ../include/svn_error_codes.h:301
 msgid "Entry already exists"
 msgstr "Element już istnieje"
 
-#: ../include/svn_error_codes.h:308
+#: ../include/svn_error_codes.h:305
 msgid "Entry has no revision"
 msgstr "Element nie ma wersji"
 
-#: ../include/svn_error_codes.h:312
+#: ../include/svn_error_codes.h:309
 msgid "Entry has no URL"
 msgstr "Element nie ma URL-u"
 
-#: ../include/svn_error_codes.h:316
+#: ../include/svn_error_codes.h:313
 msgid "Entry has an invalid attribute"
 msgstr "Obiekt ma niepoprawny atrybut"
 
-#: ../include/svn_error_codes.h:320
+#: ../include/svn_error_codes.h:317
 msgid "Can't create an entry for a forbidden name"
 msgstr "Nie można utworzyć wpisu dla zabronionej nazwy"
 
-#: ../include/svn_error_codes.h:326
+#: ../include/svn_error_codes.h:323
 msgid "Obstructed update"
 msgstr "Przerwana aktualizacja"
 
-#: ../include/svn_error_codes.h:331
+#: ../include/svn_error_codes.h:328
 msgid "Mismatch popping the WC unwind stack"
 msgstr "Niezgodność w trakcie pobierania wartości ze stosu cofania zmian"
 
-#: ../include/svn_error_codes.h:336
+#: ../include/svn_error_codes.h:333
 msgid "Attempt to pop empty WC unwind stack"
 msgstr "Próba pobrania wartości z pustego stosu cofania zmian"
 
-#: ../include/svn_error_codes.h:341
+#: ../include/svn_error_codes.h:338
 msgid "Attempt to unlock with non-empty unwind stack"
 msgstr "Próba zdjęcia blokady przy nieopróżnionym stosie cofania zmian"
 
-#: ../include/svn_error_codes.h:345
+#: ../include/svn_error_codes.h:342
 msgid "Attempted to lock an already-locked dir"
 msgstr "Próba zablokowania już zablokowanego katalogu"
 
-#: ../include/svn_error_codes.h:349
+#: ../include/svn_error_codes.h:346
 msgid "Working copy not locked; this is probably a bug, please report"
 msgstr "Kopia robocza nie została zablokowana. Prawdopodobnie jest to błąd, \
wyślij zgłoszenie błędu"  
-#: ../include/svn_error_codes.h:354
+#: ../include/svn_error_codes.h:351
 msgid "Invalid lock"
 msgstr "Błędna blokada"
 
-#: ../include/svn_error_codes.h:358
+#: ../include/svn_error_codes.h:355
 msgid "Path is not a working copy directory"
 msgstr "Ścieżka nie wskazuje na katalog w ramach kopii roboczej"
 
-#: ../include/svn_error_codes.h:362
+#: ../include/svn_error_codes.h:359
 msgid "Path is not a working copy file"
 msgstr "Ścieżka nie wskazuje na plik w ramach kopii roboczej"
 
-#: ../include/svn_error_codes.h:366
+#: ../include/svn_error_codes.h:363
 msgid "Problem running log"
 msgstr "Nieudane uruchomienie logu"
 
-#: ../include/svn_error_codes.h:370
+#: ../include/svn_error_codes.h:367
 msgid "Can't find a working copy path"
 msgstr "Nie można odnaleźć ścieżki w ramach kopii roboczej"
 
-#: ../include/svn_error_codes.h:374
+#: ../include/svn_error_codes.h:371
 msgid "Working copy is not up-to-date"
 msgstr "Kopia robocza jest nieaktualna"
 
-#: ../include/svn_error_codes.h:378
+#: ../include/svn_error_codes.h:375
 msgid "Left locally modified or unversioned files"
 msgstr "Pozostały pliki zmodyfikowane lokalnie lub niepodlegające kontroli wersji"
 
-#: ../include/svn_error_codes.h:382
+#: ../include/svn_error_codes.h:379
 msgid "Unmergeable scheduling requested on an entry"
 msgstr "Zlecenie niezgodne z już zarejestrowanymi zleceniami"
 
-#: ../include/svn_error_codes.h:386
+#: ../include/svn_error_codes.h:383
 msgid "Found a working copy path"
 msgstr "Znaleziono ścieżkę w ramach kopii roboczej"
 
-#: ../include/svn_error_codes.h:390
+#: ../include/svn_error_codes.h:387
 msgid "A conflict in the working copy obstructs the current operation"
 msgstr "Konflikt w ramach kopii roboczej uniemożliwia wykonanie polecenia"
 
-#: ../include/svn_error_codes.h:394
+#: ../include/svn_error_codes.h:391
 msgid "Working copy is corrupt"
 msgstr "Uszkodzona kopia robocza"
 
-#: ../include/svn_error_codes.h:398
+#: ../include/svn_error_codes.h:395
 msgid "Working copy text base is corrupt"
 msgstr "Uszkodzony plik bazowy"
 
-#: ../include/svn_error_codes.h:402
+#: ../include/svn_error_codes.h:399
 msgid "Cannot change node kind"
 msgstr "Nie można zmienić typu obiektu"
 
-#: ../include/svn_error_codes.h:406
+#: ../include/svn_error_codes.h:403
 msgid "Invalid operation on the current working directory"
 msgstr "Niepoprawna operacja na katalogu bieżącym"
 
-#: ../include/svn_error_codes.h:410
+#: ../include/svn_error_codes.h:407
 msgid "Problem on first log entry in a working copy"
 msgstr "Problem z zapisem pierwszego elementy logu w kopii roboczej"
 
-#: ../include/svn_error_codes.h:414
+#: ../include/svn_error_codes.h:411
 msgid "Unsupported working copy format"
 msgstr "Nieznany format kopii roboczej"
 
-#: ../include/svn_error_codes.h:418
+#: ../include/svn_error_codes.h:415
 msgid "Path syntax not supported in this context"
 msgstr "Sposób zapisania ścieżki nieobsługiwany w tej sytuacji"
 
-#: ../include/svn_error_codes.h:423
+#: ../include/svn_error_codes.h:420
 msgid "Invalid schedule"
 msgstr "Niewłaściwe zlecenie"
 
-#: ../include/svn_error_codes.h:428
+#: ../include/svn_error_codes.h:425
 msgid "Invalid relocation"
 msgstr "Błędna relokacja"
 
-#: ../include/svn_error_codes.h:433
+#: ../include/svn_error_codes.h:430
 msgid "Invalid switch"
 msgstr "Niewłaściwy przełącznik"
 
-#: ../include/svn_error_codes.h:438
+#: ../include/svn_error_codes.h:435
 msgid "Changelist doesn't match"
 msgstr "Lista zmian siÄ™ nie zgadza"
 
-#: ../include/svn_error_codes.h:443
+#: ../include/svn_error_codes.h:440
 msgid "Conflict resolution failed"
 msgstr "Rozwiązanie konfliktu nie powiodło się"
 
-#: ../include/svn_error_codes.h:447
+#: ../include/svn_error_codes.h:444
 msgid "Failed to locate 'copyfrom' path in working copy"
 msgstr "Nie udało się zlokalizować ścieżki 'copyfrom' w kopii roboczej"
 
-#: ../include/svn_error_codes.h:452
+#: ../include/svn_error_codes.h:449
 msgid "Moving a path from one changelist to another"
 msgstr "Przenoszenie ścieżki z jednej listy zmian to innej"
 
-#: ../include/svn_error_codes.h:457
+#: ../include/svn_error_codes.h:454
 msgid "Cannot delete a file external"
 msgstr "Nie można usunąć plikowego eksternału"
 
-#: ../include/svn_error_codes.h:462
+#: ../include/svn_error_codes.h:459
 msgid "Cannot move a file external"
 msgstr "Nie można przenieść plikowego eksternału"
 
-#: ../include/svn_error_codes.h:468
+#: ../include/svn_error_codes.h:465
 msgid "General filesystem error"
 msgstr "Błąd systemu plików"
 
-#: ../include/svn_error_codes.h:472
+#: ../include/svn_error_codes.h:469
 msgid "Error closing filesystem"
 msgstr "Błąd w trakcie zamykania systemu plików"
 
-#: ../include/svn_error_codes.h:476
+#: ../include/svn_error_codes.h:473
 msgid "Filesystem is already open"
 msgstr "System plików jest już otwarty"
 
-#: ../include/svn_error_codes.h:480
+#: ../include/svn_error_codes.h:477
 msgid "Filesystem is not open"
 msgstr "System plików nie jest otwarty"
 
-#: ../include/svn_error_codes.h:484
+#: ../include/svn_error_codes.h:481
 msgid "Filesystem is corrupt"
 msgstr "Uszkodzony system plików"
 
-#: ../include/svn_error_codes.h:488
+#: ../include/svn_error_codes.h:485
 msgid "Invalid filesystem path syntax"
 msgstr "Błędna składnia ścieżki"
 
-#: ../include/svn_error_codes.h:492
+#: ../include/svn_error_codes.h:489
 msgid "Invalid filesystem revision number"
 msgstr "Błędny numer wersji"
 
-#: ../include/svn_error_codes.h:496
+#: ../include/svn_error_codes.h:493
 msgid "Invalid filesystem transaction name"
 msgstr "Błędna nazwa transakcji"
 
-#: ../include/svn_error_codes.h:500
+#: ../include/svn_error_codes.h:497
 msgid "Filesystem directory has no such entry"
 msgstr "Katalog nie zawiera takiego elementu"
 
-#: ../include/svn_error_codes.h:504
+#: ../include/svn_error_codes.h:501
 msgid "Filesystem has no such representation"
 msgstr "Katalog nie ma takiej reprezentacji"
 
-#: ../include/svn_error_codes.h:508
+#: ../include/svn_error_codes.h:505
 msgid "Filesystem has no such string"
 msgstr "System plików nie zawiera takiego napisu"
 
-#: ../include/svn_error_codes.h:512
+#: ../include/svn_error_codes.h:509
 msgid "Filesystem has no such copy"
 msgstr "System plików nie zawiera takiej kopii"
 
-#: ../include/svn_error_codes.h:516
+#: ../include/svn_error_codes.h:513
 msgid "The specified transaction is not mutable"
 msgstr "Podana transakcja nie może być modyfikowana"
 
-#: ../include/svn_error_codes.h:520
+#: ../include/svn_error_codes.h:517
 msgid "Filesystem has no item"
 msgstr "System plików nie zawiera podanego elementu"
 
-#: ../include/svn_error_codes.h:524
+#: ../include/svn_error_codes.h:521
 msgid "Filesystem has no such node-rev-id"
 msgstr "System plików nie zawiera węzła o podanym identyfikatorze wersji"
 
-#: ../include/svn_error_codes.h:528
+#: ../include/svn_error_codes.h:525
 msgid "String does not represent a node or node-rev-id"
 msgstr "Napis nie zawiera identyfikatora węzła lub wersji węzła"
 
-#: ../include/svn_error_codes.h:532
+#: ../include/svn_error_codes.h:529
 msgid "Name does not refer to a filesystem directory"
 msgstr "Nazwa nie odnosi się do katalogu systemu plików"
 
-#: ../include/svn_error_codes.h:536
+#: ../include/svn_error_codes.h:533
 msgid "Name does not refer to a filesystem file"
 msgstr "Nazwa nie odnosi się do pliku systemu plików"
 
-#: ../include/svn_error_codes.h:540
+#: ../include/svn_error_codes.h:537
 msgid "Name is not a single path component"
 msgstr "Nazwa nie jest pojedynczą ścieżką"
 
-#: ../include/svn_error_codes.h:544
+#: ../include/svn_error_codes.h:541
 msgid "Attempt to change immutable filesystem node"
 msgstr "Próba zmiany węzła niemogącego ulegać zmianom"
 
-#: ../include/svn_error_codes.h:548
+#: ../include/svn_error_codes.h:545
 msgid "Item already exists in filesystem"
 msgstr "Element już istnieje"
 
-#: ../include/svn_error_codes.h:552
+#: ../include/svn_error_codes.h:549
 msgid "Attempt to remove or recreate fs root dir"
 msgstr "Próba usunięcia lub ponownego utworzenia głównego katalogu systemu \
plików"  
-#: ../include/svn_error_codes.h:556
+#: ../include/svn_error_codes.h:553
 msgid "Object is not a transaction root"
 msgstr "Obiekt nie wskazuje na korzeń transakcji"
 
-#: ../include/svn_error_codes.h:560
+#: ../include/svn_error_codes.h:557
 msgid "Object is not a revision root"
 msgstr "Obiekt nie wskazuje na korzeń wersji"
 
-#: ../include/svn_error_codes.h:564
+#: ../include/svn_error_codes.h:561
 msgid "Merge conflict during commit"
 msgstr "Konflikt Å‚Ä…czenia zmian w trakcie zatwierdzania"
 
-#: ../include/svn_error_codes.h:568
+#: ../include/svn_error_codes.h:565
 msgid "A representation vanished or changed between reads"
 msgstr "Reprezentacja zniknęła lub zmieniła się pomiędzy kolejnymi odczytami"
 
-#: ../include/svn_error_codes.h:572
+#: ../include/svn_error_codes.h:569
 msgid "Tried to change an immutable representation"
 msgstr "Próba zmiany reprezentacji niemogącej ulegać zmianom"
 
-#: ../include/svn_error_codes.h:576
+#: ../include/svn_error_codes.h:573
 msgid "Malformed skeleton data"
 msgstr "Błędne dane wzorcowe"
 
-#: ../include/svn_error_codes.h:580
+#: ../include/svn_error_codes.h:577
 msgid "Transaction is out of date"
 msgstr "Transakcja jest nieaktualna"
 
-#: ../include/svn_error_codes.h:584
+#: ../include/svn_error_codes.h:581
 msgid "Berkeley DB error"
 msgstr "BÅ‚Ä…d Berkeley DB"
 
-#: ../include/svn_error_codes.h:588
+#: ../include/svn_error_codes.h:585
 msgid "Berkeley DB deadlock error"
 msgstr "Zakleszczenie Berkeley DB"
 
-#: ../include/svn_error_codes.h:592
+#: ../include/svn_error_codes.h:589
 msgid "Transaction is dead"
 msgstr "Transakcja jest zniszczona"
 
-#: ../include/svn_error_codes.h:596
+#: ../include/svn_error_codes.h:593
 msgid "Transaction is not dead"
 msgstr "Transakcja nie jest zniszczona"
 
-#: ../include/svn_error_codes.h:601
+#: ../include/svn_error_codes.h:598
 msgid "Unknown FS type"
 msgstr "Nieznany typ systemu plików"
 
-#: ../include/svn_error_codes.h:606
+#: ../include/svn_error_codes.h:603
 msgid "No user associated with filesystem"
 msgstr "Brak użytkownika skojarzonego z systemem plików"
 
-#: ../include/svn_error_codes.h:611
+#: ../include/svn_error_codes.h:608
 msgid "Path is already locked"
 msgstr "Ścieżka została już zablokowana"
 
-#: ../include/svn_error_codes.h:616 ../include/svn_error_codes.h:772
+#: ../include/svn_error_codes.h:613 ../include/svn_error_codes.h:769
 msgid "Path is not locked"
 msgstr "Ścieżka nie jest zablokowana"
 
-#: ../include/svn_error_codes.h:621
+#: ../include/svn_error_codes.h:618
 msgid "Lock token is incorrect"
 msgstr "Żeton blokady jest niepoprawny"
 
-#: ../include/svn_error_codes.h:626
+#: ../include/svn_error_codes.h:623
 msgid "No lock token provided"
 msgstr "Nie podano żetonu blokady"
 
-#: ../include/svn_error_codes.h:631
+#: ../include/svn_error_codes.h:628
 msgid "Username does not match lock owner"
 msgstr "Nazwa użytkownika nie zgadza się z nazwą właściciela blokady"
 
-#: ../include/svn_error_codes.h:636
+#: ../include/svn_error_codes.h:633
 msgid "Filesystem has no such lock"
 msgstr "System plików nie zawiera takiej blokady"
 
-#: ../include/svn_error_codes.h:641
+#: ../include/svn_error_codes.h:638
 msgid "Lock has expired"
 msgstr "Blokada wygasła"
 
-#: ../include/svn_error_codes.h:646 ../include/svn_error_codes.h:759
+#: ../include/svn_error_codes.h:643 ../include/svn_error_codes.h:756
 msgid "Item is out of date"
 msgstr "Element jest nieaktualny"
 
-#: ../include/svn_error_codes.h:658
+#: ../include/svn_error_codes.h:655
 msgid "Unsupported FS format"
 msgstr "Nieznany format systemu plików"
 
-#: ../include/svn_error_codes.h:663
+#: ../include/svn_error_codes.h:660
 msgid "Representation is being written"
 msgstr "Reprezentacja jest zapisywana"
 
-#: ../include/svn_error_codes.h:668
+#: ../include/svn_error_codes.h:665
 msgid "The generated transaction name is too long"
 msgstr "Wygenerowana nazwa transakcji jest zbyt długa"
 
-#: ../include/svn_error_codes.h:673
+#: ../include/svn_error_codes.h:670
 msgid "Filesystem has no such node origin record"
 msgstr "System plików nie zawiera rekordu pochodzenia takiego węzła"
 
-#: ../include/svn_error_codes.h:678
+#: ../include/svn_error_codes.h:675
 msgid "Filesystem upgrade is not supported"
 msgstr "Aktualizacja systemu plików nie jest wspierana"
 
-#: ../include/svn_error_codes.h:683
+#: ../include/svn_error_codes.h:680
 msgid "Filesystem has no such checksum-representation index record"
 msgstr "System plików nie ma takiego rekordu wskaźnika reprezentacji sumy \
kontrolnej"  
-#: ../include/svn_error_codes.h:689
+#: ../include/svn_error_codes.h:686
 msgid "The repository is locked, perhaps for db recovery"
 msgstr "Repozytorium jest zablokowane, być może ze względu na odtwarzanie bazy \
danych"  
-#: ../include/svn_error_codes.h:693
+#: ../include/svn_error_codes.h:690
 msgid "A repository hook failed"
 msgstr "BÅ‚Ä…d wykonania skryptu (hook) repozytorium"
 
-#: ../include/svn_error_codes.h:697
+#: ../include/svn_error_codes.h:694
 msgid "Incorrect arguments supplied"
 msgstr "Błędne parametry"
 
-#: ../include/svn_error_codes.h:701
+#: ../include/svn_error_codes.h:698
 msgid "A report cannot be generated because no data was supplied"
 msgstr "Brak danych do wygenerowania raportu"
 
-#: ../include/svn_error_codes.h:705
+#: ../include/svn_error_codes.h:702
 msgid "Bogus revision report"
 msgstr "Niepoprawny raport o wersji"
 
-#: ../include/svn_error_codes.h:714
+#: ../include/svn_error_codes.h:711
 msgid "Unsupported repository version"
 msgstr "Nieobsługiwana wersja repozytorium"
 
-#: ../include/svn_error_codes.h:718
+#: ../include/svn_error_codes.h:715
 msgid "Disabled repository feature"
 msgstr "Wyłączona obsługa funkcji repozytorium"
 
-#: ../include/svn_error_codes.h:722
+#: ../include/svn_error_codes.h:719
 msgid "Error running post-commit hook"
 msgstr "Błąd działania skryptu post-commit"
 
-#: ../include/svn_error_codes.h:727
+#: ../include/svn_error_codes.h:724
 msgid "Error running post-lock hook"
 msgstr "Błąd podczas działania skryptu post-lock"
 
-#: ../include/svn_error_codes.h:732
+#: ../include/svn_error_codes.h:729
 msgid "Error running post-unlock hook"
 msgstr "Błąd podczas działania skryptu post-unlock"
 
-#: ../include/svn_error_codes.h:737
+#: ../include/svn_error_codes.h:734
 msgid "Repository upgrade is not supported"
 msgstr "Aktualizacja repozytorium nie jest wspierana"
 
-#: ../include/svn_error_codes.h:743
+#: ../include/svn_error_codes.h:740
 msgid "Bad URL passed to RA layer"
 msgstr "Błędny URL przekazany do warstwy RA"
 
-#: ../include/svn_error_codes.h:747
+#: ../include/svn_error_codes.h:744
 msgid "Authorization failed"
 msgstr "Nieudana autoryzacja"
 
-#: ../include/svn_error_codes.h:751
+#: ../include/svn_error_codes.h:748
 msgid "Unknown authorization method"
 msgstr "Nieznana metoda autoryzacji"
 
-#: ../include/svn_error_codes.h:755
+#: ../include/svn_error_codes.h:752
 msgid "Repository access method not implemented"
 msgstr "Niezaimplementowana metoda dostępu do repozytorium"
 
-#: ../include/svn_error_codes.h:763
+#: ../include/svn_error_codes.h:760
 msgid "Repository has no UUID"
 msgstr "Repozytorium nie ma UUID-u"
 
-#: ../include/svn_error_codes.h:767
+#: ../include/svn_error_codes.h:764
 msgid "Unsupported RA plugin ABI version"
 msgstr "Nieobsługiwana wersja ABI w pluginie RA"
 
-#: ../include/svn_error_codes.h:777
+#: ../include/svn_error_codes.h:774
 msgid "Server can only replay from the root of a repository"
 msgstr "Serwer może tylko powtarzać z katalogu głównego repozytorium"
 
-#: ../include/svn_error_codes.h:782
+#: ../include/svn_error_codes.h:779
 msgid "Repository UUID does not match expected UUID"
 msgstr "UUID repozytorium nie zgadza siÄ™ z oczekiwanym UUID-em"
 
-#: ../include/svn_error_codes.h:787
+#: ../include/svn_error_codes.h:784
 msgid "Repository root URL does not match expected root URL"
 msgstr "URL katalogu głównego repozytorium nie zgadza się z oczekiwanym URL-em \
katalogu głównego"  
-#: ../include/svn_error_codes.h:793
+#: ../include/svn_error_codes.h:790
 msgid "RA layer failed to init socket layer"
 msgstr "Warstwa RA nie zainicjowała połączenia sieciowego"
 
-#: ../include/svn_error_codes.h:797
+#: ../include/svn_error_codes.h:794
 msgid "RA layer failed to create HTTP request"
 msgstr "Warstwa RA nie stworzyła żądania HTTP"
 
-#: ../include/svn_error_codes.h:801
+#: ../include/svn_error_codes.h:798
 msgid "RA layer request failed"
 msgstr "Żądanie warstwy RA nie powiodło się"
 
-#: ../include/svn_error_codes.h:805
+#: ../include/svn_error_codes.h:802
 msgid "RA layer didn't receive requested OPTIONS info"
 msgstr "Warstwa RA nie otrzymała wymaganych informacji"
 
-#: ../include/svn_error_codes.h:809
+#: ../include/svn_error_codes.h:806
 msgid "RA layer failed to fetch properties"
 msgstr "Warstwa RA nie zdołała pobrać atrybutów"
 
-#: ../include/svn_error_codes.h:813
+#: ../include/svn_error_codes.h:810
 msgid "RA layer file already exists"
 msgstr "Plik warstwy RA już istnieje"
 
-#: ../include/svn_error_codes.h:827
+#: ../include/svn_error_codes.h:824
 msgid "HTTP Path Not Found"
 msgstr "Nie znaleziono adresu HTTP"
 
-#: ../include/svn_error_codes.h:831
+#: ../include/svn_error_codes.h:828
 msgid "Failed to execute WebDAV PROPPATCH"
 msgstr "BÅ‚Ä…d wykonania PROPPATCH WebDAV"
 
-#: ../include/svn_error_codes.h:836 ../include/svn_error_codes.h:877
+#: ../include/svn_error_codes.h:833 ../include/svn_error_codes.h:874
 #: ../libsvn_ra_svn/marshal.c:651 ../libsvn_ra_svn/marshal.c:769
 #: ../libsvn_ra_svn/marshal.c:796
 msgid "Malformed network data"
 msgstr "Błędne dane z sieci"
 
-#: ../include/svn_error_codes.h:841
+#: ../include/svn_error_codes.h:838
 msgid "Unable to extract data from response header"
 msgstr "Nie udało się zdekodować danych z nagłówka odpowiedzi"
 
-#: ../include/svn_error_codes.h:846
+#: ../include/svn_error_codes.h:843
 msgid "Repository has been moved"
 msgstr "Repozytorium zostało przeniesione"
 
-#: ../include/svn_error_codes.h:852 ../include/svn_error_codes.h:881
+#: ../include/svn_error_codes.h:849 ../include/svn_error_codes.h:878
 msgid "Couldn't find a repository"
 msgstr "Nie znaleziono repozytorium"
 
-#: ../include/svn_error_codes.h:856
+#: ../include/svn_error_codes.h:853
 msgid "Couldn't open a repository"
 msgstr "Nie zdołano otworzyć repozytorium"
 
-#: ../include/svn_error_codes.h:861
+#: ../include/svn_error_codes.h:858
 msgid "Special code for wrapping server errors to report to client"
 msgstr "BÅ‚Ä…d serwera"
 
-#: ../include/svn_error_codes.h:865
+#: ../include/svn_error_codes.h:862
 msgid "Unknown svn protocol command"
 msgstr "Nieznane polecenie protokołu svn"
 
-#: ../include/svn_error_codes.h:869
+#: ../include/svn_error_codes.h:866
 msgid "Network connection closed unexpectedly"
 msgstr "Nieoczekiwane przerwanie połączenia sieciowego"
 
-#: ../include/svn_error_codes.h:873
+#: ../include/svn_error_codes.h:870
 msgid "Network read/write error"
 msgstr "BÅ‚Ä…d odczytu/zapisu sieciowego"
 
-#: ../include/svn_error_codes.h:885
+#: ../include/svn_error_codes.h:882
 msgid "Client/server version mismatch"
 msgstr "Niezgodność wersji klienta i serwera"
 
-#: ../include/svn_error_codes.h:890
+#: ../include/svn_error_codes.h:887
 msgid "Cannot negotiate authentication mechanism"
 msgstr "Nie można określić sposobu autoryzacji"
 
-#: ../include/svn_error_codes.h:896
+#: ../include/svn_error_codes.h:893
 msgid "Initialization of SSPI library failed"
 msgstr "Inicjalizacja biblioteki SSPI nie udała się"
 
-#: ../include/svn_error_codes.h:900
+#: ../include/svn_error_codes.h:897
 msgid "Server SSL certificate untrusted"
 msgstr "Niezaufany certyfikat SSL serwera"
 
-#: ../include/svn_error_codes.h:908
+#: ../include/svn_error_codes.h:905
 msgid "Credential data unavailable"
 msgstr "Brak danych uwierzytelniajÄ…cych"
 
-#: ../include/svn_error_codes.h:912
+#: ../include/svn_error_codes.h:909
 msgid "No authentication provider available"
 msgstr "Brak mechanizmów uwierzytelniania"
 
-#: ../include/svn_error_codes.h:916
+#: ../include/svn_error_codes.h:913
 msgid "All authentication providers exhausted"
 msgstr "Wyczerpano możliwości uwierzytelniania"
 
-#: ../include/svn_error_codes.h:920
+#: ../include/svn_error_codes.h:917
 msgid "Credentials not saved"
 msgstr "Dane uwierzytelniajÄ…ce niezapisane"
 
-#: ../include/svn_error_codes.h:925
+#: ../include/svn_error_codes.h:922
 msgid "Authentication failed"
 msgstr "Nieudane uwierzytelnienie"
 
-#: ../include/svn_error_codes.h:931
+#: ../include/svn_error_codes.h:928
 msgid "Read access denied for root of edit"
 msgstr "Brak prawa do odczytu katalogu głównego edycji"
 
-#: ../include/svn_error_codes.h:936
+#: ../include/svn_error_codes.h:933
 msgid "Item is not readable"
 msgstr "Nie można odczytać elementu"
 
-#: ../include/svn_error_codes.h:941
+#: ../include/svn_error_codes.h:938
 msgid "Item is partially readable"
 msgstr "Element można tylko częściowo odczytać"
 
-#: ../include/svn_error_codes.h:945
+#: ../include/svn_error_codes.h:942
 msgid "Invalid authz configuration"
 msgstr "Błędna konfiguracja autoryzacji"
 
-#: ../include/svn_error_codes.h:950
+#: ../include/svn_error_codes.h:947
 msgid "Item is not writable"
 msgstr "Elementu nie można zapisywać"
 
-#: ../include/svn_error_codes.h:956
+#: ../include/svn_error_codes.h:953
 msgid "Svndiff data has invalid header"
 msgstr "Błędny nagłówek danych svndiff"
 
-#: ../include/svn_error_codes.h:960
+#: ../include/svn_error_codes.h:957
 msgid "Svndiff data contains corrupt window"
 msgstr "Błędne okno danych svndiff"
 
-#: ../include/svn_error_codes.h:964
+#: ../include/svn_error_codes.h:961
 msgid "Svndiff data contains backward-sliding source view"
 msgstr "Dane svndiff zawierajÄ… wsteczny podglÄ…d"
 
-#: ../include/svn_error_codes.h:968
+#: ../include/svn_error_codes.h:965
 msgid "Svndiff data contains invalid instruction"
 msgstr "Dane svndiff zawierajÄ… nieznanÄ… instrukcjÄ™"
 
-#: ../include/svn_error_codes.h:972
+#: ../include/svn_error_codes.h:969
 msgid "Svndiff data ends unexpectedly"
 msgstr "Nieoczekiwany koniec danych svndiff"
 
-#: ../include/svn_error_codes.h:976
+#: ../include/svn_error_codes.h:973
 msgid "Svndiff compressed data is invalid"
 msgstr "Błędny nagłówek skomprymowanych danych svndiff"
 
-#: ../include/svn_error_codes.h:982
+#: ../include/svn_error_codes.h:979
 msgid "Diff data source modified unexpectedly"
 msgstr "Dane diff nieoczekiwanie zostały zmodyfikowane"
 
-#: ../include/svn_error_codes.h:988
+#: ../include/svn_error_codes.h:985
 msgid "Apache has no path to an SVN filesystem"
 msgstr "Apache nie zna ścieżki do systemu plików Subversion"
 
-#: ../include/svn_error_codes.h:992
+#: ../include/svn_error_codes.h:989
 msgid "Apache got a malformed URI"
 msgstr "Apache otrzymał błędny URI"
 
-#: ../include/svn_error_codes.h:996
+#: ../include/svn_error_codes.h:993
 msgid "Activity not found"
 msgstr "Nie znaleziono aktywności"
 
-#: ../include/svn_error_codes.h:1000
+#: ../include/svn_error_codes.h:997
 msgid "Baseline incorrect"
 msgstr "Błędna linia bazowa"
 
-#: ../include/svn_error_codes.h:1004
+#: ../include/svn_error_codes.h:1001
 msgid "Input/output error"
 msgstr "Błąd wejścia/wyjścia"
 
-#: ../include/svn_error_codes.h:1010
+#: ../include/svn_error_codes.h:1007
 msgid "A path under version control is needed for this operation"
 msgstr "To polecenie wymaga ścieżki podlegającej zarządzaniu wersjami"
 
-#: ../include/svn_error_codes.h:1014
+#: ../include/svn_error_codes.h:1011
 msgid "Repository access is needed for this operation"
 msgstr "To polecenie wymaga dostępu do repozytorium"
 
-#: ../include/svn_error_codes.h:1018
+#: ../include/svn_error_codes.h:1015
 msgid "Bogus revision information given"
 msgstr "Błędne informacje o wersji"
 
-#: ../include/svn_error_codes.h:1022
+#: ../include/svn_error_codes.h:1019
 msgid "Attempting to commit to a URL more than once"
 msgstr "Próba zatwierdzenia URL więcej niż raz"
 
-#: ../include/svn_error_codes.h:1026
+#: ../include/svn_error_codes.h:1023
 msgid "Operation does not apply to binary file"
 msgstr "Polecenie niedostępne dla plików binarnych"
 
-#: ../include/svn_error_codes.h:1032
+#: ../include/svn_error_codes.h:1029
 msgid "Format of an svn:externals property was invalid"
 msgstr "Błędny format atrybutu svn:externals"
 
-#: ../include/svn_error_codes.h:1036
+#: ../include/svn_error_codes.h:1033
 msgid "Attempting restricted operation for modified resource"
 msgstr "Próba wykonania zastrzeżonej operacji dla zmodyfikowanego zasobu"
 
-#: ../include/svn_error_codes.h:1040
+#: ../include/svn_error_codes.h:1037
 msgid "Operation does not apply to directory"
 msgstr "Polecenie niedostępne dla katalogów"
 
-#: ../include/svn_error_codes.h:1044
+#: ../include/svn_error_codes.h:1041
 msgid "Revision range is not allowed"
 msgstr "Zakres wersji jest niedozwolony w tym przypadku"
 
-#: ../include/svn_error_codes.h:1048
+#: ../include/svn_error_codes.h:1045
 msgid "Inter-repository relocation not allowed"
 msgstr "Przeniesienie między repozytoriami nie jest dozwolone"
 
-#: ../include/svn_error_codes.h:1052
+#: ../include/svn_error_codes.h:1049
 msgid "Author name cannot contain a newline"
 msgstr "Nazwa autora nie może zawierać znaku nowego wiersza"
 
-#: ../include/svn_error_codes.h:1056
+#: ../include/svn_error_codes.h:1053
 msgid "Bad property name"
 msgstr "Błędna nazwa atrybutu"
 
-#: ../include/svn_error_codes.h:1061
+#: ../include/svn_error_codes.h:1058
 msgid "Two versioned resources are unrelated"
 msgstr "Podane zasoby nie sÄ… ze sobÄ… zwiÄ…zane"
 
-#: ../include/svn_error_codes.h:1066
+#: ../include/svn_error_codes.h:1063
 msgid "Path has no lock token"
 msgstr "Ścieżka nie zawiera żetonu blokady"
 
-#: ../include/svn_error_codes.h:1071
+#: ../include/svn_error_codes.h:1068
 msgid "Operation does not support multiple sources"
 msgstr "Operacja nie obsługuje wielu źródeł"
 
-#: ../include/svn_error_codes.h:1076
+#: ../include/svn_error_codes.h:1073
 msgid "No versioned parent directories"
 msgstr "Niewersjonowane narzędne katalogi"
 
-#: ../include/svn_error_codes.h:1081
+#: ../include/svn_error_codes.h:1078
 msgid "Working copy and merge source not ready for reintegration"
 msgstr "Kopia robocza i źródło połączeń zmian nie są gotowe do reintegracji"
 
-#: ../include/svn_error_codes.h:1086
+#: ../include/svn_error_codes.h:1083
 msgid "A file external cannot overwrite an existing versioned item"
 msgstr "Plikowy eksternał nie może nadpisać istniejącego wersjonowanego obiektu"
 
-#: ../include/svn_error_codes.h:1092
+#: ../include/svn_error_codes.h:1089
 msgid "A problem occurred; see other errors for details"
 msgstr "Wystąpił błąd, zobacz szczegóły w innych błędach"
 
-#: ../include/svn_error_codes.h:1096
+#: ../include/svn_error_codes.h:1093
 msgid "Failure loading plugin"
 msgstr "BÅ‚Ä…d Å‚adowania plugina."
 
-#: ../include/svn_error_codes.h:1100
+#: ../include/svn_error_codes.h:1097
 msgid "Malformed file"
 msgstr "Błędny plik"
 
-#: ../include/svn_error_codes.h:1104
+#: ../include/svn_error_codes.h:1101
 msgid "Incomplete data"
 msgstr "Niepełne dane"
 
-#: ../include/svn_error_codes.h:1108
+#: ../include/svn_error_codes.h:1105
 msgid "Incorrect parameters given"
 msgstr "Błędne parametry"
 
-#: ../include/svn_error_codes.h:1112
+#: ../include/svn_error_codes.h:1109
 msgid "Tried a versioning operation on an unversioned resource"
 msgstr "Polecenie wymaga pliku podlegajÄ…cego zarzÄ…dzaniu wersjami, podany parametr \
tego warunku nie spełnia."  
-#: ../include/svn_error_codes.h:1116
+#: ../include/svn_error_codes.h:1113
 msgid "Test failed"
 msgstr "BÅ‚Ä…d testu"
 
-#: ../include/svn_error_codes.h:1120
+#: ../include/svn_error_codes.h:1117
 msgid "Trying to use an unsupported feature"
 msgstr "Próba użycia nieobsługiwanej funkcji"
 
-#: ../include/svn_error_codes.h:1124
+#: ../include/svn_error_codes.h:1121
 msgid "Unexpected or unknown property kind"
 msgstr "Nieoczekiwany lub nieznany typ atrybutu"
 
-#: ../include/svn_error_codes.h:1128
+#: ../include/svn_error_codes.h:1125
 msgid "Illegal target for the requested operation"
 msgstr "Nielegalny obiekt dla podanej operacji"
 
-#: ../include/svn_error_codes.h:1132
+#: ../include/svn_error_codes.h:1129
 msgid "MD5 checksum is missing"
 msgstr "Niezgodność sumy kontrolnej MD5"
 
-#: ../include/svn_error_codes.h:1136
+#: ../include/svn_error_codes.h:1133
 msgid "Directory needs to be empty but is not"
 msgstr "Katalog powinien być pusty, ale nie jest"
 
-#: ../include/svn_error_codes.h:1140
+#: ../include/svn_error_codes.h:1137
 msgid "Error calling external program"
 msgstr "Błąd uruchamiania zewnętrznego programu"
 
-#: ../include/svn_error_codes.h:1144
+#: ../include/svn_error_codes.h:1141
 msgid "Python exception has been set with the error"
 msgstr "Wyjątek języka Python"
 
-#: ../include/svn_error_codes.h:1148
+#: ../include/svn_error_codes.h:1145
 msgid "A checksum mismatch occurred"
 msgstr "Niezgodność sumy kontrolnej"
 
-#: ../include/svn_error_codes.h:1152
+#: ../include/svn_error_codes.h:1149
 msgid "The operation was interrupted"
 msgstr "Wykonanie polecenia przerwano"
 
-#: ../include/svn_error_codes.h:1156
+#: ../include/svn_error_codes.h:1153
 msgid "The specified diff option is not supported"
 msgstr "Podana opcja diff nie jest obsługiwana"
 
-#: ../include/svn_error_codes.h:1160
+#: ../include/svn_error_codes.h:1157
 msgid "Property not found"
 msgstr "Nie ma takiego atrybutu"
 
-#: ../include/svn_error_codes.h:1164
+#: ../include/svn_error_codes.h:1161
 msgid "No auth file path available"
 msgstr "Brak ścieżki do pliku uwierzytelniającego"
 
-#: ../include/svn_error_codes.h:1169
+#: ../include/svn_error_codes.h:1166
 msgid "Incompatible library version"
 msgstr "Niekompatybilna wersja biblioteki"
 
-#: ../include/svn_error_codes.h:1174
+#: ../include/svn_error_codes.h:1171
 msgid "Mergeinfo parse error"
 msgstr "BÅ‚Ä…d parsowania informacji Å‚Ä…czenia zmian"
 
-#: ../include/svn_error_codes.h:1179
+#: ../include/svn_error_codes.h:1176
 msgid "Cease invocation of this API"
 msgstr "Zaprzestane wywołanie tego API"
 
-#: ../include/svn_error_codes.h:1184
+#: ../include/svn_error_codes.h:1181
 msgid "Error parsing revision number"
 msgstr "BÅ‚Ä…d podczas parsowania numeru wersji"
 
-#: ../include/svn_error_codes.h:1189
+#: ../include/svn_error_codes.h:1186
 msgid "Iteration terminated before completion"
 msgstr "Iteracja przerwana przed zakończeniem"
 
-#: ../include/svn_error_codes.h:1194
+#: ../include/svn_error_codes.h:1191
 msgid "Unknown changelist"
 msgstr "Nieznana lista zmian"
 
-#: ../include/svn_error_codes.h:1199
+#: ../include/svn_error_codes.h:1196
 msgid "Reserved directory name in command line arguments"
 msgstr "Zarezerwowana nazwa katalogu wśród argumentów linii poleceń"
 
-#: ../include/svn_error_codes.h:1204
+#: ../include/svn_error_codes.h:1201
 msgid "Inquiry about unknown capability"
 msgstr "Dochodzenie w sprawie nieznanej zdolności"
 
-#: ../include/svn_error_codes.h:1209
+#: ../include/svn_error_codes.h:1206
 msgid "Test skipped"
 msgstr "Test pominięty"
 
-#: ../include/svn_error_codes.h:1214
+#: ../include/svn_error_codes.h:1211
 msgid "apr memcache library not available"
 msgstr "Biblioteka apr memcache niedostępna"
 
-#: ../include/svn_error_codes.h:1219
+#: ../include/svn_error_codes.h:1216
 msgid "Couldn't perform atomic initialization"
 msgstr "Nie można przeprowadzić atomowej inicjalizacji"
 
-#: ../include/svn_error_codes.h:1224
+#: ../include/svn_error_codes.h:1221
 msgid "SQLite error"
 msgstr "BÅ‚Ä…d SQLite"
 
-#: ../include/svn_error_codes.h:1229
+#: ../include/svn_error_codes.h:1226
 msgid "Attempted to write to readonly SQLite db"
 msgstr "Próba zapisu do bazy danych SQLite otwartej w trybie tylko do odczytu"
 
-#: ../include/svn_error_codes.h:1234
+#: ../include/svn_error_codes.h:1231
 msgid "Unsupported schema found in SQLite db"
 msgstr "Nieobsługiwany schemat znaleziony w bazie danych SQLite"
 
-#: ../include/svn_error_codes.h:1240
+#: ../include/svn_error_codes.h:1237
 msgid "Error parsing arguments"
 msgstr "Błąd podczas parsowania parametrów"
 
-#: ../include/svn_error_codes.h:1244
+#: ../include/svn_error_codes.h:1241
 msgid "Not enough arguments provided"
 msgstr "Zbyt mało parametrów"
 
-#: ../include/svn_error_codes.h:1248
+#: ../include/svn_error_codes.h:1245
 msgid "Mutually exclusive arguments specified"
 msgstr "Podano sprzeczne parametry"
 
-#: ../include/svn_error_codes.h:1252
+#: ../include/svn_error_codes.h:1249
 msgid "Attempted command in administrative dir"
 msgstr "Próba wykonania polecenia w katalogu administracyjnym"
 
-#: ../include/svn_error_codes.h:1256
+#: ../include/svn_error_codes.h:1253
 msgid "The log message file is under version control"
 msgstr "Plik z opisem zmian podlega zarzÄ…dzaniu wersjami"
 
-#: ../include/svn_error_codes.h:1260
+#: ../include/svn_error_codes.h:1257
 msgid "The log message is a pathname"
 msgstr "Opis zmian jest ścieżką"
 
-#: ../include/svn_error_codes.h:1264
+#: ../include/svn_error_codes.h:1261
 msgid "Committing in directory scheduled for addition"
 msgstr "Próba zatwierdzania w katalogu oczekującym na dodanie"
 
-#: ../include/svn_error_codes.h:1268
+#: ../include/svn_error_codes.h:1265
 msgid "No external editor available"
 msgstr "Brak zewnętrznego edytora"
 
-#: ../include/svn_error_codes.h:1272
+#: ../include/svn_error_codes.h:1269
 msgid "Something is wrong with the log message's contents"
 msgstr "Opis zmian zawiera jakiś błąd"
 
-#: ../include/svn_error_codes.h:1276
+#: ../include/svn_error_codes.h:1273
 msgid "A log message was given where none was necessary"
 msgstr "Wprowadzono opis zmian mimo, że nie jest wymagany"
 
-#: ../include/svn_error_codes.h:1280
+#: ../include/svn_error_codes.h:1277
 msgid "No external merge tool available"
 msgstr "Nie jest dostępne zewnętrzne narzędzie łączenia zmian"
 
-#: ../include/svn_error_codes.h:1286
+#: ../include/svn_error_codes.h:1283
 msgid "Assertion failure"
 msgstr "BÅ‚Ä…d asercji"
 
@@ -1115,7 +1115,7 @@ msgid "Error during add of '%s'"
 msgstr "BÅ‚Ä…d podczas dodawania '%s'"
 
 #: ../libsvn_client/add.c:480 ../libsvn_client/cmdline.c:249
-#: ../libsvn_subr/opt.c:792
+#: ../libsvn_subr/opt.c:793
 #, c-format
 msgid "'%s' ends in a reserved name"
 msgstr "'%s' kończy się zarezerwowaną nazwą"
@@ -1125,11 +1125,11 @@ msgstr "'%s' kończy się zarezerwowaną
 msgid "Cannot calculate blame information for binary file '%s'"
 msgstr "Nie można określić odpowiedzialności za plik binarny '%s'"
 
-#: ../libsvn_client/blame.c:620
+#: ../libsvn_client/blame.c:621
 msgid "blame of the WORKING revision is not supported"
 msgstr "odpowiedzialność wersji kopii roboczej nie jest wspierana"
 
-#: ../libsvn_client/blame.c:634
+#: ../libsvn_client/blame.c:635
 msgid "Start revision must precede end revision"
 msgstr "Wersja początkowa musi być mniejsza niż końcowa"
 
@@ -1138,7 +1138,7 @@ msgstr "Wersja początkowa musi być mni
 msgid "'%s' refers to a directory"
 msgstr "'%s' odnosi siÄ™ do katalogu"
 
-#: ../libsvn_client/cat.c:122 ../libsvn_client/export.c:177
+#: ../libsvn_client/cat.c:122 ../libsvn_client/export.c:192
 msgid "(local)"
 msgstr "(lokalny)"
 
@@ -1147,7 +1147,7 @@ msgstr "(lokalny)"
 msgid "URL '%s' refers to a directory"
 msgstr "URL '%s' odnosi siÄ™ do katalogu"
 
-#: ../libsvn_client/checkout.c:135 ../libsvn_client/export.c:956
+#: ../libsvn_client/checkout.c:135 ../libsvn_client/export.c:992
 #, c-format
 msgid "URL '%s' doesn't exist"
 msgstr "URL '%s' nie istnieje"
@@ -1181,68 +1181,68 @@ msgstr "Niepoprawny względny URL '%s'"
 msgid "All non-relative targets must have the same root URL"
 msgstr "Wszystkie bezwzględne cele muszą mieć ten sam URL katalogu głównego"
 
-#: ../libsvn_client/commit.c:428
+#: ../libsvn_client/commit.c:436
 #, c-format
 msgid "Unknown or unversionable type for '%s'"
 msgstr "Nieznany lub niepodlegajÄ…cy zarzÄ…dzaniu wersjami rodzaj obiektu dla '%s'"
 
-#: ../libsvn_client/commit.c:533
+#: ../libsvn_client/commit.c:541
 msgid "New entry name required when importing a file"
 msgstr "Wymagane podanie nazwy obiektu podczas importowania pliku"
 
-#: ../libsvn_client/commit.c:568 ../libsvn_wc/adm_ops.c:1017
+#: ../libsvn_client/commit.c:576 ../libsvn_wc/adm_ops.c:1017
 #: ../libsvn_wc/questions.c:90
 #, c-format
 msgid "'%s' does not exist"
 msgstr "'%s' nie istnieje"
 
-#: ../libsvn_client/commit.c:627 ../libsvn_client/copy.c:392
+#: ../libsvn_client/commit.c:635 ../libsvn_client/copy.c:392
 #: ../svnlook/main.c:1318
 #, c-format
 msgid "Path '%s' does not exist"
 msgstr "Ścieżka '%s' nie istnieje"
 
-#: ../libsvn_client/commit.c:759 ../libsvn_client/copy.c:401
+#: ../libsvn_client/commit.c:767 ../libsvn_client/copy.c:401
 #: ../libsvn_client/copy.c:866 ../libsvn_client/copy.c:1100
-#: ../libsvn_client/copy.c:1523
+#: ../libsvn_client/copy.c:1525
 #, c-format
 msgid "Path '%s' already exists"
 msgstr "Ścieżka '%s' już istnieje"
 
-#: ../libsvn_client/commit.c:774
+#: ../libsvn_client/commit.c:782
 #, c-format
 msgid "'%s' is a reserved name and cannot be imported"
 msgstr "'%s' to nazwa zastrzeżona i nie może zostać zaimportowana"
 
-#: ../libsvn_client/commit.c:860 ../libsvn_client/copy.c:1264
+#: ../libsvn_client/commit.c:868 ../libsvn_client/copy.c:1264
 msgid "Commit failed (details follow):"
 msgstr "Zatwierdzenie nie powiodło się (szczegóły poniżej):"
 
-#: ../libsvn_client/commit.c:868
+#: ../libsvn_client/commit.c:876
 msgid "Commit succeeded, but other errors follow:"
 msgstr "Zatwierdzenie powiodło się, lecz wystąpiły inne błędy:"
 
-#: ../libsvn_client/commit.c:875
+#: ../libsvn_client/commit.c:883
 msgid "Error unlocking locked dirs (details follow):"
 msgstr "Nie udało się odblokowanie katalogów (szczegóły poniżej):"
 
-#: ../libsvn_client/commit.c:886
+#: ../libsvn_client/commit.c:894
 msgid "Error bumping revisions post-commit (details follow):"
 msgstr "Błąd operacji post-commit (szczegóły poniżej):"
 
-#: ../libsvn_client/commit.c:897
+#: ../libsvn_client/commit.c:905
 msgid "Error in post-commit clean-up (details follow):"
 msgstr "Błąd oczyszczania post-commit (szczegóły poniżej):"
 
-#: ../libsvn_client/commit.c:1245
+#: ../libsvn_client/commit.c:1253
 msgid "Are all the targets part of the same working copy?"
 msgstr "Czy wszystkie obiekty docelowe należą do tej samej kopii roboczej?"
 
-#: ../libsvn_client/commit.c:1278
+#: ../libsvn_client/commit.c:1286
 msgid "Cannot non-recursively commit a directory deletion"
 msgstr "Zatwierdzenie usunięcia katalogu musi być wykonane rekurencyjnie"
 
-#: ../libsvn_client/commit.c:1327
+#: ../libsvn_client/commit.c:1335
 #, c-format
 msgid "'%s' is a URL, but URLs cannot be commit targets"
 msgstr "'%s' to URL, a URL-e nie mogą być obiektami zatwierdzenia"
@@ -1334,7 +1334,7 @@ msgstr "Element '%s' zaznaczony do skopi
 msgid "Standard properties can't be set explicitly as revision properties"
 msgstr "Standardowe atrybuty nie mogą być jawnie ustawione jako atrybuty wersji"
 
-#: ../libsvn_client/copy.c:417 ../libsvn_client/copy.c:1539
+#: ../libsvn_client/copy.c:417 ../libsvn_client/copy.c:1541
 #: ../libsvn_client/update.c:141
 #, c-format
 msgid "Path '%s' is not a directory"
@@ -1360,61 +1360,61 @@ msgstr "Nie można przenieść URL-u '%s
 msgid "Path '%s' does not exist in revision %ld"
 msgstr "Ścieżka '%s' nie istnieje w wersji %ld"
 
-#: ../libsvn_client/copy.c:1360
+#: ../libsvn_client/copy.c:1361
 #, c-format
 msgid "Source URL '%s' is from foreign repository; leaving it as a disjoint WC"
 msgstr "Źródłowy URL '%s' pochodzi z zewnętrznego repozytorium; pozostaje jako \
kopia rozłączona"  
-#: ../libsvn_client/copy.c:1510
+#: ../libsvn_client/copy.c:1512
 #, c-format
 msgid "Path '%s' not found in revision %ld"
 msgstr "Ścieżka '%s' nie znaleziona w wersji '%ld'"
 
-#: ../libsvn_client/copy.c:1515
+#: ../libsvn_client/copy.c:1517
 #, c-format
 msgid "Path '%s' not found in head revision"
 msgstr "Ścieżki '%s' nie znaleziono w wersji HEAD"
 
-#: ../libsvn_client/copy.c:1571 ../libsvn_wc/adm_ops.c:1402
-#: ../libsvn_wc/copy.c:910
+#: ../libsvn_client/copy.c:1573 ../libsvn_wc/adm_ops.c:1402
+#: ../libsvn_wc/copy.c:918
 #, c-format
 msgid "'%s' is already under version control"
 msgstr "'%s' już podlega zarządzaniu wersjami"
 
-#: ../libsvn_client/copy.c:1579
+#: ../libsvn_client/copy.c:1581
 #, c-format
 msgid "Entry for '%s' exists (though the working file is missing)"
 msgstr "Element '%s' istnieje, choć nie znaleziono kopii roboczej pliku"
 
-#: ../libsvn_client/copy.c:1668 ../libsvn_client/diff.c:1691
-#: ../libsvn_client/log.c:321 ../libsvn_client/log.c:381
+#: ../libsvn_client/copy.c:1672 ../libsvn_client/diff.c:1691
+#: ../libsvn_client/log.c:331 ../libsvn_client/log.c:391
 msgid "Revision type requires a working copy path, not a URL"
 msgstr "Rodzaj wersji wymaga ścieżkę kopii roboczej, nie URL"
 
-#: ../libsvn_client/copy.c:1713
+#: ../libsvn_client/copy.c:1717
 msgid "Cannot mix repository and working copy sources"
 msgstr "Nie można mieszać źródeł repozytorium i kopii roboczej"
 
-#: ../libsvn_client/copy.c:1756
+#: ../libsvn_client/copy.c:1760
 #, c-format
 msgid "Cannot copy path '%s' into its own child '%s'"
 msgstr "Nie można skopiować ścieżki '%s' do własnej podrzędnej '%s'"
 
-#: ../libsvn_client/copy.c:1792
+#: ../libsvn_client/copy.c:1796
 #, c-format
 msgid "Cannot move the file external at '%s'; please propedit the svn:externals \
description that created it"  msgstr "Nie można przenieść plikowego eksternału \
przy '%s'. Proszę zmodyfikować opis svn:externals, który utworzył ten eksternał" \
                
-#: ../libsvn_client/copy.c:1813
+#: ../libsvn_client/copy.c:1817
 #, c-format
 msgid "Cannot move path '%s' into itself"
 msgstr "Nie można przenieść ścieżki '%s' do siebie samej"
 
-#: ../libsvn_client/copy.c:1822
+#: ../libsvn_client/copy.c:1826
 msgid "Moves between the working copy and the repository are not supported"
 msgstr "Przeniesienia między kopią roboczą a repozytorium są nieobsługiwane"
 
-#: ../libsvn_client/copy.c:1886
+#: ../libsvn_client/copy.c:1890
 #, c-format
 msgid "'%s' does not have a URL associated with it"
 msgstr "obiekt '%s' nie posiada zwiÄ…zanego z nim URL-u"
@@ -1424,9 +1424,9 @@ msgstr "obiekt '%s' nie posiada zwiÄ…zan
 msgid "'%s' is in the way of the resource actually under version control"
 msgstr "'%s' leży w miejscu pliku podlegającego zarządzaniu wersjami"
 
-#: ../libsvn_client/delete.c:56 ../libsvn_wc/adm_ops.c:3138
-#: ../libsvn_wc/entries.c:1519 ../libsvn_wc/entries.c:2665
-#: ../libsvn_wc/entries.c:3294 ../libsvn_wc/update_editor.c:3696
+#: ../libsvn_client/delete.c:56 ../libsvn_wc/adm_ops.c:3137
+#: ../libsvn_wc/entries.c:1467 ../libsvn_wc/entries.c:2509
+#: ../libsvn_wc/entries.c:3138 ../libsvn_wc/update_editor.c:3701
 #, c-format
 msgid "'%s' is not under version control"
 msgstr "'%s' nie podlega zarzÄ…dzaniu wersjami"
@@ -1436,11 +1436,11 @@ msgstr "'%s' nie podlega zarzÄ…dzaniu we
 msgid "'%s' has local modifications"
 msgstr "'%s' zawiera lokalne modyfikacje"
 
-#: ../libsvn_client/deprecated.c:497 ../svn/move-cmd.c:61
+#: ../libsvn_client/deprecated.c:509 ../svn/move-cmd.c:61
 msgid "Cannot specify revisions (except HEAD) with move operations"
 msgstr "Nie można określić wersji (z wyjątkiem HEAD) dla operacji przeniesienia"
 
-#: ../libsvn_client/deprecated.c:1020
+#: ../libsvn_client/deprecated.c:1027
 msgid "No commits in repository"
 msgstr "Brak zatwierdzeń w repozytorium"
 
@@ -1454,8 +1454,8 @@ msgstr "   Połączono odwrócone zmiany
 msgid "   Merged %s:r%s%s"
 msgstr "   Połączono zmiany %s:r%s%s"
 
-#: ../libsvn_client/diff.c:164 ../libsvn_diff/diff_file.c:1204
-#: ../libsvn_diff/diff_file.c:1216
+#: ../libsvn_client/diff.c:164 ../libsvn_diff/diff_file.c:1215
+#: ../libsvn_diff/diff_file.c:1227
 #, c-format
 msgid "Path '%s' must be an immediate child of the directory '%s'"
 msgstr "Ścieżka '%s' musi być bezpośrednim katalogiem podrzędnym katalogu '%s'"
@@ -1496,7 +1496,7 @@ msgid "Cannot display: file marked as a 
 msgstr "Nie można wyświetlić: plik binarny.%s"
 
 #: ../libsvn_client/diff.c:924 ../libsvn_client/merge.c:5087
-#: ../libsvn_client/merge.c:6810
+#: ../libsvn_client/merge.c:6821
 msgid "Not all required revisions are specified"
 msgstr "Nie wszystkie wymagane wersje zostały podane"
 
@@ -1531,22 +1531,22 @@ msgstr "Podsumowująca różnica może t
 msgid "'%s' is not a valid EOL value"
 msgstr "'%s' nie jest poprawnym znakiem końca linii"
 
-#: ../libsvn_client/export.c:263
+#: ../libsvn_client/export.c:297
 msgid "Destination directory exists, and will not be overwritten unless forced"
 msgstr "Katalog docelowy już istnieje i nie zostanie nadpisany, o ile nie zostanie \
to wymuszone."  
-#: ../libsvn_client/export.c:408 ../libsvn_client/export.c:551
+#: ../libsvn_client/export.c:442 ../libsvn_client/export.c:585
 #, c-format
 msgid "'%s' exists and is not a directory"
 msgstr "'%s' istnieje i nie jest katalogiem"
 
-#: ../libsvn_client/export.c:412 ../libsvn_client/export.c:555
+#: ../libsvn_client/export.c:446 ../libsvn_client/export.c:589
 #, c-format
 msgid "'%s' already exists"
 msgstr "'%s' już istnieje"
 
-#: ../libsvn_client/export.c:734 ../libsvn_wc/adm_crawler.c:960
-#: ../libsvn_wc/update_editor.c:3382 ../libsvn_wc/update_editor.c:4049
+#: ../libsvn_client/export.c:768 ../libsvn_wc/adm_crawler.c:960
+#: ../libsvn_wc/update_editor.c:3387 ../libsvn_wc/update_editor.c:4053
 #, c-format
 msgid "Checksum mismatch for '%s'; expected: '%s', actual: '%s'"
 msgstr "BÅ‚Ä…d sumy kontrolnej dla '%s'; oczekiwana: '%s', faktyczna: '%s'"
@@ -1611,18 +1611,18 @@ msgstr "Przejście '%s' nie znalazło ot
 msgid "'%s' is not a URL"
 msgstr "'%s' nie jest URL-em"
 
-#: ../libsvn_client/info.c:502
+#: ../libsvn_client/info.c:501
 #, c-format
 msgid "Server does not support retrieving information about the repository root"
 msgstr "Serwer nie obsługuje uzyskiwania informacji o katalogu głównym \
repozytorium"  
-#: ../libsvn_client/info.c:509 ../libsvn_client/info.c:524
-#: ../libsvn_client/info.c:534
+#: ../libsvn_client/info.c:508 ../libsvn_client/info.c:523
+#: ../libsvn_client/info.c:533
 #, c-format
 msgid "URL '%s' non-existent in revision %ld"
 msgstr "URL '%s' nie istnieje w wersji %ld"
 
-#: ../libsvn_client/list.c:235
+#: ../libsvn_client/list.c:233
 #, c-format
 msgid "URL '%s' non-existent in that revision"
 msgstr "URL '%s' nie istnieje w tej wersji"
@@ -1631,9 +1631,9 @@ msgstr "URL '%s' nie istnieje w tej wers
 msgid "No common parent found, unable to operate on disjoint arguments"
 msgstr "Nie znaleziono wspólnego rodzica, nie można użyć rozłącznych \
argumentów"  
-#: ../libsvn_client/locking_commands.c:265 ../libsvn_client/merge.c:6827
-#: ../libsvn_client/merge.c:6833 ../libsvn_client/merge.c:7734
-#: ../libsvn_client/merge.c:7918 ../libsvn_client/ra.c:401
+#: ../libsvn_client/locking_commands.c:265 ../libsvn_client/merge.c:6838
+#: ../libsvn_client/merge.c:6844 ../libsvn_client/merge.c:7750
+#: ../libsvn_client/merge.c:7936 ../libsvn_client/ra.c:401
 #: ../libsvn_client/ra.c:433 ../libsvn_client/ra.c:636
 #, c-format
 msgid "'%s' has no URL"
@@ -1653,20 +1653,20 @@ msgstr "'%s' nie jest zablokowane w dane
 msgid "'%s' is not locked"
 msgstr "'%s' nie jest zablokowane"
 
-#: ../libsvn_client/locking_commands.c:411 ../libsvn_fs/fs-loader.c:1173
-#: ../libsvn_ra/ra_loader.c:924
+#: ../libsvn_client/locking_commands.c:411 ../libsvn_fs/fs-loader.c:1189
+#: ../libsvn_ra/ra_loader.c:927
 msgid "Lock comment contains illegal characters"
 msgstr "Opis zakładanej blokady zawiera nieprawidłowe znaki"
 
-#: ../libsvn_client/log.c:310 ../libsvn_client/log.c:372
+#: ../libsvn_client/log.c:320 ../libsvn_client/log.c:382
 msgid "Missing required revision specification"
 msgstr "Nie podano wymaganej specyfikacji wersji"
 
-#: ../libsvn_client/log.c:438
+#: ../libsvn_client/log.c:448
 msgid "When specifying working copy paths, only one target may be given"
 msgstr "Przy podawaniu ścieżek kopii roboczych tylko jeden cel może zostać \
podany"  
-#: ../libsvn_client/log.c:461 ../libsvn_client/status.c:296
+#: ../libsvn_client/log.c:471 ../libsvn_client/status.c:296
 #: ../libsvn_client/update.c:155
 #, c-format
 msgid "Entry '%s' has no URL"
@@ -1725,46 +1725,46 @@ msgstr ""
 msgid "Use of two URLs is not compatible with mergeinfo modification"
 msgstr "Użycie dwu URL-i jest niekompatybilne z modyfikacją informacji o \
połączeniach zmian"  
-#: ../libsvn_client/merge.c:6515 ../libsvn_client/merge.c:6746
+#: ../libsvn_client/merge.c:6515 ../libsvn_client/merge.c:6755
 msgid "Merge from foreign repository is not compatible with mergeinfo modification"
 msgstr "ÅÄ…czenie zmian z zewnÄ™trznego repozytorium jest niekompatybilne z \
modyfikacją informacji o połączeniach zmian"  
-#: ../libsvn_client/merge.c:7025
+#: ../libsvn_client/merge.c:7041
 msgid "Cannot reintegrate into a working copy with a switched subtree"
 msgstr "Nie można reintegrować do kopii roboczej z przełączonym poddrzewem"
 
-#: ../libsvn_client/merge.c:7030
+#: ../libsvn_client/merge.c:7046
 msgid "Cannot reintegrate into a working copy not entirely at infinite depth"
 msgstr "Nie można reintegrować do kopii roboczej z niecałkowicie nieskończoną \
głębokością"  
-#: ../libsvn_client/merge.c:7035
+#: ../libsvn_client/merge.c:7051
 msgid "Cannot reintegrate into a working copy that has local modifications"
 msgstr "Nie można reintegrować do kopii roboczej posiadającej lokalne \
modyfikacje"  
-#: ../libsvn_client/merge.c:7041
+#: ../libsvn_client/merge.c:7057
 msgid "Cannot determine revision of working copy"
 msgstr "Nie można określić wersji kopii roboczej"
 
-#: ../libsvn_client/merge.c:7045
+#: ../libsvn_client/merge.c:7061
 msgid "Cannot reintegrate into mixed-revision working copy; try updating first"
 msgstr "Nie można reintegrować do kopii roboczej z mieszanymi wersjami. Spróbuj \
najpierw zaktualizować kopię roboczą"  
-#: ../libsvn_client/merge.c:7124
+#: ../libsvn_client/merge.c:7140
 #, c-format
 msgid "At least one revision (r%ld) not yet merged from '%s'"
 msgstr "Przynajmniej jedna wersja (r%ld) niepołączona jeszcze z '%s'"
 
-#: ../libsvn_client/merge.c:7599 ../libsvn_client/merge.c:7805
+#: ../libsvn_client/merge.c:7615 ../libsvn_client/merge.c:7821
 #, c-format
 msgid "'%s@%ld' must be ancestrally related to '%s@%ld'"
 msgstr "'%s@%ld' musi być spokrewnione z '%s@%ld'"
 
-#: ../libsvn_client/merge.c:7752
+#: ../libsvn_client/merge.c:7768
 #, c-format
 msgid "'%s' must be from the same repository as '%s'"
 msgstr "'%s' musi być z tego samego repozytorium co '%s'"
 
-#: ../libsvn_client/merge.c:7829
+#: ../libsvn_client/merge.c:7845
 #, c-format
 msgid ""
 "Reintegrate can only be used if revisions %ld through %ld were previously merged \
from %s to the reintegrate source, but this is not the case:\n" @@ -1842,7 +1842,7 @@ \
msgstr "Nieznany rodzaj obiektu dla '%s'  msgid "Attempt to set wc property '%s' on \
'%s' in a non-commit operation"  msgstr "Próba ustawienia atrybutu kopii roboczej \
'%s' na '%s' w operacji innej niż zatwierdzanie."  
-#: ../libsvn_client/ra.c:705 ../libsvn_ra/compat.c:371
+#: ../libsvn_client/ra.c:705 ../libsvn_ra/compat.c:370
 #, c-format
 msgid "Unable to find repository location for '%s' in revision %ld"
 msgstr "Nie odnaleziono lokalizacji repozytorium dla '%s' w wersji %ld"
@@ -1878,7 +1878,7 @@ msgid "Cannot both exclude and switch a 
 msgstr "Nie można zarówno wykluczyć, jak i przełączyć ścieżki"
 
 #: ../libsvn_client/switch.c:170 ../libsvn_ra_local/ra_plugin.c:193
-#: ../libsvn_ra_local/ra_plugin.c:268 ../libsvn_wc/update_editor.c:4219
+#: ../libsvn_ra_local/ra_plugin.c:268 ../libsvn_wc/update_editor.c:4223
 #, c-format
 msgid ""
 "'%s'\n"
@@ -1961,27 +1961,27 @@ msgstr "Dane svndiff zawierajÄ… wsteczny
 msgid "Unexpected end of svndiff input"
 msgstr "Nieoczekiwany koniec danych wejściowych svndiff"
 
-#: ../libsvn_diff/diff_file.c:461
+#: ../libsvn_diff/diff_file.c:463
 #, c-format
 msgid "The file '%s' changed unexpectedly during diff"
 msgstr "Plik '%s' został zmieniony podczas wykonywania diff"
 
-#: ../libsvn_diff/diff_file.c:585
+#: ../libsvn_diff/diff_file.c:587
 #, c-format
 msgid "Error parsing diff options"
 msgstr "BÅ‚Ä…d parsowania opcji diff"
 
-#: ../libsvn_diff/diff_file.c:611
+#: ../libsvn_diff/diff_file.c:613
 #, c-format
 msgid "Invalid argument '%s' in diff options"
 msgstr "Niewłaściwy argument '%s' w opcjach diff"
 
 #. Order of date components can be different in different languages
-#: ../libsvn_diff/diff_file.c:1128
+#: ../libsvn_diff/diff_file.c:1139
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%a %Y-%m-%d %H:%M:%S"
 
-#: ../libsvn_diff/diff_file.c:1767
+#: ../libsvn_diff/diff_file.c:1778
 #, c-format
 msgid "Failed to delete mmap '%s'"
 msgstr "Nie powiodło się usunięcie mmap '%s'"
@@ -2032,12 +2032,12 @@ msgstr "Ścieżka '%s' nie jest w UTF-8"
 msgid "Path '%s' contains '.' or '..' element"
 msgstr "Ścieżka '%s' zawiera element '.' lub '..'"
 
-#: ../libsvn_fs/fs-loader.c:1155
+#: ../libsvn_fs/fs-loader.c:1171
 #, c-format
 msgid "Malformed UUID '%s'"
 msgstr "Zniekształcony UUID '%s'"
 
-#: ../libsvn_fs/fs-loader.c:1179
+#: ../libsvn_fs/fs-loader.c:1195
 msgid "Negative expiration date passed to svn_fs_lock"
 msgstr "Przekazano ujemna datę wygaśnięcia do svn_fs_lock"
 
@@ -2054,17 +2054,17 @@ msgstr "tworzenie zmiany"
 msgid "deleting changes"
 msgstr "usuwanie zmian"
 
-#: ../libsvn_fs_base/bdb/changes-table.c:143 ../libsvn_fs_fs/fs_fs.c:3643
+#: ../libsvn_fs_base/bdb/changes-table.c:143 ../libsvn_fs_fs/fs_fs.c:3673
 msgid "Missing required node revision ID"
 msgstr "Brak wymaganego ID wersji obiektu"
 
-#: ../libsvn_fs_base/bdb/changes-table.c:154 ../libsvn_fs_fs/fs_fs.c:3653
+#: ../libsvn_fs_base/bdb/changes-table.c:154 ../libsvn_fs_fs/fs_fs.c:3683
 msgid "Invalid change ordering: new node revision ID without delete"
 msgstr ""
 "Niewłaściwy porządek zmian: ID nowego węzła wersji nie jest\n"
 "zmianą typu usunięcie ścieżki"
 
-#: ../libsvn_fs_base/bdb/changes-table.c:164 ../libsvn_fs_fs/fs_fs.c:3664
+#: ../libsvn_fs_base/bdb/changes-table.c:164 ../libsvn_fs_fs/fs_fs.c:3694
 msgid "Invalid change ordering: non-add change on deleted path"
 msgstr ""
 "Niewłaściwy porządek zmian: zmiana typu non-add poprzedza\n"
@@ -2215,47 +2215,47 @@ msgstr "pobierz uuid repozytorium"
 msgid "set repository uuid"
 msgstr "ustaw uuid repozytorium"
 
-#: ../libsvn_fs_base/dag.c:219
+#: ../libsvn_fs_base/dag.c:220
 #, c-format
 msgid "Corrupt DB: initial transaction id not '0' in filesystem '%s'"
 msgstr "Uszkodzona baza danych: identyfikator transakcji nie jest '0' w systemie \
plików '%s'"  
-#: ../libsvn_fs_base/dag.c:227
+#: ../libsvn_fs_base/dag.c:228
 #, c-format
 msgid "Corrupt DB: initial copy id not '0' in filesystem '%s'"
 msgstr "Uszkodzona baza danych: identyfikator kopii nie jest '0' w systemie plików \
'%s'"  
-#: ../libsvn_fs_base/dag.c:236
+#: ../libsvn_fs_base/dag.c:237
 #, c-format
 msgid "Corrupt DB: initial revision number is not '0' in filesystem '%s'"
 msgstr "Uszkodzona baza danych: poczÄ…tkowy numer wersji nie jest '0' w systemie \
plików '%s'"  
-#: ../libsvn_fs_base/dag.c:284 ../libsvn_fs_base/dag.c:457
+#: ../libsvn_fs_base/dag.c:285 ../libsvn_fs_base/dag.c:458
 #: ../libsvn_fs_fs/dag.c:377
 msgid "Attempted to create entry in non-directory parent"
 msgstr "Próba stworzenia elementu, którego rodzicem nie jest katalog"
 
-#: ../libsvn_fs_base/dag.c:451 ../libsvn_fs_fs/dag.c:371
+#: ../libsvn_fs_base/dag.c:452 ../libsvn_fs_fs/dag.c:371
 #, c-format
 msgid "Attempted to create a node with an illegal name '%s'"
 msgstr "Próba stworzenia węzła o nieprawidłowej nazwie '%s'"
 
-#: ../libsvn_fs_base/dag.c:463 ../libsvn_fs_base/dag.c:729
+#: ../libsvn_fs_base/dag.c:464 ../libsvn_fs_base/dag.c:728
 #: ../libsvn_fs_fs/dag.c:383
 #, c-format
 msgid "Attempted to clone child of non-mutable node"
 msgstr "Próba stworzenia kopii potomnego obiektu węzła niepodlegającego zmianom"
 
-#: ../libsvn_fs_base/dag.c:470
+#: ../libsvn_fs_base/dag.c:471
 #, c-format
 msgid "Attempted to create entry that already exists"
 msgstr "Próba stworzenia obiektu, który już istnieje"
 
-#: ../libsvn_fs_base/dag.c:519 ../libsvn_fs_fs/dag.c:444
+#: ../libsvn_fs_base/dag.c:520 ../libsvn_fs_fs/dag.c:444
 msgid "Attempted to set entry in non-directory node"
 msgstr "Próba ustawienia elementu w węźle niebędącym katalogiem"
 
-#: ../libsvn_fs_base/dag.c:525 ../libsvn_fs_fs/dag.c:450
+#: ../libsvn_fs_base/dag.c:526 ../libsvn_fs_fs/dag.c:450
 msgid "Attempted to set entry in immutable node"
 msgstr "Próba ustawienia elementu w węźle niemogącym ulegać zmianom"
 
@@ -2264,62 +2264,62 @@ msgstr "Próba ustawienia elementu w wę
 msgid "Can't set proplist on *immutable* node-revision %s"
 msgstr "Nie można ustawić atrybutu proplist na stałym węźle wersji %s"
 
-#: ../libsvn_fs_base/dag.c:735
+#: ../libsvn_fs_base/dag.c:734
 #, c-format
 msgid "Attempted to make a child clone with an illegal name '%s'"
 msgstr "Próba stworzenia kopii elementu potomnego o następującej nieprawidłowej \
nazwie: '%s'"  
-#: ../libsvn_fs_base/dag.c:859
+#: ../libsvn_fs_base/dag.c:858
 #, c-format
 msgid "Attempted to delete entry '%s' from *non*-directory node"
 msgstr "Próba usunięcia elementu '%s' z węzła, który nie jest katalogiem"
 
-#: ../libsvn_fs_base/dag.c:865
+#: ../libsvn_fs_base/dag.c:864
 #, c-format
 msgid "Attempted to delete entry '%s' from immutable directory node"
 msgstr "Próba usunięcia elementu '%s' z węzła katalogu niepodlegającego \
zmianom"  
-#: ../libsvn_fs_base/dag.c:872
+#: ../libsvn_fs_base/dag.c:871
 #, c-format
 msgid "Attempted to delete a node with an illegal name '%s'"
 msgstr "Próba usunięcia węzła o nieprawidłowej nazwie '%s'"
 
-#: ../libsvn_fs_base/dag.c:887 ../libsvn_fs_base/dag.c:920
+#: ../libsvn_fs_base/dag.c:886 ../libsvn_fs_base/dag.c:919
 #, c-format
 msgid "Delete failed: directory has no entry '%s'"
 msgstr "BÅ‚Ä…d usuwania: katalog nie zawiera elementu '%s'"
 
-#: ../libsvn_fs_base/dag.c:969
+#: ../libsvn_fs_base/dag.c:968
 #, c-format
 msgid "Attempted removal of immutable node"
 msgstr "Próba usunięcia węzła niemogącego ulegać zmianom"
 
-#: ../libsvn_fs_base/dag.c:1088
+#: ../libsvn_fs_base/dag.c:1087
 #, c-format
 msgid "Attempted to get textual contents of a *non*-file node"
 msgstr "Próba pobrania zawartości węzła, który nie jest plikiem"
 
-#: ../libsvn_fs_base/dag.c:1121
+#: ../libsvn_fs_base/dag.c:1120
 #, c-format
 msgid "Attempted to get length of a *non*-file node"
 msgstr "Próba pobrania długości węzła, który nie jest plikiem"
 
-#: ../libsvn_fs_base/dag.c:1148
+#: ../libsvn_fs_base/dag.c:1147
 #, c-format
 msgid "Attempted to get checksum of a *non*-file node"
 msgstr "Próba pobrania sumy kontrolnej węzła, który nie jest plikiem"
 
-#: ../libsvn_fs_base/dag.c:1187 ../libsvn_fs_base/dag.c:1244
+#: ../libsvn_fs_base/dag.c:1186 ../libsvn_fs_base/dag.c:1243
 #, c-format
 msgid "Attempted to set textual contents of a *non*-file node"
 msgstr "Próba ustawienia tekstowej zawartości węzła (różny od pliku)"
 
-#: ../libsvn_fs_base/dag.c:1193 ../libsvn_fs_base/dag.c:1250
+#: ../libsvn_fs_base/dag.c:1192 ../libsvn_fs_base/dag.c:1249
 #, c-format
 msgid "Attempted to set textual contents of an immutable node"
 msgstr "Próba ustawienia tekstowej zawartości węzła niepodlegającego zmianom"
 
-#: ../libsvn_fs_base/dag.c:1280
+#: ../libsvn_fs_base/dag.c:1279
 #, c-format
 msgid ""
 "Checksum mismatch, rep '%s':\n"
@@ -2330,27 +2330,27 @@ msgstr ""
 "   oczekiwano:     %s\n"
 "    wyliczono:     %s\n"
 
-#: ../libsvn_fs_base/dag.c:1378
+#: ../libsvn_fs_base/dag.c:1377
 #, c-format
 msgid "Attempted to open non-existent child node '%s'"
 msgstr "Próba otwarcia nieistniejącego węzła '%s'"
 
-#: ../libsvn_fs_base/dag.c:1384
+#: ../libsvn_fs_base/dag.c:1383
 #, c-format
 msgid "Attempted to open node with an illegal name '%s'"
 msgstr "Próba otwarcia węzła o nieprawidłowej nazwie '%s'"
 
-#: ../libsvn_fs_base/dag.c:1708
+#: ../libsvn_fs_base/dag.c:1707
 #, c-format
 msgid "Attempted merge tracking info change on immutable node"
 msgstr "Próba zmiany informacji o śledzeniu połączeń zmian na węźle \
niemogącym ulegać zmianom"  
-#: ../libsvn_fs_base/dag.c:1748
+#: ../libsvn_fs_base/dag.c:1747
 #, c-format
 msgid "Attempted mergeinfo count change on immutable node"
 msgstr "Próba zmiany licznika informacji o połączeniach zmian na węźle \
niemogącym ulegać zmianom"  
-#: ../libsvn_fs_base/dag.c:1760
+#: ../libsvn_fs_base/dag.c:1759
 #, c-format
 msgid "Invalid value (%%%s) for node revision mergeinfo count"
 msgstr "Nieprawidłowa wartość (%%%s) licznika informacji o połączeniach zmian \
wersji węzła" @@ -2613,12 +2613,12 @@ msgstr "Transakcja jest zniszczona: '%s'
 msgid "Transaction aborted, but cleanup failed"
 msgstr "Transakcja przerwana oraz sprzątanie nie powiodło się"
 
-#: ../libsvn_fs_base/tree.c:767 ../libsvn_fs_fs/tree.c:690
+#: ../libsvn_fs_base/tree.c:767 ../libsvn_fs_fs/tree.c:692
 #, c-format
 msgid "Failure opening '%s'"
 msgstr "Nie można otworzyć '%s'"
 
-#: ../libsvn_fs_base/tree.c:1390 ../libsvn_fs_fs/tree.c:1119
+#: ../libsvn_fs_base/tree.c:1390 ../libsvn_fs_fs/tree.c:1121
 msgid "Cannot compare property value between two different filesystems"
 msgstr "Nie można porównać wartości atrybutów w dwóch różnych systemach \
plików"  
@@ -2626,22 +2626,22 @@ msgstr "Nie można porównać wartości 
 msgid "Corrupt DB: faulty predecessor count"
 msgstr "Uszkodzona baza danych: błędny licznik poprzednika"
 
-#: ../libsvn_fs_base/tree.c:1948 ../libsvn_fs_fs/tree.c:1152
+#: ../libsvn_fs_base/tree.c:1948 ../libsvn_fs_fs/tree.c:1154
 #, c-format
 msgid "Unexpected immutable node at '%s'"
 msgstr "Nieoczekiwany, niezmienialny węzeł przy '%s'"
 
-#: ../libsvn_fs_base/tree.c:1969 ../libsvn_fs_fs/tree.c:1173
+#: ../libsvn_fs_base/tree.c:1969 ../libsvn_fs_fs/tree.c:1175
 #, c-format
 msgid "Conflict at '%s'"
 msgstr "Konflikt z '%s'"
 
 #: ../libsvn_fs_base/tree.c:2022 ../libsvn_fs_base/tree.c:2773
-#: ../libsvn_fs_fs/tree.c:1224 ../libsvn_fs_fs/tree.c:1775
+#: ../libsvn_fs_fs/tree.c:1226 ../libsvn_fs_fs/tree.c:1777
 msgid "Bad merge; ancestor, source, and target not all in same fs"
 msgstr "Złe łączenie; przodek, źródłowy obiekt i docelowy obiekt nie mają \
tego samego typu systemu plików"  
-#: ../libsvn_fs_base/tree.c:2038 ../libsvn_fs_fs/tree.c:1240
+#: ../libsvn_fs_base/tree.c:2038 ../libsvn_fs_fs/tree.c:1242
 #, c-format
 msgid "Bad merge; target '%s' has id '%s', same as ancestor"
 msgstr "ZÅ‚e Å‚Ä…czenie: obiekt docelowy '%s' ma identyfikator '%s' identyczny ze \
swoim przodkiem" @@ -2656,20 +2656,20 @@ msgstr "Transakcja '%s' jest nieaktualna
 msgid "Cannot deltify revisions prior to r%ld"
 msgstr "Nie można zdeltyfikować wersji wcześniejszych od r%ld"
 
-#: ../libsvn_fs_base/tree.c:2974 ../libsvn_fs_fs/tree.c:1912
+#: ../libsvn_fs_base/tree.c:2974 ../libsvn_fs_fs/tree.c:1914
 msgid "The root directory cannot be deleted"
 msgstr "Katalog główny nie może zostać usunięty"
 
-#: ../libsvn_fs_base/tree.c:3193 ../libsvn_fs_fs/tree.c:1993
+#: ../libsvn_fs_base/tree.c:3193 ../libsvn_fs_fs/tree.c:1995
 #, c-format
 msgid "Cannot copy between two different filesystems ('%s' and '%s')"
 msgstr "Nie można porównać pomiędzy dwoma różnymi systemami plików ('%s' i \
'%s')"  
-#: ../libsvn_fs_base/tree.c:3202 ../libsvn_fs_fs/tree.c:1999
+#: ../libsvn_fs_base/tree.c:3202 ../libsvn_fs_fs/tree.c:2001
 msgid "Copy from mutable tree not currently supported"
 msgstr "Kopiowanie ze zmiennego drzewa nie jest obecnie obsługiwane"
 
-#: ../libsvn_fs_base/tree.c:3707 ../libsvn_fs_fs/tree.c:2447
+#: ../libsvn_fs_base/tree.c:3707 ../libsvn_fs_fs/tree.c:2449
 #, c-format
 msgid ""
 "Base checksum mismatch on '%s':\n"
@@ -2680,13 +2680,13 @@ msgstr ""
 "   oczekiwano:     %s\n"
 "    wyliczono:     %s\n"
 
-#: ../libsvn_fs_base/tree.c:3955 ../libsvn_fs_fs/tree.c:2679
+#: ../libsvn_fs_base/tree.c:3955 ../libsvn_fs_fs/tree.c:2681
 msgid "Cannot compare file contents between two different filesystems"
 msgstr "Nie można porównać zawartości pliku w dwóch różnych systemach \
plików"  
 #: ../libsvn_fs_base/tree.c:3964 ../libsvn_fs_base/tree.c:3969
-#: ../libsvn_fs_fs/tree.c:2688 ../libsvn_fs_fs/tree.c:2693
-#: ../libsvn_ra/compat.c:676
+#: ../libsvn_fs_fs/tree.c:2690 ../libsvn_fs_fs/tree.c:2695
+#: ../libsvn_ra/compat.c:675
 #, c-format
 msgid "'%s' is not a file"
 msgstr "'%s' nie jest plikiem"
@@ -2705,7 +2705,7 @@ msgstr "Node-revision '%s' twierdzi, że
 msgid "Bad ID in cache"
 msgstr "Niepoprawny ID w schowku pamięciowym"
 
-#: ../libsvn_fs_fs/dag.c:426 ../libsvn_ra_serf/serf.c:964
+#: ../libsvn_fs_fs/dag.c:426 ../libsvn_ra_serf/serf.c:953
 msgid "Can't get entries of non-directory"
 msgstr "Nie można pobrać składowych obiektu niebędącego katalogiem"
 
@@ -2800,180 +2800,180 @@ msgstr "Moduł do współpracy z repozyt
 msgid "Unsupported FS loader version (%d) for fsfs"
 msgstr "Nieobsługiwana wersja loadera systemu plików (%d) dla fsfs"
 
-#: ../libsvn_fs_fs/fs_fs.c:262
+#: ../libsvn_fs_fs/fs_fs.c:263
 #, c-format
 msgid "Revision file '%s' does not exist, and r%ld is not packed"
 msgstr "Plik '%s' wersji nie istnieje i r%ld nie jest spakowane"
 
-#: ../libsvn_fs_fs/fs_fs.c:498
+#: ../libsvn_fs_fs/fs_fs.c:499
 #, c-format
 msgid "Can't grab FSFS txn list mutex"
 msgstr "Nie można schwytać muteksu listy transakcji FSFS"
 
-#: ../libsvn_fs_fs/fs_fs.c:506
+#: ../libsvn_fs_fs/fs_fs.c:507
 #, c-format
 msgid "Can't ungrab FSFS txn list mutex"
 msgstr "Nie można wypuścić muteksu listy transakcji FSFS"
 
-#: ../libsvn_fs_fs/fs_fs.c:559
+#: ../libsvn_fs_fs/fs_fs.c:560
 #, c-format
 msgid "Can't grab FSFS mutex for '%s'"
 msgstr "Nie można schwytać muteksu FSFS dla '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:574
+#: ../libsvn_fs_fs/fs_fs.c:575
 #, c-format
 msgid "Can't ungrab FSFS mutex for '%s'"
 msgstr "Nie można wypuścić muteksu FSFS dla '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:645
+#: ../libsvn_fs_fs/fs_fs.c:646
 #, c-format
 msgid "Can't unlock unknown transaction '%s'"
 msgstr "Nie można odblokować nieznanej transakcji '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:649
+#: ../libsvn_fs_fs/fs_fs.c:650
 #, c-format
 msgid "Can't unlock nonlocked transaction '%s'"
 msgstr "Nie można odblokować niezablokowanej transakcji '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:656
+#: ../libsvn_fs_fs/fs_fs.c:657
 #, c-format
 msgid "Can't unlock prototype revision lockfile for transaction '%s'"
 msgstr "Nie można odblokować pliku blokady wersji prototypowej dla transakcji \
'%s'"  
-#: ../libsvn_fs_fs/fs_fs.c:662
+#: ../libsvn_fs_fs/fs_fs.c:663
 #, c-format
 msgid "Can't close prototype revision lockfile for transaction '%s'"
 msgstr "Nie można zamknąć pliku blokady wersji prototypowej dla transakcji '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:724
+#: ../libsvn_fs_fs/fs_fs.c:725
 #, c-format
 msgid "Cannot write to the prototype revision file of transaction '%s' because a \
previous representation is currently being written by this process"  msgstr "Nie \
można pisać do pliku prototypowej wersji transakcji '%s', ponieważ poprzednia \
reprezentacja jest obecnie zapisywana przez ten proces"  
-#: ../libsvn_fs_fs/fs_fs.c:760
+#: ../libsvn_fs_fs/fs_fs.c:761
 #, c-format
 msgid "Cannot write to the prototype revision file of transaction '%s' because a \
previous representation is currently being written by another process"  msgstr "Nie \
można pisać do pliku prototypowej wersji transakcji '%s', ponieważ poprzednia \
reprezentacja jest obecnie zapisywana przez inny proces"  
-#: ../libsvn_fs_fs/fs_fs.c:767 ../libsvn_subr/io.c:1553
+#: ../libsvn_fs_fs/fs_fs.c:768 ../libsvn_subr/io.c:1553
 #, c-format
 msgid "Can't get exclusive lock on file '%s'"
 msgstr "Nie można założyć blokady na pliku '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:879
+#: ../libsvn_fs_fs/fs_fs.c:880
 #, c-format
 msgid "Format file '%s' contains an unexpected non-digit"
 msgstr "Formatowy plik '%s' zawiera nieoczekiwanÄ… niecyfrÄ™"
 
-#: ../libsvn_fs_fs/fs_fs.c:927
+#: ../libsvn_fs_fs/fs_fs.c:928
 #, c-format
 msgid "Can't read first line of format file '%s'"
 msgstr "Nie można odczytać pierwszej linii z formatowego pliku '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:971
+#: ../libsvn_fs_fs/fs_fs.c:972
 #, c-format
 msgid "'%s' contains invalid filesystem format option '%s'"
 msgstr "'%s' zawiera niepoprawną opcję '%s' formatu systemu plików"
 
-#: ../libsvn_fs_fs/fs_fs.c:1047
+#: ../libsvn_fs_fs/fs_fs.c:1048
 #, c-format
 msgid "Expected FS format between '1' and '%d'; found format '%d'"
 msgstr "Oczekiwany format systemu plików pomiędzy '1' a '%d'; znaleziony format \
'%d'"  
-#: ../libsvn_fs_fs/fs_fs.c:1579 ../libsvn_fs_fs/fs_fs.c:1593
+#: ../libsvn_fs_fs/fs_fs.c:1609 ../libsvn_fs_fs/fs_fs.c:1623
 msgid "Found malformed header in revision file"
 msgstr "Błędny nagłówek w pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:1627
+#: ../libsvn_fs_fs/fs_fs.c:1657
 #, c-format
 msgid "Invalid revision number '%ld'"
 msgstr "Nieprawidłowy numer wersji '%ld'"
 
-#: ../libsvn_fs_fs/fs_fs.c:1642 ../libsvn_fs_fs/fs_fs.c:1668
-#: ../libsvn_fs_fs/fs_fs.c:2600 ../libsvn_repos/log.c:1622
-#: ../libsvn_repos/log.c:1626
+#: ../libsvn_fs_fs/fs_fs.c:1672 ../libsvn_fs_fs/fs_fs.c:1698
+#: ../libsvn_fs_fs/fs_fs.c:2630 ../libsvn_repos/log.c:1624
+#: ../libsvn_repos/log.c:1628
 #, c-format
 msgid "No such revision %ld"
 msgstr "Nie ma takiej wersji %ld"
 
-#: ../libsvn_fs_fs/fs_fs.c:1831 ../libsvn_fs_fs/fs_fs.c:1845
-#: ../libsvn_fs_fs/fs_fs.c:1852 ../libsvn_fs_fs/fs_fs.c:1859
-#: ../libsvn_fs_fs/fs_fs.c:1867 ../libsvn_fs_fs/fs_fs.c:1880
-#: ../libsvn_fs_fs/fs_fs.c:1889
+#: ../libsvn_fs_fs/fs_fs.c:1861 ../libsvn_fs_fs/fs_fs.c:1875
+#: ../libsvn_fs_fs/fs_fs.c:1882 ../libsvn_fs_fs/fs_fs.c:1889
+#: ../libsvn_fs_fs/fs_fs.c:1897 ../libsvn_fs_fs/fs_fs.c:1910
+#: ../libsvn_fs_fs/fs_fs.c:1919
 msgid "Malformed text rep offset line in node-rev"
 msgstr "Błędny offset reprezentacji w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:1956
+#: ../libsvn_fs_fs/fs_fs.c:1986
 msgid "Missing id field in node-rev"
 msgstr "Brak pola id w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:1968
+#: ../libsvn_fs_fs/fs_fs.c:1998
 msgid "Missing kind field in node-rev"
 msgstr "Brak pola kind w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:1999
+#: ../libsvn_fs_fs/fs_fs.c:2029
 msgid "Missing cpath in node-rev"
 msgstr "Brak cpath w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:2026 ../libsvn_fs_fs/fs_fs.c:2032
+#: ../libsvn_fs_fs/fs_fs.c:2056 ../libsvn_fs_fs/fs_fs.c:2062
 msgid "Malformed copyroot line in node-rev"
 msgstr "Błędna linia copyroot w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:2050 ../libsvn_fs_fs/fs_fs.c:2056
+#: ../libsvn_fs_fs/fs_fs.c:2080 ../libsvn_fs_fs/fs_fs.c:2086
 msgid "Malformed copyfrom line in node-rev"
 msgstr "Błędna linia copyfrom w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:2213 ../libsvn_fs_fs/fs_fs.c:5032
+#: ../libsvn_fs_fs/fs_fs.c:2243 ../libsvn_fs_fs/fs_fs.c:5062
 msgid "Attempted to write to non-transaction"
 msgstr "Próba zapisu do nietransakcji"
 
-#: ../libsvn_fs_fs/fs_fs.c:2299
+#: ../libsvn_fs_fs/fs_fs.c:2329
 msgid "Malformed representation header"
 msgstr "Błędny nagłówek reprezentacji"
 
-#: ../libsvn_fs_fs/fs_fs.c:2327
+#: ../libsvn_fs_fs/fs_fs.c:2357
 msgid "Missing node-id in node-rev"
 msgstr "Brak node-id w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:2333
+#: ../libsvn_fs_fs/fs_fs.c:2363
 msgid "Corrupt node-id in node-rev"
 msgstr "Błędny node-id w node-rev"
 
-#: ../libsvn_fs_fs/fs_fs.c:2408
+#: ../libsvn_fs_fs/fs_fs.c:2438
 #, c-format
 msgid "Revision file lacks trailing newline"
 msgstr "W pliku wersji brak końcowego znaku końca wiersza"
 
-#: ../libsvn_fs_fs/fs_fs.c:2420
+#: ../libsvn_fs_fs/fs_fs.c:2450
 #, c-format
 msgid "Final line in revision file longer than 64 characters"
 msgstr "Ostatnia linia w pliku wersji dłuższa niż 64 znaki"
 
-#: ../libsvn_fs_fs/fs_fs.c:2435
+#: ../libsvn_fs_fs/fs_fs.c:2465
 msgid "Final line in revision file missing space"
 msgstr "Brak spacji w ostatniej linii pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:2674
+#: ../libsvn_fs_fs/fs_fs.c:2704
 msgid "Malformed svndiff data in representation"
 msgstr "Błędne dane svndiff w reprezentacji"
 
-#: ../libsvn_fs_fs/fs_fs.c:2866 ../libsvn_fs_fs/fs_fs.c:2879
+#: ../libsvn_fs_fs/fs_fs.c:2896 ../libsvn_fs_fs/fs_fs.c:2909
 msgid "Reading one svndiff window read beyond the end of the representation"
 msgstr "Podczas czytania danych okna svndiff przekroczono koniec reprezentacji"
 
-#: ../libsvn_fs_fs/fs_fs.c:3019
+#: ../libsvn_fs_fs/fs_fs.c:3049
 msgid "svndiff data requested non-existent source"
 msgstr "Żądane dane svndiff wskazują na nieistniejące źródło"
 
-#: ../libsvn_fs_fs/fs_fs.c:3025
+#: ../libsvn_fs_fs/fs_fs.c:3055
 msgid "svndiff requested position beyond end of stream"
 msgstr "Żądana pozycja svndiff jest poza końcem strumienia"
 
-#: ../libsvn_fs_fs/fs_fs.c:3048 ../libsvn_fs_fs/fs_fs.c:3065
+#: ../libsvn_fs_fs/fs_fs.c:3078 ../libsvn_fs_fs/fs_fs.c:3095
 msgid "svndiff window length is corrupt"
 msgstr "Błędne okno danych svndiff"
 
-#: ../libsvn_fs_fs/fs_fs.c:3116
+#: ../libsvn_fs_fs/fs_fs.c:3146
 #, c-format
 msgid ""
 "Checksum mismatch while reading representation:\n"
@@ -2984,109 +2984,109 @@ msgstr ""
 "   oczekiwano:  %s\n"
 "   znaleziono:  %s\n"
 
-#: ../libsvn_fs_fs/fs_fs.c:3418 ../libsvn_fs_fs/fs_fs.c:3431
-#: ../libsvn_fs_fs/fs_fs.c:3437 ../libsvn_fs_fs/fs_fs.c:6166
-#: ../libsvn_fs_fs/fs_fs.c:6175 ../libsvn_fs_fs/fs_fs.c:6181
+#: ../libsvn_fs_fs/fs_fs.c:3448 ../libsvn_fs_fs/fs_fs.c:3461
+#: ../libsvn_fs_fs/fs_fs.c:3467 ../libsvn_fs_fs/fs_fs.c:6196
+#: ../libsvn_fs_fs/fs_fs.c:6205 ../libsvn_fs_fs/fs_fs.c:6211
 msgid "Directory entry corrupt"
 msgstr "Uszkodzony wpis w katalogu"
 
-#: ../libsvn_fs_fs/fs_fs.c:3828 ../libsvn_fs_fs/fs_fs.c:3833
-#: ../libsvn_fs_fs/fs_fs.c:3839 ../libsvn_fs_fs/fs_fs.c:3856
-#: ../libsvn_fs_fs/fs_fs.c:3889 ../libsvn_fs_fs/fs_fs.c:3909
-#: ../libsvn_fs_fs/fs_fs.c:3943 ../libsvn_fs_fs/fs_fs.c:3948
+#: ../libsvn_fs_fs/fs_fs.c:3858 ../libsvn_fs_fs/fs_fs.c:3863
+#: ../libsvn_fs_fs/fs_fs.c:3869 ../libsvn_fs_fs/fs_fs.c:3886
+#: ../libsvn_fs_fs/fs_fs.c:3919 ../libsvn_fs_fs/fs_fs.c:3939
+#: ../libsvn_fs_fs/fs_fs.c:3973 ../libsvn_fs_fs/fs_fs.c:3978
 msgid "Invalid changes line in rev-file"
 msgstr "Niewłaściwa linia zmian w pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:3882
+#: ../libsvn_fs_fs/fs_fs.c:3912
 msgid "Invalid change kind in rev file"
 msgstr "Niewłaściwy rodzaj zmiany w pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:3902
+#: ../libsvn_fs_fs/fs_fs.c:3932
 msgid "Invalid text-mod flag in rev-file"
 msgstr "Niewłaściwa flaga text-mod w pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:3922
+#: ../libsvn_fs_fs/fs_fs.c:3952
 msgid "Invalid prop-mod flag in rev-file"
 msgstr "Niewłaściwa flaga prop-mod w pliku wersji"
 
-#: ../libsvn_fs_fs/fs_fs.c:4100
+#: ../libsvn_fs_fs/fs_fs.c:4130
 msgid "Copying from transactions not allowed"
 msgstr "Kopiowanie z transakcji niedozwolone"
 
-#: ../libsvn_fs_fs/fs_fs.c:4255
+#: ../libsvn_fs_fs/fs_fs.c:4285
 #, c-format
 msgid "Unable to create transaction directory in '%s' for revision %ld"
 msgstr "Nie można utworzyć katalogu transakcji w '%s' dla wersji %ld"
 
-#: ../libsvn_fs_fs/fs_fs.c:4466 ../libsvn_fs_fs/fs_fs.c:4473
+#: ../libsvn_fs_fs/fs_fs.c:4496 ../libsvn_fs_fs/fs_fs.c:4503
 msgid "next-id file corrupt"
 msgstr "Plik next-id jest uszkodzony"
 
-#: ../libsvn_fs_fs/fs_fs.c:4584
+#: ../libsvn_fs_fs/fs_fs.c:4614
 msgid "Transaction cleanup failed"
 msgstr "Nie powiodło się sprzątanie po transakcji"
 
-#: ../libsvn_fs_fs/fs_fs.c:4697
+#: ../libsvn_fs_fs/fs_fs.c:4727
 msgid "Invalid change type"
 msgstr "Niewłaściwy typ zmiany"
 
-#: ../libsvn_fs_fs/fs_fs.c:5051
+#: ../libsvn_fs_fs/fs_fs.c:5081
 msgid "Can't set text contents of a directory"
 msgstr "Nie można ustawić tekstowej zawartości katalogu"
 
-#: ../libsvn_fs_fs/fs_fs.c:5135 ../libsvn_fs_fs/fs_fs.c:5140
-#: ../libsvn_fs_fs/fs_fs.c:5147
+#: ../libsvn_fs_fs/fs_fs.c:5165 ../libsvn_fs_fs/fs_fs.c:5170
+#: ../libsvn_fs_fs/fs_fs.c:5177
 msgid "Corrupt current file"
 msgstr "Bieżący plik jest uszkodzony"
 
-#: ../libsvn_fs_fs/fs_fs.c:5455 ../libsvn_subr/io.c:2871 ../svn/util.c:383
+#: ../libsvn_fs_fs/fs_fs.c:5485 ../libsvn_subr/io.c:2871 ../svn/util.c:383
 #: ../svn/util.c:398 ../svn/util.c:422
 #, c-format
 msgid "Can't stat '%s'"
 msgstr "Nie można pobrać informacji o '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:5459
+#: ../libsvn_fs_fs/fs_fs.c:5489
 #, c-format
 msgid "Can't chmod '%s'"
 msgstr "Nie można ustawić uprawnień '%s'"
 
-#: ../libsvn_fs_fs/fs_fs.c:5635
+#: ../libsvn_fs_fs/fs_fs.c:5665
 msgid "Transaction out of date"
 msgstr "Transakcja jest nieaktualna"
 
-#: ../libsvn_fs_fs/fs_fs.c:6107
+#: ../libsvn_fs_fs/fs_fs.c:6137
 msgid "Recovery encountered a non-directory node"
 msgstr "Odzyskiwanie spotkało węzeł niekatalogu"
 
-#: ../libsvn_fs_fs/fs_fs.c:6129
+#: ../libsvn_fs_fs/fs_fs.c:6159
 msgid "Recovery encountered a deltified directory representation"
 msgstr "Odzyskiwanie spotkało zróżnicowaną reprezentację katalogu"
 
-#: ../libsvn_fs_fs/fs_fs.c:6274
+#: ../libsvn_fs_fs/fs_fs.c:6304
 #, c-format
 msgid "Expected current rev to be <= %ld but found %ld"
 msgstr "Oczekiwano, że obecna wersja to <= %ld, ale znaleziono %ld"
 
-#: ../libsvn_fs_fs/fs_fs.c:6325
+#: ../libsvn_fs_fs/fs_fs.c:6355
 #, c-format
 msgid "Revision %ld has a revs file but no revprops file"
 msgstr "Wersja %ld posiada plik revs, ale nie posiada pliku revprops"
 
-#: ../libsvn_fs_fs/fs_fs.c:6330
+#: ../libsvn_fs_fs/fs_fs.c:6360
 #, c-format
 msgid "Revision %ld has a non-file where its revprops file should be"
 msgstr "Wersja %ld posiada nieplik, gdzie jej plik revprops powinien być"
 
-#: ../libsvn_fs_fs/fs_fs.c:6507
+#: ../libsvn_fs_fs/fs_fs.c:6537
 #, c-format
 msgid "Node origin for '%s' exists with a different value (%s) than what we were \
about to store (%s)"  msgstr "Pochodzenie węzła dla '%s' istnieje z inną \
wartością (%s) niż ta, którą prawie mieliśmy zapisać (%s)"  
-#: ../libsvn_fs_fs/fs_fs.c:6616
+#: ../libsvn_fs_fs/fs_fs.c:6646
 msgid "No such transaction"
 msgstr "Brak takiej transakcji"
 
-#: ../libsvn_fs_fs/fs_fs.c:6959
+#: ../libsvn_fs_fs/fs_fs.c:6989
 msgid "FS format too old to pack, please upgrade."
 msgstr "Format systemu plików zbyt stary, by móc go pakować. Proszę go \
zaktualizować"  
@@ -3110,26 +3110,26 @@ msgstr "Ścieżka '%s' nie istnieje w na
 msgid "Lock failed: newer version of '%s' exists"
 msgstr "Nie udało się założyć blokady: istnieje nowsza wersja '%s'"
 
-#: ../libsvn_fs_fs/rep-cache.c:119 ../libsvn_fs_fs/rep-cache.c:164
+#: ../libsvn_fs_fs/rep-cache.c:118 ../libsvn_fs_fs/rep-cache.c:157
 msgid "Only SHA1 checksums can be used as keys in the rep_cache table.\n"
 msgstr "Tylko sumy kontrolne SHA1 mogą być używane jako klucze w tablicy \
rep_cache.\n"  
-#: ../libsvn_fs_fs/rep-cache.c:181
+#: ../libsvn_fs_fs/rep-cache.c:174
 #, c-format
 msgid "Representation key for checksum '%%s' exists in filesystem '%%s', with \
different value (%%ld,%%%s,%%%s,%%%s) than what we were about to \
store(%%ld,%%%s,%%%s,%%%s)"  msgstr "Klucz reprezentacji dla sumy kontrolnej '%%s' \
istnieje w systemie plików '%%s' z inną wartością (%%ld,%%%s,%%%s,%%%s) niż ta, \
którą prawie mieliśmy zapisać (%%ld,%%%s,%%%s,%%%s)"  
-#: ../libsvn_fs_fs/tree.c:3426
+#: ../libsvn_fs_fs/tree.c:3428
 #, c-format
 msgid "Node-revision #'%s' claims to have mergeinfo but doesn't"
 msgstr "Node-revision #'%s' twierdzi, że ma informacje o połączeniach zmian, ale \
nie ma ich"  
-#: ../libsvn_fs_fs/tree.c:3549
+#: ../libsvn_fs_fs/tree.c:3551
 #, c-format
 msgid "Node-revision '%s@%ld' claims to have mergeinfo but doesn't"
 msgstr "Node-revision '%s@%ld' twierdzi, że ma informacje o połączeniach zmian, \
ale nie ma ich"  
-#: ../libsvn_fs_fs/tree.c:3670
+#: ../libsvn_fs_fs/tree.c:3672
 #, c-format
 msgid "Querying mergeinfo requires version %d of the FSFS filesystem schema; \
filesystem '%s' uses only version %d"  msgstr "Sprawdzanie informacji o \
połączeniach zmian wymaga wersję %d schematu systemu plików FSFS. System plików \
'%s' używa tylko wersję %d" @@ -3142,33 +3142,33 @@ msgstr "Obiekt systemu plików \
nie jest   msgid "Filesystem object already open"
 msgstr "System plików jest już otwarty"
 
-#: ../libsvn_ra/compat.c:175
+#: ../libsvn_ra/compat.c:174
 #, c-format
 msgid "Missing changed-path information for '%s' in revision %ld"
 msgstr "Brak informacji o zmianie ścieżki dla '%s' w wersji %ld"
 
-#: ../libsvn_ra/compat.c:302 ../libsvn_ra/compat.c:549
+#: ../libsvn_ra/compat.c:301 ../libsvn_ra/compat.c:548
 #, c-format
 msgid "Path '%s' doesn't exist in revision %ld"
 msgstr "Ścieżka '%s' nie istnieje w wersji %ld"
 
-#: ../libsvn_ra/compat.c:379
+#: ../libsvn_ra/compat.c:378
 #, c-format
 msgid "'%s' in revision %ld is an unrelated object"
 msgstr "'%s' w wersji %ld jest obiektem niezwiÄ…zanym"
 
-#: ../libsvn_ra/compat.c:839 ../libsvn_ra/ra_loader.c:1056
+#: ../libsvn_ra/compat.c:838 ../libsvn_ra/ra_loader.c:1059
 #, c-format
 msgid "Invalid peg revision %ld"
 msgstr "Nieprawidłowa wersja wieszakowa %ld"
 
-#: ../libsvn_ra/compat.c:842 ../libsvn_ra/ra_loader.c:1059
+#: ../libsvn_ra/compat.c:841 ../libsvn_ra/ra_loader.c:1062
 #: ../libsvn_repos/rev_hunt.c:203 ../libsvn_repos/rev_hunt.c:318
 #, c-format
 msgid "Invalid end revision %ld"
 msgstr "Nieprawidłowa końcowa wersja %ld"
 
-#: ../libsvn_ra/compat.c:845 ../libsvn_ra/ra_loader.c:1062
+#: ../libsvn_ra/compat.c:844 ../libsvn_ra/ra_loader.c:1065
 msgid "Peg revision must precede end revision"
 msgstr "Wersja wieszakowa musi być mniejsza niż wersja końcowa"
 
@@ -3177,8 +3177,8 @@ msgstr "Wersja wieszakowa musi być mnie
 msgid "Mismatched RA version for '%s': found %d.%d.%d%s, expected %d.%d.%d%s"
 msgstr "Niewłaściwa wersja RA dla '%s': znaleziona %d.%d.%d%s, oczekiwana \
%d.%d.%d%s"  
-#: ../libsvn_ra/ra_loader.c:362 ../libsvn_ra_serf/serf.c:499
-#: ../libsvn_ra_serf/serf.c:615
+#: ../libsvn_ra/ra_loader.c:362 ../libsvn_ra_serf/serf.c:490
+#: ../libsvn_ra_serf/serf.c:604
 #, c-format
 msgid "Illegal repository URL '%s'"
 msgstr "Nieprawidłowy URL '%s' repozytorium"
@@ -3203,12 +3203,12 @@ msgstr "UUID '%s' repozytorium nie zgadz
 msgid "'%s' isn't in the same repository as '%s'"
 msgstr "'%s' nie jest tym samym repozytorium co '%s'"
 
-#: ../libsvn_ra/ra_loader.c:1121
+#: ../libsvn_ra/ra_loader.c:1124
 #, c-format
 msgid "  - handles '%s' scheme\n"
 msgstr "  - obsługuje schemat '%s'\n"
 
-#: ../libsvn_ra/ra_loader.c:1205
+#: ../libsvn_ra/ra_loader.c:1208
 #, c-format
 msgid "Unrecognized URL scheme '%s'"
 msgstr "Nierozpoznany schemat URL: '%s'"
@@ -3234,7 +3234,7 @@ msgid "URL '%s' is not a child of the se
 msgstr "URL '%s' nie jest katalogiem podrzędnym URL-u '%s' katalogu głównego \
repozytorium sesji"  
 #: ../libsvn_ra_local/ra_plugin.c:1394 ../libsvn_ra_neon/session.c:925
-#: ../libsvn_ra_serf/serf.c:288 ../libsvn_ra_svn/client.c:2289
+#: ../libsvn_ra_serf/serf.c:288 ../libsvn_ra_svn/client.c:2261
 #, c-format
 msgid "Don't know anything about capability '%s'"
 msgstr "Nie wiadomo nic o zdolności '%s'"
@@ -3278,8 +3278,8 @@ msgid "The CHECKOUT response did not con
 msgstr "Odpowiedź CHECKOUT nie zawierała nagłówka 'Location:'"
 
 #: ../libsvn_ra_neon/commit.c:513 ../libsvn_ra_neon/props.c:210
-#: ../libsvn_ra_neon/util.c:520 ../libsvn_ra_serf/commit.c:1291
-#: ../libsvn_ra_serf/commit.c:1693 ../libsvn_ra_serf/update.c:2029
+#: ../libsvn_ra_neon/util.c:521 ../libsvn_ra_serf/commit.c:1291
+#: ../libsvn_ra_serf/commit.c:1693 ../libsvn_ra_serf/update.c:2031
 #, c-format
 msgid "Unable to parse URL '%s'"
 msgstr "Nie można parsować URL-u: '%s'"
@@ -3306,7 +3306,7 @@ msgstr "Nie można uzyskać typu zawarto
 msgid "Could not save file"
 msgstr "BÅ‚Ä…d w trakcie zapisywania pliku"
 
-#: ../libsvn_ra_neon/fetch.c:755 ../libsvn_ra_svn/client.c:990
+#: ../libsvn_ra_neon/fetch.c:755 ../libsvn_ra_svn/client.c:959
 #, c-format
 msgid ""
 "Checksum mismatch for '%s':\n"
@@ -3330,12 +3330,12 @@ msgstr "Żądanie DAV nie powiodło się
 msgid "Missing rev attr in target-revision element"
 msgstr "Brak atrybutu wersji w elemencie target-revision"
 
-#: ../libsvn_ra_neon/fetch.c:1422 ../libsvn_ra_serf/update.c:1457
+#: ../libsvn_ra_neon/fetch.c:1422 ../libsvn_ra_serf/update.c:1459
 #, c-format
 msgid "Missing name attr in absent-directory element"
 msgstr "Brak atrybutu nazwy w elemencie absent-directory"
 
-#: ../libsvn_ra_neon/fetch.c:1438 ../libsvn_ra_serf/update.c:1480
+#: ../libsvn_ra_neon/fetch.c:1438 ../libsvn_ra_serf/update.c:1482
 #, c-format
 msgid "Missing name attr in absent-file element"
 msgstr "Brak atrybutu nazwy w elemencie absent-file"
@@ -3351,13 +3351,13 @@ msgid "Missing rev attr in open-director
 msgstr "Brak atrybutu wersji w elemencie open-directory"
 
 #: ../libsvn_ra_neon/fetch.c:1493 ../libsvn_ra_serf/replay.c:261
-#: ../libsvn_ra_serf/update.c:1286
+#: ../libsvn_ra_serf/update.c:1288
 #, c-format
 msgid "Missing name attr in open-directory element"
 msgstr "Brak atrybutu nazwy w elemencie open-directory"
 
 #: ../libsvn_ra_neon/fetch.c:1520 ../libsvn_ra_serf/replay.c:287
-#: ../libsvn_ra_serf/update.c:1321
+#: ../libsvn_ra_serf/update.c:1323
 #, c-format
 msgid "Missing name attr in add-directory element"
 msgstr "Brak atrybutu nazwy w elemencie add-directory"
@@ -3373,13 +3373,13 @@ msgid "Missing rev attr in open-file ele
 msgstr "Brak atrybutu wersji w elemencie open-file"
 
 #: ../libsvn_ra_neon/fetch.c:1617 ../libsvn_ra_serf/replay.c:322
-#: ../libsvn_ra_serf/update.c:1361
+#: ../libsvn_ra_serf/update.c:1363
 #, c-format
 msgid "Missing name attr in open-file element"
 msgstr "Brak atrybutu nazwy w elemencie open-file"
 
 #: ../libsvn_ra_neon/fetch.c:1643 ../libsvn_ra_serf/replay.c:348
-#: ../libsvn_ra_serf/update.c:1396
+#: ../libsvn_ra_serf/update.c:1398
 #, c-format
 msgid "Missing name attr in add-file element"
 msgstr "Brak atrybutu nazwy w elemencie add-file"
@@ -3400,7 +3400,7 @@ msgid "Missing name attr in remove-prop 
 msgstr "Brak atrybutu nazwy w elemencie remove-prop"
 
 #: ../libsvn_ra_neon/fetch.c:1799 ../libsvn_ra_serf/replay.c:235
-#: ../libsvn_ra_serf/update.c:1426
+#: ../libsvn_ra_serf/update.c:1428
 #, c-format
 msgid "Missing name attr in delete-entry element"
 msgstr "Brak atrybutu nazwy w elemencie delete-entry"
@@ -3446,7 +3446,7 @@ msgid "'get-deleted-rev' REPORT not impl
 msgstr "Niezaimplementowane 'get-deleted-rev' REPORT"
 
 #: ../libsvn_ra_neon/get_location_segments.c:117
-#: ../libsvn_ra_serf/getlocationsegments.c:101 ../libsvn_ra_svn/client.c:1608
+#: ../libsvn_ra_serf/getlocationsegments.c:101 ../libsvn_ra_svn/client.c:1580
 msgid "Expected valid revision range"
 msgstr "Oczekiwano poprawny zakres wersji"
 
@@ -3466,8 +3466,8 @@ msgstr "Niezaimplementowane 'get-locatio
 msgid "Incomplete lock data returned"
 msgstr "Zwrócono niepełne dane blokady"
 
-#: ../libsvn_ra_neon/get_locks.c:297 ../libsvn_ra_serf/property.c:354
-#: ../libsvn_ra_serf/update.c:1908
+#: ../libsvn_ra_neon/get_locks.c:297 ../libsvn_ra_serf/property.c:355
+#: ../libsvn_ra_serf/update.c:1910
 #, c-format
 msgid "Got unrecognized encoding '%s'"
 msgstr "Uzyskano nierozpoznane kodowanie: '%s'"
@@ -3499,13 +3499,13 @@ msgstr "'%s' nie jest zablokowane w repo
 msgid "Failed to fetch lock information"
 msgstr "Nieudało się pobrać informacji o blokadzie"
 
-#: ../libsvn_ra_neon/log.c:165 ../libsvn_ra_serf/log.c:198
+#: ../libsvn_ra_neon/log.c:164 ../libsvn_ra_serf/log.c:200
 #, c-format
 msgid "Missing name attr in revprop element"
 msgstr "Brak atrybutu nazwy w elemencie revprop"
 
-#: ../libsvn_ra_neon/log.c:446 ../libsvn_ra_serf/log.c:541
-#: ../libsvn_ra_svn/client.c:1321
+#: ../libsvn_ra_neon/log.c:449 ../libsvn_ra_serf/log.c:553
+#: ../libsvn_ra_svn/client.c:1289
 msgid "Server does not support custom revprops via log"
 msgstr "Serwer nie obsługuje własnych atrybutów wersji via log"
 
@@ -3524,7 +3524,7 @@ msgstr "Błąd wewnętrzny: nieznany rod
 msgid "Protocol error: the MERGE response for the '%s' resource did not return all \
of the properties that we asked for (and need to complete the commit)"  msgstr \
"Błąd protokołu: odpowiedź MERGE dla zasobu '%s' nie zwróciła wszystkich \
atrybutów, których zażądano (i które były wymagane do zatwierdzenia zmian)"  
-#: ../libsvn_ra_neon/merge.c:259 ../libsvn_ra_serf/merge.c:302
+#: ../libsvn_ra_neon/merge.c:259 ../libsvn_ra_serf/merge.c:303
 #, c-format
 msgid "A MERGE response for '%s' is not a child of the destination ('%s')"
 msgstr "Odpowiedź MERGE dla '%s' nie jest dzieckiem celu ('%s')"
@@ -3609,15 +3609,15 @@ msgstr "Uzyskano zawartość cdata dla p
 msgid "PIN for token \"%s\" in slot \"%s\""
 msgstr "PIN dla żetonu \"%s\" w otworze \"%s\""
 
-#: ../libsvn_ra_neon/session.c:535 ../libsvn_ra_serf/serf.c:423
+#: ../libsvn_ra_neon/session.c:535 ../libsvn_ra_serf/serf.c:417
 msgid "Invalid URL: illegal character in proxy port number"
 msgstr "Błędny URL: niedozwolony znak w ramach numeru portu proxy"
 
-#: ../libsvn_ra_neon/session.c:539 ../libsvn_ra_serf/serf.c:427
+#: ../libsvn_ra_neon/session.c:539 ../libsvn_ra_serf/serf.c:421
 msgid "Invalid URL: negative proxy port number"
 msgstr "Błędny URL: ujemny numer portu proxy"
 
-#: ../libsvn_ra_neon/session.c:542 ../libsvn_ra_serf/serf.c:430
+#: ../libsvn_ra_neon/session.c:542 ../libsvn_ra_serf/serf.c:424
 msgid "Invalid URL: proxy port number greater than maximum TCP port number 65535"
 msgstr "Błędny URL: port proxy ma numer większy niż maksymalny dopuszczalny \
numer portu TCP (65535)"  
@@ -3670,7 +3670,7 @@ msgstr "Nieudana inicjalizacja połącze
 msgid "SSL is not supported"
 msgstr "SSL nie jest obsługiwany"
 
-#: ../libsvn_ra_neon/session.c:1214 ../libsvn_ra_serf/util.c:222
+#: ../libsvn_ra_neon/session.c:1214 ../libsvn_ra_serf/util.c:216
 #, c-format
 msgid "Invalid config: unable to load certificate file '%s'"
 msgstr "Błąd konfiguracji: ładowanie certyfikatu '%s' nie powiodło się"
@@ -3680,7 +3680,7 @@ msgstr "BÅ‚Ä…d konfiguracji: Å‚adowanie 
 msgid "Invalid config: unable to load PKCS#11 provider '%s'"
 msgstr "Błąd konfiguracji: nie można załadować dostawcy '%s' PKCS#11"
 
-#: ../libsvn_ra_neon/session.c:1361 ../libsvn_ra_serf/serf.c:1107
+#: ../libsvn_ra_neon/session.c:1361 ../libsvn_ra_serf/serf.c:1096
 msgid "The UUID property was not found on the resource or any of its parents"
 msgstr ""
 "Atrybut UUID nie został znaleziony ani w podanym obiekcie, ani też w\n"
@@ -3691,72 +3691,72 @@ msgstr ""
 msgid "Unsupported RA loader version (%d) for ra_neon"
 msgstr "Nieobsługiwana wersja loadera RA (%d) dla ra_neon"
 
-#: ../libsvn_ra_neon/util.c:203
+#: ../libsvn_ra_neon/util.c:204
 msgid "The request response contained at least one error"
 msgstr "Odpowiedź żądania zawierała przynajmniej jeden błąd"
 
-#: ../libsvn_ra_neon/util.c:238
+#: ../libsvn_ra_neon/util.c:239
 msgid "The response contains a non-conforming HTTP status line"
 msgstr "Odpowiedź zawiera linię statusu niedostosowaną do HTTP"
 
-#: ../libsvn_ra_neon/util.c:248
+#: ../libsvn_ra_neon/util.c:249
 #, c-format
 msgid "Error setting property '%s': "
 msgstr "BÅ‚Ä…d podczas ustawiania atrybutu '%s': "
 
-#: ../libsvn_ra_neon/util.c:534
+#: ../libsvn_ra_neon/util.c:535
 #, c-format
 msgid "%s of '%s'"
 msgstr "%s z '%s'"
 
-#: ../libsvn_ra_neon/util.c:546 ../libsvn_ra_serf/util.c:1571
+#: ../libsvn_ra_neon/util.c:547 ../libsvn_ra_serf/util.c:1483
 #, c-format
 msgid "'%s' path not found"
 msgstr "Nie znaleziono ścieżki '%s'"
 
-#: ../libsvn_ra_neon/util.c:555 ../libsvn_ra_serf/util.c:1565
+#: ../libsvn_ra_neon/util.c:556 ../libsvn_ra_serf/util.c:1477
 #, c-format
 msgid "Repository moved permanently to '%s'; please relocate"
 msgstr "Repozytorium trwale przeniesione do '%s'. Proszę relokować"
 
-#: ../libsvn_ra_neon/util.c:557 ../libsvn_ra_serf/util.c:1567
+#: ../libsvn_ra_neon/util.c:558 ../libsvn_ra_serf/util.c:1479
 #, c-format
 msgid "Repository moved temporarily to '%s'; please relocate"
 msgstr "Repozytorium tymczasowo przeniesione do '%s'. Proszę relokować"
 
-#: ../libsvn_ra_neon/util.c:565
+#: ../libsvn_ra_neon/util.c:566
 #, c-format
 msgid "Server sent unexpected return value (%d %s) in response to %s request for \
'%s'"  msgstr "Serwer wysłał nieoczekiwaną wartość powrotną (%d %s) w \
odpowiedzi na żądanie %s dla %s"  
-#: ../libsvn_ra_neon/util.c:577
+#: ../libsvn_ra_neon/util.c:578
 #, c-format
 msgid "authorization failed: %s"
 msgstr "błąd autoryzacji: %s"
 
-#: ../libsvn_ra_neon/util.c:579
+#: ../libsvn_ra_neon/util.c:580
 msgid "authorization failed"
 msgstr "błąd autoryzacji"
 
-#: ../libsvn_ra_neon/util.c:584
+#: ../libsvn_ra_neon/util.c:585
 msgid "could not connect to server"
 msgstr "brak połączenia z serwerem"
 
-#: ../libsvn_ra_neon/util.c:588
+#: ../libsvn_ra_neon/util.c:589
 msgid "timed out waiting for server"
 msgstr "przekroczenie czasu oczekiwania na odpowiedź od serwera"
 
-#: ../libsvn_ra_neon/util.c:921
+#: ../libsvn_ra_neon/util.c:922
 #, c-format
 msgid "Can't calculate the request body size"
 msgstr "Nie można ustalić rozmiaru żądania"
 
-#: ../libsvn_ra_neon/util.c:1248
+#: ../libsvn_ra_neon/util.c:1249
 #, c-format
 msgid "Error reading spooled %s request response"
 msgstr "Błąd podczas czytania zgromadzonych danych żądania %s"
 
-#: ../libsvn_ra_neon/util.c:1258
+#: ../libsvn_ra_neon/util.c:1259
 #, c-format
 msgid "The %s request returned invalid XML in the response: %s (%s)"
 msgstr "Dla żądania '%s' otrzymano niepoprawny wynikowy XML: %s (%s)"
@@ -3794,13 +3794,13 @@ msgstr "Odpowiedź OPTIONS nie zawiera w
 msgid "%s of '%s': %d %s (%s://%s)"
 msgstr "%s z '%s': %d %s (%s://%s)"
 
-#: ../libsvn_ra_serf/commit.c:1085 ../libsvn_ra_serf/property.c:963
-#: ../libsvn_ra_serf/update.c:1128 ../libsvn_ra_serf/update.c:1671
+#: ../libsvn_ra_serf/commit.c:1085 ../libsvn_ra_serf/property.c:964
+#: ../libsvn_ra_serf/update.c:1130 ../libsvn_ra_serf/update.c:1673
 msgid "The OPTIONS response did not include the requested checked-in value"
 msgstr "Odpowiedź OPTIONS nie zawiera wymaganej wartości checked-in"
 
 #: ../libsvn_ra_serf/commit.c:1311 ../libsvn_ra_serf/commit.c:1713
-#: ../libsvn_ra_serf/property.c:977
+#: ../libsvn_ra_serf/property.c:978
 msgid "The OPTIONS response did not include the requested baseline-collection value"
 msgstr "Odpowiedź OPTIONS nie zawiera wymaganej wartości baseline-collection"
 
@@ -3828,11 +3828,11 @@ msgstr "Niepoprawny URL repozytorium"
 msgid "Unlock request failed: %d %s"
 msgstr "Żądanie zdjęcia blokady nie powiodło się: %d %s"
 
-#: ../libsvn_ra_serf/property.c:991
+#: ../libsvn_ra_serf/property.c:992
 msgid "The OPTIONS response did not include the requested version-name value"
 msgstr "Odpowiedź OPTIONS nie zawiera wymaganej wartości version-name"
 
-#: ../libsvn_ra_serf/replay.c:198 ../libsvn_ra_serf/update.c:1223
+#: ../libsvn_ra_serf/replay.c:198 ../libsvn_ra_serf/update.c:1225
 msgid "Missing revision attr in target-revision element"
 msgstr "Brak atrybutu wersji w elemencie target-revision"
 
@@ -3844,22 +3844,22 @@ msgstr "Brak atrybutu wersji w elemencie
 msgid "Missing revision attr in delete-entry element"
 msgstr "Brak atrybutu wersji w elemencie delete-entry"
 
-#: ../libsvn_ra_serf/replay.c:267 ../libsvn_ra_serf/update.c:1241
-#: ../libsvn_ra_serf/update.c:1277
+#: ../libsvn_ra_serf/replay.c:267 ../libsvn_ra_serf/update.c:1243
+#: ../libsvn_ra_serf/update.c:1279
 msgid "Missing revision attr in open-directory element"
 msgstr "Brak atrybutu wersji w elemencie open-directory"
 
-#: ../libsvn_ra_serf/replay.c:328 ../libsvn_ra_serf/update.c:1370
+#: ../libsvn_ra_serf/replay.c:328 ../libsvn_ra_serf/update.c:1372
 msgid "Missing revision attr in open-file element"
 msgstr "Brak atrybutu wersji w elemencie open-file"
 
-#: ../libsvn_ra_serf/replay.c:415 ../libsvn_ra_serf/update.c:1516
-#: ../libsvn_ra_serf/update.c:1593
+#: ../libsvn_ra_serf/replay.c:415 ../libsvn_ra_serf/update.c:1518
+#: ../libsvn_ra_serf/update.c:1595
 #, c-format
 msgid "Missing name attr in %s element"
 msgstr "Brak atrybutu nazwy w elemencie %s"
 
-#: ../libsvn_ra_serf/replay.c:821
+#: ../libsvn_ra_serf/replay.c:825
 #, c-format
 msgid "Error retrieving replay REPORT (%d)"
 msgstr "Błąd podczas odbierania powtórzenia RAPORTU (%d)"
@@ -3868,43 +3868,43 @@ msgstr "Błąd podczas odbierania powtó
 msgid "Module for accessing a repository via WebDAV protocol using serf."
 msgstr "Moduł umożliwiający dostęp do repozytorium przy pomocy protokołu WebDAV \
przy użyciu biblioteki serf"  
-#: ../libsvn_ra_serf/serf.c:543
+#: ../libsvn_ra_serf/serf.c:534
 #, c-format
 msgid "Could not lookup hostname `%s'"
 msgstr "Nie można odszukać hosta: `%s'"
 
-#: ../libsvn_ra_serf/serf.c:794
+#: ../libsvn_ra_serf/serf.c:783
 msgid "The OPTIONS response did not include the requested resourcetype value"
 msgstr "Odpowiedź OPTIONS nie zawiera wymaganej wartości resourcetype"
 
-#: ../libsvn_ra_serf/serf.c:958
+#: ../libsvn_ra_serf/serf.c:947
 msgid "The PROPFIND response did not include the requested resourcetype value"
 msgstr "Odpowiedź PROPFIND nie zawiera wymaganej wartości resourcetype"
 
-#: ../libsvn_ra_serf/serf.c:1176
+#: ../libsvn_ra_serf/serf.c:1165
 #, c-format
 msgid "Unsupported RA loader version (%d) for ra_serf"
 msgstr "Nieobsługiwana wersja loadera RA (%d) dla ra_serf"
 
-#: ../libsvn_ra_serf/update.c:817
+#: ../libsvn_ra_serf/update.c:819
 #, c-format
 msgid "GET request failed: %d %s"
 msgstr "Żądanie GET nie powiodło się: %d %s"
 
-#: ../libsvn_ra_serf/update.c:2143 ../libsvn_ra_serf/util.c:1501
+#: ../libsvn_ra_serf/update.c:2145 ../libsvn_ra_serf/util.c:1413
 msgid "The OPTIONS response did not include the requested \
version-controlled-configuration value"  msgstr "Odpowiedź OPTIONS nie zawiera \
wymaganej wartości version-controlled-configuration"  
-#: ../libsvn_ra_serf/update.c:2198
+#: ../libsvn_ra_serf/update.c:2200
 #, c-format
 msgid "Error retrieving REPORT (%d)"
 msgstr "BÅ‚Ä…d podczas odbierania RAPORTU (%d)"
 
-#: ../libsvn_ra_serf/util.c:1207
+#: ../libsvn_ra_serf/util.c:1142
 msgid "Premature EOF seen from server"
 msgstr "Serwer za wcześnie wysłał EOF"
 
-#: ../libsvn_ra_serf/util.c:1266
+#: ../libsvn_ra_serf/util.c:1195
 msgid "Unspecified error message"
 msgstr "Nieokreślony komunikat błędu"
 
@@ -3922,60 +3922,55 @@ msgstr "Nieudane połączenie z hostem '
 msgid "Prop diffs element not a list"
 msgstr "Element zbioru różnic atrybutów nie jest listą"
 
-#: ../libsvn_ra_svn/client.c:216
-#, c-format
-msgid "Unrecognized node kind '%s' from server"
-msgstr "Nierozpoznany rodzaj obiektu '%s' z serwera"
-
-#: ../libsvn_ra_svn/client.c:383
+#: ../libsvn_ra_svn/client.c:365
 #, c-format
 msgid "Undefined tunnel scheme '%s'"
 msgstr "Niezdefiniowany schemat tunelu '%s'"
 
-#: ../libsvn_ra_svn/client.c:400
+#: ../libsvn_ra_svn/client.c:382
 #, c-format
 msgid "Tunnel scheme %s requires environment variable %s to be defined"
 msgstr "Schemat tunelu %s wymaga zdefiniowania zmiennej środowiskowej %s"
 
-#: ../libsvn_ra_svn/client.c:411
+#: ../libsvn_ra_svn/client.c:393
 #, c-format
 msgid "Can't tokenize command '%s'"
 msgstr "Nieznane polecenie '%s'"
 
-#: ../libsvn_ra_svn/client.c:442
+#: ../libsvn_ra_svn/client.c:424
 #, c-format
 msgid "Error in child process: %s"
 msgstr "BÅ‚Ä…d procesu potomnego: %s"
 
-#: ../libsvn_ra_svn/client.c:466
+#: ../libsvn_ra_svn/client.c:448
 #, c-format
 msgid "Can't create tunnel"
 msgstr "Nie udało się utworzyć tunelu"
 
-#: ../libsvn_ra_svn/client.c:504
+#: ../libsvn_ra_svn/client.c:473
 #, c-format
 msgid "Illegal svn repository URL '%s'"
 msgstr "Nieprawidłowy URL '%s' repozytorium svn"
 
-#: ../libsvn_ra_svn/client.c:565
+#: ../libsvn_ra_svn/client.c:534
 #, c-format
 msgid "Server requires minimum version %d"
 msgstr "Serwer wymaga co najmniej wersji %d"
 
-#: ../libsvn_ra_svn/client.c:569
+#: ../libsvn_ra_svn/client.c:538
 #, c-format
 msgid "Server only supports versions up to %d"
 msgstr "Serwer obsługuje wersje tylko to %d"
 
-#: ../libsvn_ra_svn/client.c:577
+#: ../libsvn_ra_svn/client.c:546
 msgid "Server does not support edit pipelining"
 msgstr "Serwer nie obsługuje edycyjnego pipeliningu"
 
-#: ../libsvn_ra_svn/client.c:615
+#: ../libsvn_ra_svn/client.c:584
 msgid "Impossibly long repository root from server"
 msgstr "Ścieżka katalogu głównego repozytorium jest zbyt długa"
 
-#: ../libsvn_ra_svn/client.c:627
+#: ../libsvn_ra_svn/client.c:596
 msgid ""
 "Module for accessing a repository using the svn network protocol.\n"
 "  - with Cyrus SASL authentication"
@@ -3983,132 +3978,132 @@ msgstr ""
 "Moduł umożliwiający dostęp do repozytorium przy pomocy protokołu svn.\n"
 "  - z uwierzytelnianiem Cyrus SASL"
 
-#: ../libsvn_ra_svn/client.c:631
+#: ../libsvn_ra_svn/client.c:600
 msgid "Module for accessing a repository using the svn network protocol."
 msgstr "Moduł umożliwiający dostęp do repozytorium przy pomocy protokołu svn."
 
-#: ../libsvn_ra_svn/client.c:804
+#: ../libsvn_ra_svn/client.c:773
 msgid "Server did not send repository root"
 msgstr "Serwer nie przesłał głównego katalogu repozytorium"
 
-#: ../libsvn_ra_svn/client.c:877
+#: ../libsvn_ra_svn/client.c:846
 msgid "Server doesn't support setting arbitrary revision properties during commit"
 msgstr "Serwer nie obsługuje ustawiania arbitralnych właściwości wersji podczas \
zatwierdzania"  
-#: ../libsvn_ra_svn/client.c:965
+#: ../libsvn_ra_svn/client.c:934
 msgid "Non-string as part of file contents"
 msgstr "Plik zawiera dane niebędące tekstem"
 
-#: ../libsvn_ra_svn/client.c:1056
+#: ../libsvn_ra_svn/client.c:1025
 msgid "Dirlist element not a list"
 msgstr "Element dirlist nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1116
+#: ../libsvn_ra_svn/client.c:1085
 msgid "Mergeinfo element is not a list"
 msgstr "Element mergeinfo nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1310
+#: ../libsvn_ra_svn/client.c:1278
 msgid "Log entry not a list"
 msgstr "Element log nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1349
+#: ../libsvn_ra_svn/client.c:1318
 msgid "Changed-path entry not a list"
 msgstr "Element changed-path nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1468
+#: ../libsvn_ra_svn/client.c:1440
 msgid "'stat' not implemented"
 msgstr "Niezaimplementowane 'stat'"
 
-#: ../libsvn_ra_svn/client.c:1528
+#: ../libsvn_ra_svn/client.c:1500
 msgid "'get-locations' not implemented"
 msgstr "Niezaimplementowane 'get-locations'"
 
-#: ../libsvn_ra_svn/client.c:1543
+#: ../libsvn_ra_svn/client.c:1515
 msgid "Location entry not a list"
 msgstr "Element location nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1582
+#: ../libsvn_ra_svn/client.c:1554
 msgid "'get-location-segments' not implemented"
 msgstr "Niezaimplementowane 'get-location-segments'"
 
-#: ../libsvn_ra_svn/client.c:1598
+#: ../libsvn_ra_svn/client.c:1570
 msgid "Location segment entry not a list"
 msgstr "Element location segment nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1649
+#: ../libsvn_ra_svn/client.c:1621
 msgid "'get-file-revs' not implemented"
 msgstr "Niezaimplementowane 'get-file-revs'"
 
-#: ../libsvn_ra_svn/client.c:1673
+#: ../libsvn_ra_svn/client.c:1645
 msgid "Revision entry not a list"
 msgstr "Element revision nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:1690 ../libsvn_ra_svn/client.c:1720
+#: ../libsvn_ra_svn/client.c:1662 ../libsvn_ra_svn/client.c:1692
 msgid "Text delta chunk not a string"
 msgstr "Fragment różnic w tekście nie jest tekstem"
 
-#: ../libsvn_ra_svn/client.c:1732
+#: ../libsvn_ra_svn/client.c:1704
 msgid "The get-file-revs command didn't return any revisions"
 msgstr "Polecenie get-file-revs nie zwróciło żadnych wersji"
 
-#: ../libsvn_ra_svn/client.c:1780
+#: ../libsvn_ra_svn/client.c:1752
 msgid "Server doesn't support the lock command"
 msgstr "Serwer nie obsługuje polecenia zakładania blokady"
 
-#: ../libsvn_ra_svn/client.c:1844
+#: ../libsvn_ra_svn/client.c:1816
 msgid "Server doesn't support the unlock command"
 msgstr "Serwer nie obsługuje polecenia zdejmowania blokady"
 
-#: ../libsvn_ra_svn/client.c:1942
+#: ../libsvn_ra_svn/client.c:1914
 msgid "Lock response not a list"
 msgstr "Odpowiedź lock nie jest listą"
 
-#: ../libsvn_ra_svn/client.c:1956
+#: ../libsvn_ra_svn/client.c:1928
 msgid "Unknown status for lock command"
 msgstr "Nieznany status polecenia lock"
 
-#: ../libsvn_ra_svn/client.c:1980
+#: ../libsvn_ra_svn/client.c:1952
 msgid "Didn't receive end marker for lock responses"
 msgstr "Nie otrzymano znacznika końca dla odpowiedzi zablokowania"
 
-#: ../libsvn_ra_svn/client.c:2070
+#: ../libsvn_ra_svn/client.c:2042
 msgid "Unlock response not a list"
 msgstr "Odpowiedź unlock nie jest listą"
 
-#: ../libsvn_ra_svn/client.c:2084
+#: ../libsvn_ra_svn/client.c:2056
 msgid "Unknown status for unlock command"
 msgstr "Nieznany status polecenia unlock"
 
-#: ../libsvn_ra_svn/client.c:2107
+#: ../libsvn_ra_svn/client.c:2079
 msgid "Didn't receive end marker for unlock responses"
 msgstr "Nie otrzymano znacznika końca dla odpowiedzi odblokowania"
 
-#: ../libsvn_ra_svn/client.c:2131 ../libsvn_ra_svn/client.c:2157
+#: ../libsvn_ra_svn/client.c:2103 ../libsvn_ra_svn/client.c:2129
 msgid "Server doesn't support the get-lock command"
 msgstr "Serwer nie obsługuje polecenia get-lock"
 
-#: ../libsvn_ra_svn/client.c:2171
+#: ../libsvn_ra_svn/client.c:2143
 msgid "Lock element not a list"
 msgstr "Element lock nie jest listÄ…"
 
-#: ../libsvn_ra_svn/client.c:2194
+#: ../libsvn_ra_svn/client.c:2166
 msgid "Server doesn't support the replay command"
 msgstr "Serwer nie obsługuje polecenia powtórzenia"
 
-#: ../libsvn_ra_svn/client.c:2224
+#: ../libsvn_ra_svn/client.c:2196
 msgid "Server doesn't support the replay-range command"
 msgstr "Serwer nie obsługuje polecenia powtórzenia zakresu"
 
-#: ../libsvn_ra_svn/client.c:2242
+#: ../libsvn_ra_svn/client.c:2214
 #, c-format
 msgid "Expected 'revprops', found '%s'"
 msgstr "Oczekiwano 'revprops', znaleziono '%s'"
 
-#: ../libsvn_ra_svn/client.c:2313
+#: ../libsvn_ra_svn/client.c:2285
 msgid "'get-deleted-rev' not implemented"
 msgstr "Niezaimplementowane 'get-deleted-rev'"
 
-#: ../libsvn_ra_svn/client.c:2377
+#: ../libsvn_ra_svn/client.c:2349
 #, c-format
 msgid "Unsupported RA loader version (%d) for ra_svn"
 msgstr "Nieobsługiwana wersja loadera RA (%d) dla ra_svn"
@@ -4161,7 +4156,7 @@ msgstr "Polecenie 'finish-replay' niewł
 msgid "Unknown command '%s'"
 msgstr "Nieznane polecenie: '%s'"
 
-#: ../libsvn_ra_svn/internal_auth.c:96 ../libsvn_subr/prompt.c:155
+#: ../libsvn_ra_svn/internal_auth.c:96 ../libsvn_subr/prompt.c:156
 #, c-format
 msgid "Can't get password"
 msgstr "Nie można pobrać hasła"
@@ -4719,7 +4714,7 @@ msgstr "Nie można odczytać ścieżki; 
 msgid "'%s' is not a file in revision %ld"
 msgstr "'%s' nie jest plikiem w wersji %ld"
 
-#: ../libsvn_subr/auth.c:605
+#: ../libsvn_subr/auth.c:606
 #, c-format
 msgid "Invalid config: unknown password store '%s'"
 msgstr "Błąd konfiguracji: nieznane miejsce przechowywania haseł '%s'"
@@ -4783,7 +4778,7 @@ msgstr "Nieznany błąd podczas dodawani
 msgid "Unknown error creating apr_memcache_t"
 msgstr "Nieznany błąd podczas tworzenia apr_memcache_t"
 
-#: ../libsvn_subr/cmdline.c:590
+#: ../libsvn_subr/cmdline.c:571
 #, c-format
 msgid "Error initializing command line arguments"
 msgstr "Błąd podczas inicjalizacji argumentów linii poleceń"
@@ -4840,7 +4835,7 @@ msgstr "Nie można obliczyć żądanej d
 msgid "Can't expand time"
 msgstr "Nie można rozszerzyć czasu do lokalnego formatu"
 
-#: ../libsvn_subr/deprecated.c:273 ../libsvn_subr/opt.c:210
+#: ../libsvn_subr/deprecated.c:324 ../libsvn_subr/opt.c:211
 msgid ""
 "\n"
 "Valid options:\n"
@@ -4848,7 +4843,7 @@ msgstr ""
 "\n"
 "Poprawne opcje:\n"
 
-#: ../libsvn_subr/deprecated.c:349 ../libsvn_subr/opt.c:351
+#: ../libsvn_subr/deprecated.c:400 ../libsvn_subr/opt.c:352
 #, c-format
 msgid ""
 "\"%s\": unknown command.\n"
@@ -4857,7 +4852,7 @@ msgstr ""
 "\"%s\": nieznane polecenie.\n"
 "\n"
 
-#: ../libsvn_subr/deprecated.c:492 ../libsvn_subr/opt.c:1015
+#: ../libsvn_subr/deprecated.c:543 ../libsvn_subr/opt.c:1016
 #, c-format
 msgid "Type '%s help' for usage.\n"
 msgstr "Użyj '%s help', by uzyskać instrukcje o użyciu.\n"
@@ -4882,21 +4877,21 @@ msgstr "Nie można schwytać muteksu DSO
 msgid "Can't ungrab DSO mutex"
 msgstr "Nie można wypuścić muteksu DSO"
 
-#: ../libsvn_subr/error.c:359
+#: ../libsvn_subr/error.c:360
 msgid "Can't recode error string from APR"
 msgstr "Nie można odkodować komunikatu błędu z APR"
 
-#: ../libsvn_subr/error.c:457
+#: ../libsvn_subr/error.c:458
 #, c-format
 msgid "%swarning: %s\n"
 msgstr "%sostrzeżenie: %s\n"
 
-#: ../libsvn_subr/error.c:508
+#: ../libsvn_subr/error.c:509
 #, c-format
 msgid "In file '%s' line %d: assertion failed (%s)"
 msgstr "W pliku '%s' w linii %d: asercja nie udała się (%s)"
 
-#: ../libsvn_subr/error.c:512
+#: ../libsvn_subr/error.c:513
 #, c-format
 msgid "In file '%s' line %d: internal malfunction"
 msgstr "W pliku '%s' w linii %d: wewnÄ…trzne niepoprawne funkcjonowanie"
@@ -5047,7 +5042,7 @@ msgstr "Nie można opróżnić strumieni
 msgid "Can't flush file to disk"
 msgstr "Nie można opróżnić pliku na dysk"
 
-#: ../libsvn_subr/io.c:1635 ../libsvn_subr/prompt.c:96 ../svnserve/main.c:591
+#: ../libsvn_subr/io.c:1635 ../libsvn_subr/prompt.c:97 ../svnserve/main.c:591
 #, c-format
 msgid "Can't open stdin"
 msgstr "Nie można otworzyć standardowego wejścia"
@@ -5250,7 +5245,7 @@ msgstr "Nie można przenieść '%s' do '
 msgid "Can't create directory '%s'"
 msgstr "Nie można utworzyć katalogu '%s'"
 
-#: ../libsvn_subr/io.c:2991 ../libsvn_wc/copy.c:632
+#: ../libsvn_subr/io.c:2991 ../libsvn_wc/copy.c:640
 #, c-format
 msgid "Can't hide directory '%s'"
 msgstr "Nie można ukryć katalogu '%s'"
@@ -5337,29 +5332,29 @@ msgstr "Skończono parsowanie lisy zakre
 msgid "Could not find end of line in range list line in '%s'"
 msgstr "Nie znaleziono końca linii w linii listy zakresu w '%s'"
 
-#: ../libsvn_subr/mergeinfo.c:541
+#: ../libsvn_subr/mergeinfo.c:542
 #, c-format
-msgid "Parsing of overlapping revision ranges '%s' and '%s' is not supported"
-msgstr "Parsowanie nakładających się zakresów wersji '%s' i '%s' nie jest \
obsługiwane" +msgid "Unable to parse overlapping revision ranges '%s' and '%s' with \
different inheritance types" +msgstr "Nie można parsować nakładających się \
zakresów wersji '%s' i '%s' z różnymi typami dziedziczenia"  
-#: ../libsvn_subr/mergeinfo.c:589
+#: ../libsvn_subr/mergeinfo.c:593
 #, c-format
 msgid "Could not parse mergeinfo string '%s'"
 msgstr "Nie można parsować ciągu znaków '%s' informacji o połączeniach zmian"
 
-#: ../libsvn_subr/mergeinfo.c:1551
+#: ../libsvn_subr/mergeinfo.c:1555
 msgid "NULL mergeinfo catalog\n"
 msgstr "NULL katalog informacji o połączeniach zmian\n"
 
-#: ../libsvn_subr/mergeinfo.c:1556
+#: ../libsvn_subr/mergeinfo.c:1560
 msgid "empty mergeinfo catalog\n"
 msgstr "Pusty katalog informacji o połączeniach zmian\n"
 
-#: ../libsvn_subr/mergeinfo.c:1589
+#: ../libsvn_subr/mergeinfo.c:1593
 msgid "NULL mergeinfo\n"
 msgstr "NULL informacja o połączeniach zmian\n"
 
-#: ../libsvn_subr/mergeinfo.c:1594
+#: ../libsvn_subr/mergeinfo.c:1598
 msgid "empty mergeinfo\n"
 msgstr "Pusta informacja o połączeniach zmian\n"
 
@@ -5377,7 +5372,7 @@ msgstr "Nie można dostać nazwy pliku m
 msgid "Can't convert module path to UTF-8 from UCS-2: '%s'"
 msgstr "Nie można dokonać konwersji następującej ścieżki modułu z kodowania \
UCS-2 do UTF-8: '%s'"  
-#: ../libsvn_subr/opt.c:234
+#: ../libsvn_subr/opt.c:235
 msgid ""
 "\n"
 "Global options:\n"
@@ -5385,41 +5380,41 @@ msgstr ""
 "\n"
 "Globalne opcje:\n"
 
-#: ../libsvn_subr/opt.c:326
+#: ../libsvn_subr/opt.c:327
 msgid " ARG"
 msgstr " ARG"
 
-#: ../libsvn_subr/opt.c:684
+#: ../libsvn_subr/opt.c:685
 #, c-format
 msgid "Syntax error parsing revision '%s'"
 msgstr "Błąd składniowy w trakcie parsowania wersji '%s'"
 
-#: ../libsvn_subr/opt.c:821
+#: ../libsvn_subr/opt.c:822
 msgid "Revision property pair is empty"
 msgstr "Para atrybutów wersji jest pusta"
 
-#: ../libsvn_subr/opt.c:841 ../svn/propedit-cmd.c:60 ../svn/propget-cmd.c:206
+#: ../libsvn_subr/opt.c:842 ../svn/propedit-cmd.c:60 ../svn/propget-cmd.c:206
 #: ../svn/propset-cmd.c:64
 #, c-format
 msgid "'%s' is not a valid Subversion property name"
 msgstr "'%s' nie jest poprawnÄ… nazwÄ… atrybutu Subversion"
 
-#: ../libsvn_subr/opt.c:900
+#: ../libsvn_subr/opt.c:901
 #, c-format
 msgid "URL '%s' is not properly URI-encoded"
 msgstr "URL '%s' nie ma poprawnej składni URI"
 
-#: ../libsvn_subr/opt.c:906
+#: ../libsvn_subr/opt.c:907
 #, c-format
 msgid "URL '%s' contains a '..' element"
 msgstr "URL '%s' zawiera element '..'"
 
-#: ../libsvn_subr/opt.c:939
+#: ../libsvn_subr/opt.c:940
 #, c-format
 msgid "Error resolving case of '%s'"
 msgstr "Błąd ustalania wielkości liter dla '%s'"
 
-#: ../libsvn_subr/opt.c:958
+#: ../libsvn_subr/opt.c:959
 #, c-format
 msgid ""
 "%s, version %s\n"
@@ -5430,7 +5425,7 @@ msgstr ""
 "   kompilacja %s, %s\n"
 "\n"
 
-#: ../libsvn_subr/opt.c:961
+#: ../libsvn_subr/opt.c:962
 msgid ""
 "Copyright (C) 2000-2009 CollabNet.\n"
 "Subversion is open source software, see http://subversion.tigris.org/\n"
@@ -5457,31 +5452,31 @@ msgstr "Nie można ustalić natywnego ko
 msgid "Invalid control character '0x%02x' in path '%s'"
 msgstr "Błędny znak kontrolny '0x%02x' w ścieżce '%s'"
 
-#: ../libsvn_subr/prompt.c:114 ../libsvn_subr/prompt.c:118
+#: ../libsvn_subr/prompt.c:115 ../libsvn_subr/prompt.c:119
 #, c-format
 msgid "Can't read stdin"
 msgstr "Błąd odczytu standardowego wejścia"
 
-#: ../libsvn_subr/prompt.c:175
+#: ../libsvn_subr/prompt.c:176
 #, c-format
 msgid "Authentication realm: %s\n"
 msgstr "Obszar uwierzytelniania: %s\n"
 
-#: ../libsvn_subr/prompt.c:201 ../libsvn_subr/prompt.c:224
+#: ../libsvn_subr/prompt.c:202 ../libsvn_subr/prompt.c:225
 msgid "Username: "
 msgstr "Użytkownik: "
 
-#: ../libsvn_subr/prompt.c:203
+#: ../libsvn_subr/prompt.c:204
 #, c-format
 msgid "Password for '%s': "
 msgstr "Hasło '%s': "
 
-#: ../libsvn_subr/prompt.c:246
+#: ../libsvn_subr/prompt.c:247
 #, c-format
 msgid "Error validating server certificate for '%s':\n"
 msgstr "BÅ‚Ä…d weryfikacji certyfikatu serwera dla '%s'\n"
 
-#: ../libsvn_subr/prompt.c:252
+#: ../libsvn_subr/prompt.c:253
 msgid ""
 " - The certificate is not issued by a trusted authority. Use the\n"
 "   fingerprint to validate the certificate manually!\n"
@@ -5489,23 +5484,23 @@ msgstr ""
 " - Certyfikat nie jest wydany przez zaufanego dostawcÄ™. Skorzystaj\n"
 "   z odcisku palca by zweryfikować go samodzielnie!\n"
 
-#: ../libsvn_subr/prompt.c:259
+#: ../libsvn_subr/prompt.c:260
 msgid " - The certificate hostname does not match.\n"
 msgstr " - Niezgodność nazwy maszyny w ramach certyfikatu\n"
 
-#: ../libsvn_subr/prompt.c:265
+#: ../libsvn_subr/prompt.c:266
 msgid " - The certificate is not yet valid.\n"
 msgstr " - Certyfikat nie jest jeszcze ważny\n"
 
-#: ../libsvn_subr/prompt.c:271
+#: ../libsvn_subr/prompt.c:272
 msgid " - The certificate has expired.\n"
 msgstr " - Certyfikat jest już nieważny\n"
 
-#: ../libsvn_subr/prompt.c:277
+#: ../libsvn_subr/prompt.c:278
 msgid " - The certificate has an unknown error.\n"
 msgstr " - Nieznany błąd certyfikatu.\n"
 
-#: ../libsvn_subr/prompt.c:282
+#: ../libsvn_subr/prompt.c:283
 #, c-format
 msgid ""
 "Certificate information:\n"
@@ -5520,40 +5515,40 @@ msgstr ""
 " - Wydawca: %s\n"
 " - Odcisk palca: %s\n"
 
-#: ../libsvn_subr/prompt.c:297
+#: ../libsvn_subr/prompt.c:298
 msgid "(R)eject, accept (t)emporarily or accept (p)ermanently? "
 msgstr "Odrzucić (r), zaakceptować chwilowo (t) czy zaakceptować na stałe (p)?"
 
-#: ../libsvn_subr/prompt.c:301
+#: ../libsvn_subr/prompt.c:302
 msgid "(R)eject or accept (t)emporarily? "
 msgstr "Odrzucić (r) czy zaakceptować tymczasowo (t)? "
 
-#: ../libsvn_subr/prompt.c:341
+#: ../libsvn_subr/prompt.c:342
 msgid "Client certificate filename: "
 msgstr "Nazwa pliku certyfikatu klienta: "
 
-#: ../libsvn_subr/prompt.c:365
+#: ../libsvn_subr/prompt.c:366
 #, c-format
 msgid "Passphrase for '%s': "
 msgstr "Hasło dla '%s': "
 
-#: ../libsvn_subr/prompt.c:413
+#: ../libsvn_subr/prompt.c:414
 msgid "yes"
 msgstr "tak"
 
-#: ../libsvn_subr/prompt.c:418
+#: ../libsvn_subr/prompt.c:419
 msgid "no"
 msgstr "nie"
 
-#: ../libsvn_subr/prompt.c:424
+#: ../libsvn_subr/prompt.c:425
 msgid "Please type 'yes' or 'no': "
 msgstr "Proszę wpisać 'tak' lub 'nie': "
 
-#: ../libsvn_subr/prompt.c:438
+#: ../libsvn_subr/prompt.c:439
 msgid "Store password unencrypted (yes/no)? "
 msgstr "Zapisać hasło bez szyfrowania (tak/nie)? "
 
-#: ../libsvn_subr/prompt.c:440
+#: ../libsvn_subr/prompt.c:441
 #, c-format
 msgid ""
 "-----------------------------------------------------------------------\n"
@@ -5583,11 +5578,11 @@ msgstr ""
 "opcji 'store-plaintext-passwords' na 'yes' lub 'no' w\n"
 "'%s'.\n"
 
-#: ../libsvn_subr/prompt.c:467
+#: ../libsvn_subr/prompt.c:468
 msgid "Store passphrase unencrypted (yes/no)? "
 msgstr "Zapisać hasło certyfikatu klienta SSL bez szyfrowania (tak/nie)? "
 
-#: ../libsvn_subr/prompt.c:469
+#: ../libsvn_subr/prompt.c:470
 #, c-format
 msgid ""
 "-----------------------------------------------------------------------\n"
@@ -5617,45 +5612,45 @@ msgstr ""
 "opcji 'store-ssl-client-cert-pp-plaintext' na 'yes' lub 'no' w\n"
 "'%s'.\n"
 
-#: ../libsvn_subr/prompt.c:524
+#: ../libsvn_subr/prompt.c:525
 #, c-format
 msgid "Password for '%s' GNOME keyring: "
 msgstr "Hasło dla GNOME keyring '%s': "
 
 #: ../libsvn_subr/simple_providers.c:441
-#: ../libsvn_subr/ssl_client_cert_pw_providers.c:294
+#: ../libsvn_subr/ssl_client_cert_pw_providers.c:291
 #, c-format
 msgid "Config error: invalid value '%s' for option '%s'"
 msgstr "Błąd w pliku konfiguracyjnym: niewłaściwa wartość '%s' opcji '%s'"
 
-#: ../libsvn_subr/sqlite.c:145
+#: ../libsvn_subr/sqlite.c:164
 msgid "Expected database row missing"
 msgstr "Brak oczekiwanego rzędu bazy danych"
 
-#: ../libsvn_subr/sqlite.c:146
+#: ../libsvn_subr/sqlite.c:165
 msgid "Extra database row found"
 msgstr "Znaleziono dodatkowy rzÄ…d bazy danych"
 
-#: ../libsvn_subr/sqlite.c:343
+#: ../libsvn_subr/sqlite.c:441
 #, c-format
 msgid "Schema format %d not recognized"
 msgstr "Format %d schematu nierozpoznany"
 
-#: ../libsvn_subr/sqlite.c:354
+#: ../libsvn_subr/sqlite.c:452
 #, c-format
 msgid "SQLite compiled for %s, but running with %s"
 msgstr "SQLite skompilowane dla %s, ale działające z %s"
 
-#: ../libsvn_subr/sqlite.c:365
+#: ../libsvn_subr/sqlite.c:463
 msgid "SQLite is required to be compiled and run in thread-safe mode"
 msgstr "SQLite musi być skompilowane i uruchomione w trybie bezpieczno-wątkowym"
 
-#: ../libsvn_subr/sqlite.c:441
+#: ../libsvn_subr/sqlite.c:539
 #, c-format
 msgid "Expected SQLite database not found: %s"
 msgstr "Oczekiwana baza danych SQLite nieznaleziona: %s"
 
-#: ../libsvn_subr/subst.c:1455 ../libsvn_wc/props.c:2387
+#: ../libsvn_subr/subst.c:1419 ../libsvn_wc/props.c:2375
 #, c-format
 msgid "File '%s' has inconsistent newlines"
 msgstr "Plik '%s' ma niejednolite znaki końca wiersza"
@@ -5665,55 +5660,55 @@ msgstr "Plik '%s' ma niejednolite znaki 
 msgid " (%a, %d %b %Y)"
 msgstr " (%a, %Y-%m-%d)"
 
-#: ../libsvn_subr/utf.c:184
+#: ../libsvn_subr/utf.c:185
 msgid "Can't lock charset translation mutex"
 msgstr "Nie można zablokować muteksu translacji zestawu znaków"
 
-#: ../libsvn_subr/utf.c:202 ../libsvn_subr/utf.c:298
+#: ../libsvn_subr/utf.c:203 ../libsvn_subr/utf.c:299
 msgid "Can't unlock charset translation mutex"
 msgstr "Nie można odblokować muteksu translacji zestawu znaków"
 
-#: ../libsvn_subr/utf.c:256
+#: ../libsvn_subr/utf.c:257
 #, c-format
 msgid "Can't create a character converter from native encoding to '%s'"
 msgstr "Nie można stworzyć konwertera znaków z natywnego kodowania do '%s'"
 
-#: ../libsvn_subr/utf.c:260
+#: ../libsvn_subr/utf.c:261
 #, c-format
 msgid "Can't create a character converter from '%s' to native encoding"
 msgstr "Nie można stworzyć konwertera znaków z natywnego kodowania do '%s'"
 
-#: ../libsvn_subr/utf.c:264
+#: ../libsvn_subr/utf.c:265
 #, c-format
 msgid "Can't create a character converter from '%s' to '%s'"
 msgstr "Nie można stworzyć konwertera z kodowania znaków '%s' do '%s'"
 
-#: ../libsvn_subr/utf.c:495
+#: ../libsvn_subr/utf.c:496
 #, c-format
 msgid "Can't convert string from native encoding to '%s':"
 msgstr "Nie można dokonać konwersji ciągu znaków z natywnego kodowania do '%s':"
 
-#: ../libsvn_subr/utf.c:499
+#: ../libsvn_subr/utf.c:500
 #, c-format
 msgid "Can't convert string from '%s' to native encoding:"
 msgstr "Nie można dokonać konwersji ciągu znaków z '%s' do natywnego kodowania:"
 
-#: ../libsvn_subr/utf.c:503
+#: ../libsvn_subr/utf.c:504
 #, c-format
 msgid "Can't convert string from '%s' to '%s':"
 msgstr "Nie można dokonać konwersji ciągu znaków z '%s' do '%s'"
 
-#: ../libsvn_subr/utf.c:548
+#: ../libsvn_subr/utf.c:549
 #, c-format
 msgid "Safe data '%s' was followed by non-ASCII byte %d: unable to convert to/from \
UTF-8"  msgstr "Bezpieczne dane '%s' następują przed znakiem nie-ASCII %d: nie \
można przeprowadzić konwersji do/z UTF-8"  
-#: ../libsvn_subr/utf.c:556
+#: ../libsvn_subr/utf.c:557
 #, c-format
 msgid "Non-ASCII character (code %d) detected, and unable to convert to/from UTF-8"
 msgstr "Wykryto znak nie-ASCII o kodzie %d, nie można przeprowadzić konwersji do/z \
UTF-8"  
-#: ../libsvn_subr/utf.c:598
+#: ../libsvn_subr/utf.c:599
 #, c-format
 msgid ""
 "Valid UTF-8 data\n"
@@ -5746,7 +5741,7 @@ msgstr "Typ MIME '%s' zawiera nieprawidÅ
 msgid "Version mismatch in '%s': found %d.%d.%d%s, expected %d.%d.%d%s"
 msgstr "Konflikt wersji w '%s': znaleziona %d.%d.%d%s, oczekiwana %d.%d.%d%s\""
 
-#: ../libsvn_subr/xml.c:408
+#: ../libsvn_subr/xml.c:409
 #, c-format
 msgid "Malformed XML: %s at line %ld"
 msgstr "Uszkodzony XML: %s w linii %ld"
@@ -5771,8 +5766,8 @@ msgstr ""
 "Katalog .svn/tmp nie istnieje lub jest uszkodzony, uruchom 'svn cleanup'\n"
 "i spróbuj ponownie"
 
-#: ../libsvn_wc/adm_files.c:598 ../libsvn_wc/lock.c:602
-#: ../libsvn_wc/lock.c:904
+#: ../libsvn_wc/adm_files.c:598 ../libsvn_wc/lock.c:594
+#: ../libsvn_wc/lock.c:896
 #, c-format
 msgid "'%s' is not a working copy"
 msgstr "'%s' nie jest kopiÄ… roboczÄ…"
@@ -5847,45 +5842,45 @@ msgstr "BÅ‚Ä…d podczas przywracania zawa
 msgid "unexpected kind for revert-base '%s'"
 msgstr "niespodziewany rodzaj obiektu dla revert-base '%s'"
 
-#: ../libsvn_wc/adm_ops.c:2054
+#: ../libsvn_wc/adm_ops.c:2053
 msgid "Cannot revert addition of current directory; please try again from the parent \
directory"  msgstr "Nie można wycofać operacji dodania bieżącego katalogu. \
Spróbuj ponownie wykonać to polecenie, znajdując się w katalogu nadrzędnym"  
-#: ../libsvn_wc/adm_ops.c:2087
+#: ../libsvn_wc/adm_ops.c:2086
 #, c-format
 msgid "Unknown or unexpected kind for path '%s'"
 msgstr "Nieznany lub niespodziewany rodzaj obiektu dla ścieżki '%s'"
 
-#: ../libsvn_wc/adm_ops.c:2209
+#: ../libsvn_wc/adm_ops.c:2208
 #, c-format
 msgid "Cannot revert unversioned item '%s'"
 msgstr "Nie można wycofać zmian w niewersjonowanym obiekcie '%s'"
 
-#: ../libsvn_wc/adm_ops.c:2236
+#: ../libsvn_wc/adm_ops.c:2235
 #, c-format
 msgid "Cannot revert '%s': unsupported entry node kind"
 msgstr "Nie można wycofać zmian w '%s': nieobsługiwany rodzaj obiektu wpisu"
 
-#: ../libsvn_wc/adm_ops.c:2247
+#: ../libsvn_wc/adm_ops.c:2246
 #, c-format
 msgid "Cannot revert '%s': unsupported node kind in working copy"
 msgstr "Nie można wycofać zmian w '%s': nieobsługiwany rodzaj obiektu w kopii \
roboczej"  
-#: ../libsvn_wc/adm_ops.c:2452
+#: ../libsvn_wc/adm_ops.c:2451
 #, c-format
 msgid "File '%s' has local modifications"
 msgstr "Plik '%s' zawiera lokalne zmiany"
 
-#: ../libsvn_wc/adm_ops.c:2797
+#: ../libsvn_wc/adm_ops.c:2796
 msgid "Invalid 'conflict_result' argument"
 msgstr "BÅ‚Ä…dny argument 'conflict_result'"
 
-#: ../libsvn_wc/adm_ops.c:3143
+#: ../libsvn_wc/adm_ops.c:3142
 #, c-format
 msgid "'%s' is a directory, and thus cannot be a member of a changelist"
 msgstr "%s' jest katalogiem i dlatego nie może być członkiem listy zmian"
 
-#: ../libsvn_wc/adm_ops.c:3163
+#: ../libsvn_wc/adm_ops.c:3162
 #, c-format
 msgid "Removing '%s' from changelist '%s'."
 msgstr "Usuwanie '%s' z listy zmian '%s'."
@@ -5910,17 +5905,17 @@ msgstr "'%s' już istnieje i znajduje si
 msgid "There is already a versioned item '%s'"
 msgstr "Już istnieje podlegający zarządzaniu wersjami element '%s'"
 
-#: ../libsvn_wc/copy.c:499 ../libsvn_wc/copy.c:784
+#: ../libsvn_wc/copy.c:499 ../libsvn_wc/copy.c:792
 #, c-format
 msgid "Cannot copy or move '%s': it is not in the repository yet; try committing \
first"  msgstr "Nie można skopiować lub przenieść '%s': obiekt jeszcze nie \
znajduje się w repozytorium; zatwierdź transakcję dodającą go do repozytorium i \
spróbuj ponownie"  
-#: ../libsvn_wc/copy.c:889
+#: ../libsvn_wc/copy.c:897
 #, c-format
 msgid "Cannot copy to '%s', as it is not from repository '%s'; it is from '%s'"
 msgstr "Nie można skopiować obiektu do '%s', gdyż nie pochodzi on z repozytorium \
'%s', ale z repozytorium '%s'"  
-#: ../libsvn_wc/copy.c:896
+#: ../libsvn_wc/copy.c:904
 #, c-format
 msgid "Cannot copy to '%s' as it is scheduled for deletion"
 msgstr "Nie można kopiować do '%s', ponieważ zlecono wcześniej skasowanie \
obiektu" @@ -5945,8 +5940,8 @@ msgstr "Nie można wykluczyć katalogu g
 msgid "Cannot crop '%s': it is a switched path"
 msgstr "Nie można obciąć '%s': jest to przełączona ścieżka"
 
-#: ../libsvn_wc/entries.c:97 ../libsvn_wc/entries.c:543
-#: ../libsvn_wc/entries.c:815 ../libsvn_wc/entries.c:1087
+#: ../libsvn_wc/entries.c:97 ../libsvn_wc/entries.c:545
+#: ../libsvn_wc/entries.c:817 ../libsvn_wc/entries.c:1067
 #, c-format
 msgid "Entry '%s' has invalid '%s' value"
 msgstr "Obiekt '%s' ma niepoprawną wartość '%s'"
@@ -5984,202 +5979,172 @@ msgstr "Znaleziono nieoczekiwane \\0 w p
 msgid "Illegal file external revision kind %d for path '%s'"
 msgstr "Nieprawidłowy rodzaj wersji %d plikowego eksternału dla ścieżki '%s'"
 
-#: ../libsvn_wc/entries.c:501 ../libsvn_wc/entries.c:790
+#: ../libsvn_wc/entries.c:503 ../libsvn_wc/entries.c:792
 #, c-format
 msgid "Entry '%s' has invalid node kind"
 msgstr "Obiekt '%s' ma nieprawidłowy rodzaj"
 
-#: ../libsvn_wc/entries.c:522 ../libsvn_wc/entries.c:767
+#: ../libsvn_wc/entries.c:524 ../libsvn_wc/entries.c:769
 #, c-format
 msgid "Entry for '%s' has invalid repository root"
 msgstr "Obiekt '%s' zawiera nieprawidłowy katalog główny repozytorium"
 
-#: ../libsvn_wc/entries.c:687
+#: ../libsvn_wc/entries.c:689
 #, c-format
 msgid "Entry '%s' has invalid depth"
 msgstr "Obiekt '%s' ma nieprawidłową głębokość"
 
-#: ../libsvn_wc/entries.c:1256
+#: ../libsvn_wc/entries.c:1210
 #, c-format
 msgid "XML parser failed in '%s'"
 msgstr "BÅ‚Ä…d parsera XML w '%s'"
 
-#: ../libsvn_wc/entries.c:1315
+#: ../libsvn_wc/entries.c:1269
 msgid "Missing default entry"
 msgstr "Brak domyślnej wartości"
 
-#: ../libsvn_wc/entries.c:1320
+#: ../libsvn_wc/entries.c:1274
 msgid "Default entry has no revision number"
 msgstr "Domyślna wartość nie ma numeru wersji"
 
-#: ../libsvn_wc/entries.c:1325
+#: ../libsvn_wc/entries.c:1279
 msgid "Default entry is missing URL"
 msgstr "Domyślna wartość nie ma URL-u"
 
-#: ../libsvn_wc/entries.c:1408
+#: ../libsvn_wc/entries.c:1360
 #, c-format
 msgid "Invalid version line in entries file of '%s'"
 msgstr "Błędna linia wersji w pliku entries dla '%s'"
 
-#: ../libsvn_wc/entries.c:1424
+#: ../libsvn_wc/entries.c:1376
 msgid "Missing entry terminator"
 msgstr "Brak terminatora wpisu"
 
-#: ../libsvn_wc/entries.c:1427
+#: ../libsvn_wc/entries.c:1379
 msgid "Invalid entry terminator"
 msgstr "Błędny terminator wpisu"
 
-#: ../libsvn_wc/entries.c:1431
+#: ../libsvn_wc/entries.c:1383
 #, c-format
 msgid "Error at entry %d in entries file for '%s':"
 msgstr "BÅ‚Ä…d we wpisie %d w pliku entries dla '%s':"
 
-#: ../libsvn_wc/entries.c:1550
-#, c-format
-msgid "Corrupt working copy: '%s' has no default entry"
-msgstr "Uszkodzona kopia robocza: obiekt '%s' nie ma domyślnego elementu"
-
-#: ../libsvn_wc/entries.c:1567
-#, c-format
-msgid "Corrupt working copy: directory '%s' has an invalid schedule"
-msgstr "Uszkodzona kopia robocza: katalog '%s' ma niepoprawne operacje oczekujÄ…ce \
                na zatwierdzenie"
-
-#: ../libsvn_wc/entries.c:1601
-#, c-format
-msgid "Corrupt working copy: '%s' in directory '%s' has an invalid schedule"
-msgstr "Uszkodzona kopia robocza: '%s' w katalogu '%s' ma niepoprawne operacje \
                oczekujÄ…ce na zatwierdzenie"
-
-#: ../libsvn_wc/entries.c:1610
-#, c-format
-msgid "Corrupt working copy: '%s' in directory '%s' (which is scheduled for \
                addition) is not itself scheduled for addition"
-msgstr "Uszkodzona kopia robocza: '%s' w katalogu '%s' (oczekujÄ…cym na dodanie do \
                repozytorium) nie jest zarejestrowany do dodania"
-
-#: ../libsvn_wc/entries.c:1618
-#, c-format
-msgid "Corrupt working copy: '%s' in directory '%s' (which is scheduled for \
                deletion) is not itself scheduled for deletion"
-msgstr "Uszkodzona kopia robocza: '%s' w katalogu '%s' (oczekujÄ…cym na skasowanie) \
                nie jest zarejestrowany do skasowania"
-
-#: ../libsvn_wc/entries.c:1626
-#, c-format
-msgid "Corrupt working copy: '%s' in directory '%s' (which is scheduled for \
                replacement) has an invalid schedule"
-msgstr "Uszkodzona kopia robocza: '%s' w katalogu '%s' (oczekuje na zastÄ…pienie) ma \
                niepoprawne operacje oczekujÄ…ce na zatwierdzenie"
-
-#: ../libsvn_wc/entries.c:2296
+#: ../libsvn_wc/entries.c:2141
 #, c-format
 msgid "No default entry in directory '%s'"
 msgstr "Brak domyślnego wpisu w katalogu '%s'"
 
-#: ../libsvn_wc/entries.c:2352
+#: ../libsvn_wc/entries.c:2199
 #, c-format
 msgid "Error writing to '%s'"
 msgstr "BÅ‚Ä…d zapisu do '%s'"
 
-#: ../libsvn_wc/entries.c:2692
+#: ../libsvn_wc/entries.c:2536
 #, c-format
 msgid "Can't add '%s' to deleted directory; try undeleting its parent directory \
first"  msgstr "Nie można dodać '%s' do kasowanego katalogu, spróbuj cofnąć \
kasowanie katalogu nadrzędnego"  
-#: ../libsvn_wc/entries.c:2698
+#: ../libsvn_wc/entries.c:2542
 #, c-format
 msgid "Can't replace '%s' in deleted directory; try undeleting its parent directory \
first"  msgstr "Nie można zastąpić '%s' w kasowanym katalogu, spróbuj cofnąć \
kasowanie katalogu nadrzędnego"  
-#: ../libsvn_wc/entries.c:2707
+#: ../libsvn_wc/entries.c:2551
 #, c-format
 msgid "'%s' is marked as absent, so it cannot be scheduled for addition"
 msgstr "'%s' jest oznaczony jako nieobecny, więc nie może zostać zlecone jego \
skasowanie"  
-#: ../libsvn_wc/entries.c:2736
+#: ../libsvn_wc/entries.c:2580
 #, c-format
 msgid "Entry '%s' is already under version control"
 msgstr "Obiekt '%s' już podlega zarządzaniu wersjami"
 
-#: ../libsvn_wc/entries.c:2837
+#: ../libsvn_wc/entries.c:2681
 #, c-format
 msgid "Entry '%s' has illegal schedule"
 msgstr "Obiekt '%s' ma niepoprawne operacje oczekujÄ…ce na zatwierdzenie"
 
-#: ../libsvn_wc/entries.c:2995
+#: ../libsvn_wc/entries.c:2839
 #, c-format
 msgid "No such entry: '%s'"
 msgstr "Nie ma takiego obiektu: '%s'"
 
-#: ../libsvn_wc/entries.c:3131
+#: ../libsvn_wc/entries.c:2975
 #, c-format
 msgid "Error writing entries file for '%s'"
 msgstr "BÅ‚Ä…d zapisu pliku entries dla '%s'"
 
-#: ../libsvn_wc/entries.c:3184
+#: ../libsvn_wc/entries.c:3028
 #, c-format
 msgid "Directory '%s' has no THIS_DIR entry"
 msgstr "Katalog '%s' nie zawiera elementu THIS_DIR"
 
-#: ../libsvn_wc/entries.c:3310
+#: ../libsvn_wc/entries.c:3154
 #, c-format
 msgid "'%s' has an unrecognized node kind"
 msgstr "'%s' ma nierozpoznany rodzaj"
 
-#: ../libsvn_wc/entries.c:3576
+#: ../libsvn_wc/entries.c:3420
 #, c-format
 msgid "Unexpectedly found '%s': path is marked 'missing'"
 msgstr "Nieoczekiwanie znaleziono '%s': ścieżka jest oznaczona jako brakująca"
 
-#: ../libsvn_wc/lock.c:376 ../libsvn_wc/lock.c:570
+#: ../libsvn_wc/lock.c:368 ../libsvn_wc/lock.c:562
 #, c-format
 msgid "Working copy '%s' locked"
 msgstr "Kopia robocza '%s' jest zablokowana"
 
-#: ../libsvn_wc/lock.c:488
+#: ../libsvn_wc/lock.c:480
 #, c-format
 msgid "Path '%s' ends in '%s', which is unsupported for this operation"
 msgstr "Ścieżka '%s' kończy się '%s', co jest nieobsługiwane dla tej operacji"
 
-#: ../libsvn_wc/lock.c:977 ../libsvn_wc/lock.c:1016
+#: ../libsvn_wc/lock.c:969 ../libsvn_wc/lock.c:1008
 #, c-format
 msgid "Unable to check path existence for '%s'"
 msgstr "Nie zdołano sprawdzić istnienia ścieżki dla '%s'"
 
-#: ../libsvn_wc/lock.c:987
+#: ../libsvn_wc/lock.c:979
 #, c-format
 msgid "Expected '%s' to be a directory but found a file"
 msgstr "'%s' jest plikiem, a oczekiwano katalogu"
 
-#: ../libsvn_wc/lock.c:999
+#: ../libsvn_wc/lock.c:991
 #, c-format
 msgid "Expected '%s' to be a file but found a directory"
 msgstr "'%s' jest katalogiem, a oczekiwano pliku"
 
-#: ../libsvn_wc/lock.c:1023
+#: ../libsvn_wc/lock.c:1015
 #, c-format
 msgid "Directory '%s' is missing"
 msgstr "Brak katalogu '%s'"
 
-#: ../libsvn_wc/lock.c:1033
+#: ../libsvn_wc/lock.c:1025
 #, c-format
 msgid "Directory '%s' containing working copy admin area is missing"
 msgstr "Brak katalogu '%s' zawierajÄ…cego obszar administracyjny kopii roboczej"
 
-#: ../libsvn_wc/lock.c:1038
+#: ../libsvn_wc/lock.c:1030
 #, c-format
 msgid "Unable to lock '%s'"
 msgstr "Nie udało się zablokować '%s'"
 
-#: ../libsvn_wc/lock.c:1043
+#: ../libsvn_wc/lock.c:1035
 #, c-format
 msgid "Working copy '%s' is not locked"
 msgstr "Kopia robocza '%s' nie jest zablokowana"
 
-#: ../libsvn_wc/lock.c:1495
+#: ../libsvn_wc/lock.c:1487
 #, c-format
 msgid "Write-lock stolen in '%s'"
 msgstr "Blokada zapisu w '%s' została przejęta"
 
-#: ../libsvn_wc/lock.c:1503
+#: ../libsvn_wc/lock.c:1495
 #, c-format
 msgid "No write-lock in '%s'"
 msgstr "Brak blokady zapisu w '%s'"
 
-#: ../libsvn_wc/lock.c:1524
+#: ../libsvn_wc/lock.c:1516
 #, c-format
 msgid "Lock file '%s' is not a regular file"
 msgstr "Plik blokady '%s' nie jest plikiem zwykłym"
@@ -6217,126 +6182,126 @@ msgstr "Brak atrybutu 'cel' w '%s'"
 msgid "Missing 'timestamp' attribute in '%s'"
 msgstr "Brak atrybutu 'timestamp' w '%s'"
 
-#: ../libsvn_wc/log.c:790 ../libsvn_wc/props.c:533
+#: ../libsvn_wc/log.c:787 ../libsvn_wc/props.c:521
 #, c-format
 msgid "Error getting 'affected time' on '%s'"
 msgstr "BÅ‚Ä…d uzyskiwania czasu modyfikacji '%s'"
 
-#: ../libsvn_wc/log.c:838
+#: ../libsvn_wc/log.c:820
 #, c-format
 msgid "Error getting file size on '%s'"
 msgstr "BÅ‚Ä…d uzyskiwania rozmiaru pliku '%s'"
 
-#: ../libsvn_wc/log.c:856
+#: ../libsvn_wc/log.c:838
 #, c-format
 msgid "Error modifying entry for '%s'"
 msgstr "BÅ‚Ä…d przy modyfikacji informacji o '%s'"
 
-#: ../libsvn_wc/log.c:882
+#: ../libsvn_wc/log.c:864
 #, c-format
 msgid "Error removing lock from entry for '%s'"
 msgstr "BÅ‚Ä…d podczas usuwania blokady dla '%s'"
 
-#: ../libsvn_wc/log.c:905
+#: ../libsvn_wc/log.c:887
 #, c-format
 msgid "Error removing changelist from entry '%s'"
 msgstr "BÅ‚Ä…d podczas usuwania listy zmian z wpisu '%s'"
 
-#: ../libsvn_wc/log.c:1089
+#: ../libsvn_wc/log.c:1070
 #, c-format
 msgid "Missing 'revision' attribute for '%s'"
 msgstr "Brak atrybutu 'revision' dla '%s'"
 
-#: ../libsvn_wc/log.c:1113
+#: ../libsvn_wc/log.c:1094
 #, c-format
 msgid "Log command for directory '%s' is mislocated"
 msgstr "Polecenie log dla katalogu '%s' jest niepoprawnie umieszczone"
 
-#: ../libsvn_wc/log.c:1281
+#: ../libsvn_wc/log.c:1265
 #, c-format
 msgid "Error replacing text-base of '%s'"
 msgstr "Błąd zastępowania wersji bazowej '%s'"
 
-#: ../libsvn_wc/log.c:1286
+#: ../libsvn_wc/log.c:1270
 #, c-format
 msgid "Error getting 'affected time' of '%s'"
 msgstr "BÅ‚Ä…d uzyskiwania czasu modyfikacji '%s'"
 
-#: ../libsvn_wc/log.c:1309
+#: ../libsvn_wc/log.c:1298
 #, c-format
 msgid "Error getting 'affected time' for '%s'"
 msgstr "BÅ‚Ä…d uzyskiwania czasu modyfikacji dla '%s'"
 
-#: ../libsvn_wc/log.c:1329
+#: ../libsvn_wc/log.c:1320
 #, c-format
 msgid "Error comparing '%s' and '%s'"
 msgstr "Błąd porównywania '%s' i '%s'"
 
-#: ../libsvn_wc/log.c:1382 ../libsvn_wc/log.c:1431
+#: ../libsvn_wc/log.c:1368 ../libsvn_wc/log.c:1417
 #, c-format
 msgid "Error modifying entry of '%s'"
 msgstr "BÅ‚Ä…d modyfikacji wpisu '%s'"
 
-#: ../libsvn_wc/log.c:1486
+#: ../libsvn_wc/log.c:1472
 msgid "Invalid 'format' attribute"
 msgstr "Błędny atrybut 'format'"
 
-#: ../libsvn_wc/log.c:1556
+#: ../libsvn_wc/log.c:1542
 #, c-format
 msgid "Log entry missing 'name' attribute (entry '%s' for directory '%s')"
 msgstr "Zapis w logu nie zawiera atrybutu 'name' (element '%s' w katalogu '%s')"
 
-#: ../libsvn_wc/log.c:1630
+#: ../libsvn_wc/log.c:1616
 #, c-format
 msgid "Unrecognized logfile element '%s' in '%s'"
 msgstr "Nierozpoznany element '%s' w logu '%s'"
 
-#: ../libsvn_wc/log.c:1641
+#: ../libsvn_wc/log.c:1627
 #, c-format
 msgid "Error processing command '%s' in '%s'"
 msgstr "BÅ‚Ä…d podczas wykonywania polecenia '%s' w '%s'"
 
-#: ../libsvn_wc/log.c:1840
+#: ../libsvn_wc/log.c:1826
 msgid "Couldn't open log"
 msgstr "BÅ‚Ä…d otwarcia logu"
 
-#: ../libsvn_wc/log.c:1873
+#: ../libsvn_wc/log.c:1859
 #, c-format
 msgid "Error recording tree conflicts in '%s'"
 msgstr "Błąd podczas zapisywania konfliktów drzewnych w '%s'"
 
-#: ../libsvn_wc/log.c:2504
+#: ../libsvn_wc/log.c:2485
 #, c-format
 msgid "Error writing log for '%s'"
 msgstr "BÅ‚Ä…d zapisu logu dla '%s'"
 
-#: ../libsvn_wc/log.c:2551
+#: ../libsvn_wc/log.c:2532
 #, c-format
 msgid "'%s' is not a working copy directory"
 msgstr "'%s' nie jest katalogiem kopii roboczej"
 
-#: ../libsvn_wc/merge.c:777 ../libsvn_wc/merge.c:1008
+#: ../libsvn_wc/merge.c:793 ../libsvn_wc/merge.c:1024
 msgid "Conflict callback violated API: returned no results"
 msgstr "Konfliktowe wywołanie zwrotne naruszyło API: nie zwróciło wyników"
 
-#: ../libsvn_wc/merge.c:1048
+#: ../libsvn_wc/merge.c:1064
 msgid "Conflict callback violated API: returned no merged file"
 msgstr "Konfliktowe wywołanie zwrotne naruszyło API: nie zwróciło połączonego \
pliku"  
-#: ../libsvn_wc/props.c:606
+#: ../libsvn_wc/props.c:594
 #, c-format
 msgid "Missing end of line in wcprops file for '%s'"
 msgstr "Brak znaku końca linii w pliku wcprops dla '%s'"
 
-#: ../libsvn_wc/props.c:1293
+#: ../libsvn_wc/props.c:1281
 msgid "Conflict callback violated API: returned no results."
 msgstr "Konfliktowe wywołanie zwrotne naruszyło API: nie zwróciło wyników."
 
-#: ../libsvn_wc/props.c:1333
+#: ../libsvn_wc/props.c:1321
 msgid "Conflict callback violated API: returned no merged file."
 msgstr "Konfliktowe wywołanie zwrotne naruszyło API: nie zwróciło połączonego \
pliku."  
-#: ../libsvn_wc/props.c:1427
+#: ../libsvn_wc/props.c:1415
 #, c-format
 msgid ""
 "Trying to add new property '%s' with value '%s',\n"
@@ -6345,7 +6310,7 @@ msgstr ""
 "Nie można dodać nowego atrybutu '%s' o wartości '%s',\n"
 "ponieważ ten atrybut już istnieje i ma wartość '%s'."
 
-#: ../libsvn_wc/props.c:1442
+#: ../libsvn_wc/props.c:1430
 #, c-format
 msgid ""
 "Trying to create property '%s' with value '%s',\n"
@@ -6354,7 +6319,7 @@ msgstr ""
 "Nie można utworzyć atrybutu '%s' o wartości '%s',\n"
 "ponieważ on został lokalnie usunięty."
 
-#: ../libsvn_wc/props.c:1516
+#: ../libsvn_wc/props.c:1504
 #, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s'\n"
@@ -6363,7 +6328,7 @@ msgstr ""
 "Nie można usunąć atrybutu '%s' o wartości '%s',\n"
 "ponieważ został on zmieniony z '%s' do '%s'."
 
-#: ../libsvn_wc/props.c:1537
+#: ../libsvn_wc/props.c:1525
 #, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s'\n"
@@ -6372,7 +6337,7 @@ msgstr ""
 "Nie można usunąć atrybutu '%s' o wartości '%s',\n"
 "ponieważ lokalna wartość jest '%s'."
 
-#: ../libsvn_wc/props.c:1610 ../libsvn_wc/props.c:1724
+#: ../libsvn_wc/props.c:1598 ../libsvn_wc/props.c:1712
 #, c-format
 msgid ""
 "Trying to change property '%s' from '%s' to '%s',\n"
@@ -6381,7 +6346,7 @@ msgstr ""
 "Nie można zmienić wartości atrybutu '%s' z '%s' do '%s',\n"
 "ponieważ został on lokalnie usunięty."
 
-#: ../libsvn_wc/props.c:1703
+#: ../libsvn_wc/props.c:1691
 #, c-format
 msgid ""
 "Trying to change property '%s' from '%s' to '%s',\n"
@@ -6390,7 +6355,7 @@ msgstr ""
 "Nie można zmienić wartości atrybutu '%s' z '%s' do '%s',\n"
 "ponieważ ten atrybut już istnieje z wartością '%s'."
 
-#: ../libsvn_wc/props.c:1709
+#: ../libsvn_wc/props.c:1697
 #, c-format
 msgid ""
 "Trying to change property '%s' from '%s' to '%s',\n"
@@ -6399,7 +6364,7 @@ msgstr ""
 "Nie można zmienić wartości atrybutu '%s' z '%s' do '%s',\n"
 "ponieważ został on lokalnie zmieniony z '%s' do '%s'."
 
-#: ../libsvn_wc/props.c:1717
+#: ../libsvn_wc/props.c:1705
 #, c-format
 msgid ""
 "Trying to change property '%s' from '%s' to '%s',\n"
@@ -6408,7 +6373,7 @@ msgstr ""
 "Nie można zmienić wartości atrybutu '%s' z '%s' do '%s',\n"
 "ponieważ został on lokalnie dodany z wartością '%s'."
 
-#: ../libsvn_wc/props.c:1730
+#: ../libsvn_wc/props.c:1718
 #, c-format
 msgid ""
 "Trying to change property '%s' from '%s' to '%s',\n"
@@ -6417,62 +6382,62 @@ msgstr ""
 "Nie można zmienić wartości atrybutu '%s' z '%s' do '%s',\n"
 "ponieważ ten atrybut nie istnieje."
 
-#: ../libsvn_wc/props.c:2099 ../libsvn_wc/props.c:2126
-#: ../libsvn_wc/props.c:2253 ../libsvn_wc/props.c:2473
+#: ../libsvn_wc/props.c:2087 ../libsvn_wc/props.c:2114
+#: ../libsvn_wc/props.c:2241 ../libsvn_wc/props.c:2461
 msgid "Failed to load properties from disk"
 msgstr "Nieudane pobieranie atrybutów z dysku"
 
-#: ../libsvn_wc/props.c:2248 ../libsvn_wc/props.c:2417
+#: ../libsvn_wc/props.c:2236 ../libsvn_wc/props.c:2405
 #, c-format
 msgid "Property '%s' is an entry property"
 msgstr "Atrybut '%s' jest atrybutem pliku/katalogu"
 
-#: ../libsvn_wc/props.c:2292
+#: ../libsvn_wc/props.c:2280
 #, c-format
 msgid "Cannot set '%s' on a directory ('%s')"
 msgstr "Nie można ustawić '%s' dla katalogu ('%s')"
 
-#: ../libsvn_wc/props.c:2300
+#: ../libsvn_wc/props.c:2288
 #, c-format
 msgid "Cannot set '%s' on a file ('%s')"
 msgstr "Nie można ustawić '%s' dla pliku ('%s')"
 
-#: ../libsvn_wc/props.c:2306
+#: ../libsvn_wc/props.c:2294
 #, c-format
 msgid "'%s' is not a file or directory"
 msgstr "'%s' nie jest plikiem ani katalogiem"
 
-#: ../libsvn_wc/props.c:2368
+#: ../libsvn_wc/props.c:2356
 #, c-format
 msgid "File '%s' has binary mime type property"
 msgstr "Plik '%s' ma binarny typ MIME"
 
-#: ../libsvn_wc/props.c:2584
+#: ../libsvn_wc/props.c:2572
 #, c-format
 msgid "Unrecognized line ending style for '%s'"
 msgstr "Nierozpoznany sposób zapisywania końców wiersza dla '%s'"
 
-#: ../libsvn_wc/props.c:3053 ../libsvn_wc/props.c:3129
+#: ../libsvn_wc/props.c:2959 ../libsvn_wc/props.c:3035
 #, c-format
 msgid "Error parsing %s property on '%s': '%s'"
 msgstr "BÅ‚Ä…d podczas parsowania atrybutu %s dla '%s': '%s'"
 
-#: ../libsvn_wc/props.c:3098
+#: ../libsvn_wc/props.c:3004
 #, c-format
 msgid "Can't split line into components: '%s'"
 msgstr "Nie można podzielić linii na składniki: '%s'"
 
-#: ../libsvn_wc/props.c:3154
+#: ../libsvn_wc/props.c:3060
 #, c-format
 msgid "Invalid %s property on '%s': cannot use two absolute URLs ('%s' and '%s') in \
an external; one must be a path where an absolute or relative URL is checked out to"  \
msgstr "Nieprawidłowy atrybut %s dla '%s': nie można używać dwu absolutnych URL-i \
('%s' i '%s') w zewnętrznej definicji. Jeden musi być ścieżką, do której \
absolutny lub względny URL jest pobrany"  
-#: ../libsvn_wc/props.c:3163 ../libsvn_wc/props.c:3171
+#: ../libsvn_wc/props.c:3069 ../libsvn_wc/props.c:3077
 #, c-format
 msgid "Invalid %s property on '%s': cannot use a URL '%s' as the target directory \
for an external definition"  msgstr "Nieprawidłowy atrybut %s dla '%s': nie można \
używać URL-u '%s' jako docelowego katalogu dla zewnętrznej definicji"  
-#: ../libsvn_wc/props.c:3209
+#: ../libsvn_wc/props.c:3115
 #, c-format
 msgid "Invalid %s property on '%s': target '%s' is an absolute path or involves \
'..'"  msgstr "Błędny atrybut %s dla '%s': cel '%s' jest ścieżką bezwględną \
albo wykorzystuje '..'" @@ -6495,7 +6460,7 @@ msgstr ""
 "Zobacz szczegóły na stronie:\n"
 "http://subversion.tigris.org/faq.html#working-copy-format-change"
 
-#: ../libsvn_wc/questions.c:322
+#: ../libsvn_wc/questions.c:303
 #, c-format
 msgid ""
 "Checksum mismatch indicates corrupt text base: '%s'\n"
@@ -6510,31 +6475,31 @@ msgstr ""
 msgid "Relocate can only change the repository part of an URL"
 msgstr "Polecenie relocate może tylko zmienić repozytorialną część URL-u"
 
-#: ../libsvn_wc/tree_conflicts.c:157
+#: ../libsvn_wc/tree_conflicts.c:160
 msgid "Unknown enumeration value in tree conflict description"
 msgstr "Nieznana wartość wyliczenia w opisie konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:181
+#: ../libsvn_wc/tree_conflicts.c:184
 msgid "Invalid version info in tree conflict description"
 msgstr "Nieprawidłowa informacja o wersji w opisie konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:232
+#: ../libsvn_wc/tree_conflicts.c:235
 msgid "Invalid conflict info in tree conflict description"
 msgstr "Nieprawidłowa informacja o konflikcie w opisie konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:241
+#: ../libsvn_wc/tree_conflicts.c:244
 msgid "Empty 'victim' field in tree conflict description"
 msgstr "Puste pole 'victim' w opisie konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:249
+#: ../libsvn_wc/tree_conflicts.c:252
 msgid "Invalid 'node_kind' field in tree conflict description"
 msgstr "Nieprawidłowe pole 'node_kind' w opisie konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:312
+#: ../libsvn_wc/tree_conflicts.c:315
 msgid "Error parsing tree conflict skel"
 msgstr "BÅ‚Ä…d podczas parsowania szkieletu konfliktu drzewnego"
 
-#: ../libsvn_wc/tree_conflicts.c:513
+#: ../libsvn_wc/tree_conflicts.c:516
 msgid "Attempt to add tree conflict that already exists"
 msgstr "Próba dodania już istniejącego konfliktu drzewnego"
 
@@ -6572,76 +6537,76 @@ msgstr "BÅ‚Ä…d dodawania katalogu '%s': 
 msgid "Couldn't do property merge"
 msgstr "Nie udało się łączenie zmian atrybutu"
 
-#: ../libsvn_wc/update_editor.c:2604
+#: ../libsvn_wc/update_editor.c:2609
 #, c-format
 msgid "Failed to mark '%s' absent: item of the same name is already scheduled for \
addition"  msgstr "Nie udało się oznaczanie '%s' jako brakującego: element o tej \
samej nazwie oczekuje na dodanie"  
-#: ../libsvn_wc/update_editor.c:2694
+#: ../libsvn_wc/update_editor.c:2699
 msgid "Destination directory of add-with-history is missing a URL"
 msgstr "Katalog docelowy add-with-history nie posiada URL-u"
 
-#: ../libsvn_wc/update_editor.c:2709
+#: ../libsvn_wc/update_editor.c:2714
 msgid "Destination URLs are broken"
 msgstr "Docelowe URL-e sÄ… uszkodzone"
 
-#: ../libsvn_wc/update_editor.c:2969
+#: ../libsvn_wc/update_editor.c:2974
 msgid "No fetch_func supplied to update_editor"
 msgstr "fetch_func niedostarczone do update_editor"
 
-#: ../libsvn_wc/update_editor.c:3043
+#: ../libsvn_wc/update_editor.c:3048
 msgid "Bad copyfrom arguments received"
 msgstr "Otrzymano złe argumenty copyfrom"
 
-#: ../libsvn_wc/update_editor.c:3133
+#: ../libsvn_wc/update_editor.c:3138
 #, c-format
 msgid "Failed to add file '%s': a non-file object of the same name already exists"
 msgstr "Błąd dodawania pliku '%s': nieplik o tej samej nazwie już istnieje"
 
-#: ../libsvn_wc/update_editor.c:3148
+#: ../libsvn_wc/update_editor.c:3153
 #, c-format
 msgid "Failed to add file '%s': object of the same name already exists"
 msgstr "Błąd dodawania pliku '%s': obiekt o tej samej nazwie już istnieje"
 
-#: ../libsvn_wc/update_editor.c:3215
+#: ../libsvn_wc/update_editor.c:3220
 #, c-format
 msgid "File '%s' in directory '%s' is not a versioned resource"
 msgstr "Plik '%s' w katalogu '%s' nie podlega zarzÄ…dzaniu wersjami"
 
-#: ../libsvn_wc/update_editor.c:3391
+#: ../libsvn_wc/update_editor.c:3396
 #, c-format
 msgid "Checksum mismatch for '%s'; recorded: '%s', actual: '%s'"
 msgstr "BÅ‚Ä…d sumy kontrolnej dla '%s'; zapisana: '%s', faktyczna: '%s'"
 
-#: ../libsvn_wc/update_editor.c:4683
+#: ../libsvn_wc/update_editor.c:4687
 #, c-format
 msgid "'%s' has no ancestry information"
 msgstr "Brak informacji o pochodzeniu '%s'"
 
-#: ../libsvn_wc/update_editor.c:4890
+#: ../libsvn_wc/update_editor.c:4894
 #, c-format
 msgid "Copyfrom-url '%s' has different repository root than '%s'"
 msgstr "Źródłowy URL '%s' jest z innego repozytorium niż '%s'"
 
-#: ../libsvn_wc/util.c:53
+#: ../libsvn_wc/util.c:54
 #, c-format
 msgid "'%s' is not a directory"
 msgstr "'%s' nie jest katalogiem"
 
-#: ../libsvn_wc/util.c:85
+#: ../libsvn_wc/util.c:86
 msgid "Unable to make any directories"
 msgstr "Nieudane tworzenie jakichkolwiek katalogów"
 
-#: ../libsvn_wc/util.c:284
+#: ../libsvn_wc/util.c:296
 #, c-format
 msgid "Cannot find a URL for '%s'"
 msgstr "Nie można znaleźć URL-u dla '%s'"
 
-#: ../svn/blame-cmd.c:261 ../svn/list-cmd.c:230
+#: ../svn/blame-cmd.c:261 ../svn/list-cmd.c:226
 msgid "'verbose' option invalid in XML mode"
 msgstr "Opcja 'verbose' nie jest prawidłową opcją dla trybu XML"
 
-#: ../svn/blame-cmd.c:273 ../svn/info-cmd.c:508 ../svn/list-cmd.c:242
+#: ../svn/blame-cmd.c:273 ../svn/info-cmd.c:499 ../svn/list-cmd.c:238
 #: ../svn/status-cmd.c:209
 msgid "'incremental' option only valid in XML mode"
 msgstr "Opcja 'incremental' jest prawidłowa tylko w trybie XML"
@@ -6651,7 +6616,7 @@ msgstr "Opcja 'incremental' jest prawidÅ
 msgid "Skipping binary file: '%s'\n"
 msgstr "Pomijanie binarnego pliku: '%s'\n"
 
-#: ../svn/changelist-cmd.c:58 ../svn/main.c:1528
+#: ../svn/changelist-cmd.c:53 ../svn/main.c:1529
 msgid "Changelist names must not be empty"
 msgstr "Nazwy list zmian nie mogą być puste"
 
@@ -6660,90 +6625,90 @@ msgstr "Nazwy list zmian nie mogą być 
 msgid "'%s' does not appear to be a URL"
 msgstr "'%s' nie wyglÄ…da na URL"
 
-#: ../svn/conflict-callbacks.c:146
+#: ../svn/conflict-callbacks.c:143
 msgid "||||||| ORIGINAL"
 msgstr "||||||| ORYGINALNE"
 
-#: ../svn/conflict-callbacks.c:147
+#: ../svn/conflict-callbacks.c:144
 msgid "<<<<<<< MINE (select with 'mc')"
 msgstr "<<<<<<< MOJE (wybierz przy użyciu 'mc')"
 
-#: ../svn/conflict-callbacks.c:148
+#: ../svn/conflict-callbacks.c:145
 msgid ">>>>>>> THEIRS (select with 'tc')"
 msgstr ">>>>>>> ICH (wybierz przy użyciu 'tc')"
 
-#: ../svn/conflict-callbacks.c:180
+#: ../svn/conflict-callbacks.c:177
 msgid "No editor found."
 msgstr "Nie znaleziono edytora."
 
-#: ../svn/conflict-callbacks.c:187
+#: ../svn/conflict-callbacks.c:184
 msgid "Error running editor."
 msgstr "BÅ‚Ä…d podczas uruchamiania edytora."
 
-#: ../svn/conflict-callbacks.c:197
+#: ../svn/conflict-callbacks.c:194
 #, c-format
 msgid ""
 "Invalid option; there's no merged version to edit.\n"
 "\n"
 msgstr "Niepoprawna opcja. Nie ma połączonej wersji do edytowania.\n"
 
-#: ../svn/conflict-callbacks.c:227
+#: ../svn/conflict-callbacks.c:224
 msgid "No merge tool found.\n"
 msgstr "Nie znaleziono narzędzia łączenia zmian.\n"
 
-#: ../svn/conflict-callbacks.c:234
+#: ../svn/conflict-callbacks.c:231
 msgid "Error running merge tool."
 msgstr "Błąd podczas uruchamiania narzędzia łączenia zmian."
 
-#: ../svn/conflict-callbacks.c:304
+#: ../svn/conflict-callbacks.c:301
 msgid "No editor found; leaving all conflicts."
 msgstr "Nie znaleziono edytora. Pozostawiono wszystkie konflikty."
 
-#: ../svn/conflict-callbacks.c:313
+#: ../svn/conflict-callbacks.c:310
 msgid "Error running editor; leaving all conflicts."
 msgstr "BÅ‚Ä…d podczas uruchamiania edytora. Pozostawiono wszystkie konflikty."
 
-#: ../svn/conflict-callbacks.c:345
+#: ../svn/conflict-callbacks.c:342
 msgid "No merge tool found; leaving all conflicts."
 msgstr "Nie znaleziono narzędzia łączenia zmian. Pozostawiono wszystkie \
konflikty."  
-#: ../svn/conflict-callbacks.c:354
+#: ../svn/conflict-callbacks.c:351
 msgid "Error running merge tool; leaving all conflicts."
 msgstr "Błąd podczas uruchamiania narzędzia łączenia zmian. Pozostawiono \
wszystkie konflikty."  
-#: ../svn/conflict-callbacks.c:395
+#: ../svn/conflict-callbacks.c:392
 #, c-format
 msgid "Conflict discovered in '%s'.\n"
 msgstr "Odkryto konflikt w '%s'.\n"
 
-#: ../svn/conflict-callbacks.c:400
+#: ../svn/conflict-callbacks.c:397
 #, c-format
 msgid "Conflict for property '%s' discovered on '%s'.\n"
 msgstr "Konflikt atrybutu dla '%s' odkryty na '%s'.\n"
 
-#: ../svn/conflict-callbacks.c:417
+#: ../svn/conflict-callbacks.c:414
 #, c-format
 msgid "They want to delete the property, you want to change the value to '%s'.\n"
 msgstr "Oni chcą usunąć atrybut, a ty chcesz zmienić jego wartość na '%s'.\n"
 
-#: ../svn/conflict-callbacks.c:426
+#: ../svn/conflict-callbacks.c:423
 #, c-format
 msgid "They want to change the property value to '%s', you want to delete the \
property.\n"  msgstr "Oni chcą zmienić wartości atrybutu na '%s', a ty chcesz \
usunąć ten atrybut.\n"  
-#: ../svn/conflict-callbacks.c:448
+#: ../svn/conflict-callbacks.c:445
 msgid "Select: (p) postpone"
 msgstr "Wybierz: (p) odłóż"
 
-#: ../svn/conflict-callbacks.c:453
+#: ../svn/conflict-callbacks.c:450
 msgid ", (df) diff-full, (e) edit"
 msgstr ", (df) pokaż różnice w całości, (e) zmień"
 
-#: ../svn/conflict-callbacks.c:457 ../svn/conflict-callbacks.c:470
+#: ../svn/conflict-callbacks.c:454 ../svn/conflict-callbacks.c:467
 msgid ", (r) resolved"
 msgstr ", (r) oznacz jako rozwiÄ…zane"
 
-#: ../svn/conflict-callbacks.c:463
+#: ../svn/conflict-callbacks.c:460
 msgid ""
 ",\n"
 "        (mc) mine-conflict, (tc) theirs-conflict"
@@ -6751,7 +6716,7 @@ msgstr ""
 ",\n"
 "        (mc) moje rozwiązanie konfliktów, (tc) ich rozwiązanie konfliktów"
 
-#: ../svn/conflict-callbacks.c:473
+#: ../svn/conflict-callbacks.c:470
 msgid ""
 ",\n"
 "        (mf) mine-full, (tf) theirs-full"
@@ -6759,11 +6724,11 @@ msgstr ""
 ",\n"
 "        (mf) moje w całości, (tf) ich w całości"
 
-#: ../svn/conflict-callbacks.c:480
+#: ../svn/conflict-callbacks.c:477
 msgid "(s) show all options: "
 msgstr "(s) pokaż wszystkie opcje: "
 
-#: ../svn/conflict-callbacks.c:488
+#: ../svn/conflict-callbacks.c:485
 #, c-format
 msgid ""
 "\n"
@@ -6800,7 +6765,7 @@ msgstr ""
 "  (s)  pokaż wszystkie             - pokaż tę listę\n"
 "\n"
 
-#: ../svn/conflict-callbacks.c:523 ../svn/conflict-callbacks.c:547
+#: ../svn/conflict-callbacks.c:520 ../svn/conflict-callbacks.c:544
 #, c-format
 msgid ""
 "Invalid option; cannot choose based on conflicts in a binary file.\n"
@@ -6809,7 +6774,7 @@ msgstr ""
 "Niepoprawna opcja. Nie można dokonać wyboru opierającego się na konfliktach w \
pliku binarnym.\n"  "\n"
 
-#: ../svn/conflict-callbacks.c:531 ../svn/conflict-callbacks.c:555
+#: ../svn/conflict-callbacks.c:528 ../svn/conflict-callbacks.c:552
 #, c-format
 msgid ""
 "Invalid option; cannot choose based on conflicts for properties.\n"
@@ -6818,7 +6783,7 @@ msgstr ""
 "Niepoprawna opcja. Nie można dokonać wyboru opierającego się na konfliktach \
atrybutów.\n"  "\n"
 
-#: ../svn/conflict-callbacks.c:584
+#: ../svn/conflict-callbacks.c:581
 #, c-format
 msgid ""
 "Invalid option; cannot display conflicts for a binary file.\n"
@@ -6827,7 +6792,7 @@ msgstr ""
 "Niepoprawna opcja. Nie można wyświetlić konfliktów w pliku binarnym.\n"
 "\n"
 
-#: ../svn/conflict-callbacks.c:592
+#: ../svn/conflict-callbacks.c:589
 #, c-format
 msgid ""
 "Invalid option; cannot display conflicts for properties.\n"
@@ -6836,7 +6801,7 @@ msgstr ""
 "Niepoprawna opcja. Nie można wyświetlić konfliktów atrybutów.\n"
 "\n"
 
-#: ../svn/conflict-callbacks.c:600
+#: ../svn/conflict-callbacks.c:597
 #, c-format
 msgid ""
 "Invalid option; original files not available.\n"
@@ -6845,14 +6810,14 @@ msgstr ""
 "Niepoprawna opcja. Oryginalne pliki niedostępne.\n"
 "\n"
 
-#: ../svn/conflict-callbacks.c:612
+#: ../svn/conflict-callbacks.c:609
 #, c-format
 msgid ""
 "Invalid option; there's no merged version to diff.\n"
 "\n"
 msgstr "Niepoprawna opcja. Nie ma połączonej wersji do obliczenia różnicy.\n"
 
-#: ../svn/conflict-callbacks.c:637 ../svn/conflict-callbacks.c:651
+#: ../svn/conflict-callbacks.c:634 ../svn/conflict-callbacks.c:648
 #, c-format
 msgid ""
 "Invalid option.\n"
@@ -6861,7 +6826,7 @@ msgstr ""
 "Błędna opcja.\n"
 "\n"
 
-#: ../svn/conflict-callbacks.c:681
+#: ../svn/conflict-callbacks.c:678
 #, c-format
 msgid ""
 "Conflict discovered when trying to add '%s'.\n"
@@ -6870,11 +6835,11 @@ msgstr ""
 "Odkryto konflikt podczas próbowania dodawania '%s'.\n"
 "Obiekt o tej samej nazwie już istnieje.\n"
 
-#: ../svn/conflict-callbacks.c:684
+#: ../svn/conflict-callbacks.c:681
 msgid "Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (h) help:"
 msgstr "Wybierz: (p) odłóż, (mf) moja wersja w całości, (tf) ich wersja w \
całości, (h) pomoc:"  
-#: ../svn/conflict-callbacks.c:696
+#: ../svn/conflict-callbacks.c:693
 #, c-format
 msgid ""
 "  (p)  postpone    - resolve the conflict later\n"
@@ -6982,173 +6947,169 @@ msgstr "Niewłaściwy URL '%s'"
 msgid "Resource is not under version control."
 msgstr "Zasób nie podlega zarządzaniu wersjami."
 
-#: ../svn/info-cmd.c:240 ../svnadmin/main.c:1262
+#: ../svn/info-cmd.c:235 ../svnadmin/main.c:1262
 #, c-format
 msgid "Path: %s\n"
 msgstr "Ścieżka: %s\n"
 
-#: ../svn/info-cmd.c:246
+#: ../svn/info-cmd.c:241
 #, c-format
 msgid "Name: %s\n"
 msgstr "Nazwa: %s\n"
 
-#: ../svn/info-cmd.c:250
+#: ../svn/info-cmd.c:245
 #, c-format
 msgid "URL: %s\n"
 msgstr "URL: %s\n"
 
-#: ../svn/info-cmd.c:253
+#: ../svn/info-cmd.c:248
 #, c-format
 msgid "Repository Root: %s\n"
 msgstr "Katalog główny repozytorium: %s\n"
 
-#: ../svn/info-cmd.c:257
+#: ../svn/info-cmd.c:252
 #, c-format
 msgid "Repository UUID: %s\n"
 msgstr "UUID repozytorium: %s\n"
 
-#: ../svn/info-cmd.c:261
+#: ../svn/info-cmd.c:256
 #, c-format
 msgid "Revision: %ld\n"
 msgstr "Wersja: %ld\n"
 
-#: ../svn/info-cmd.c:266
+#: ../svn/info-cmd.c:261
 #, c-format
 msgid "Node Kind: file\n"
 msgstr "Rodzaj obiektu: plik\n"
 
-#: ../svn/info-cmd.c:270
+#: ../svn/info-cmd.c:265
 #, c-format
 msgid "Node Kind: directory\n"
 msgstr "Rodzaj obiektu: katalog\n"
 
-#: ../svn/info-cmd.c:274
+#: ../svn/info-cmd.c:269
 #, c-format
 msgid "Node Kind: none\n"
 msgstr "Rodzaj obiektu: brak\n"
 
-#: ../svn/info-cmd.c:279
+#: ../svn/info-cmd.c:274
 #, c-format
 msgid "Node Kind: unknown\n"
 msgstr "Rodzaj obiektu: nieznany\n"
 
-#: ../svn/info-cmd.c:288
+#: ../svn/info-cmd.c:283
 #, c-format
 msgid "Schedule: normal\n"
 msgstr "Zlecenie: normalne\n"
 
-#: ../svn/info-cmd.c:292
+#: ../svn/info-cmd.c:287
 #, c-format
 msgid "Schedule: add\n"
 msgstr "Zlecenie: dodaj\n"
 
-#: ../svn/info-cmd.c:296
+#: ../svn/info-cmd.c:291
 #, c-format
 msgid "Schedule: delete\n"
 msgstr "Zlecenie: skasuj\n"
 
-#: ../svn/info-cmd.c:300
+#: ../svn/info-cmd.c:295
 #, c-format
 msgid "Schedule: replace\n"
 msgstr "Zlecenie: zastÄ…p\n"
 
-#: ../svn/info-cmd.c:316
+#: ../svn/info-cmd.c:311
 #, c-format
 msgid "Depth: empty\n"
 msgstr "Głębokość: pusta\n"
 
-#: ../svn/info-cmd.c:320
+#: ../svn/info-cmd.c:315
 #, c-format
 msgid "Depth: files\n"
 msgstr "Głębokość: pliki\n"
 
-#: ../svn/info-cmd.c:324
+#: ../svn/info-cmd.c:319
 #, c-format
 msgid "Depth: immediates\n"
 msgstr "Głębokość: bezpośrednie\n"
 
 #. Other depths should never happen here.
-#: ../svn/info-cmd.c:335
+#: ../svn/info-cmd.c:330
 #, c-format
 msgid "Depth: INVALID\n"
 msgstr "GÅ‚Ä™bokość: NIEWÅAÅšCIWA\n"
 
-#: ../svn/info-cmd.c:339
+#: ../svn/info-cmd.c:334
 #, c-format
 msgid "Copied From URL: %s\n"
 msgstr "Skopiowane z URL-u: %s\n"
 
-#: ../svn/info-cmd.c:343
+#: ../svn/info-cmd.c:338
 #, c-format
 msgid "Copied From Rev: %ld\n"
 msgstr "Skopiowane z wersji: %ld\n"
 
-#: ../svn/info-cmd.c:348
+#: ../svn/info-cmd.c:343
 #, c-format
 msgid "Last Changed Author: %s\n"
 msgstr "Autor ostatniej zmiany: %s\n"
 
-#: ../svn/info-cmd.c:352
+#: ../svn/info-cmd.c:347
 #, c-format
 msgid "Last Changed Rev: %ld\n"
 msgstr "Ostatnio zmieniona wersja: %ld\n"
 
-#: ../svn/info-cmd.c:357
+#: ../svn/info-cmd.c:352
 msgid "Last Changed Date"
 msgstr "Data ostatniej zmiany"
 
-#: ../svn/info-cmd.c:363
+#: ../svn/info-cmd.c:358
 msgid "Text Last Updated"
 msgstr "Treść ostatnio aktualizowana"
 
-#: ../svn/info-cmd.c:367
-msgid "Properties Last Updated"
-msgstr "Atrybuty ostatnio aktualizowane"
-
-#: ../svn/info-cmd.c:370
+#: ../svn/info-cmd.c:361
 #, c-format
 msgid "Checksum: %s\n"
 msgstr "Suma kontrolna: %s\n"
 
-#: ../svn/info-cmd.c:375
+#: ../svn/info-cmd.c:366
 #, c-format
 msgid "Conflict Previous Base File: %s\n"
 msgstr "Wersja bazowa pliku w chwili wystÄ…pienia konfliktu: %s\n"
 
-#: ../svn/info-cmd.c:381
+#: ../svn/info-cmd.c:372
 #, c-format
 msgid "Conflict Previous Working File: %s\n"
 msgstr "Wersja robocza pliku w chwili wystÄ…pienia konfliktu: %s\n"
 
-#: ../svn/info-cmd.c:386
+#: ../svn/info-cmd.c:377
 #, c-format
 msgid "Conflict Current Base File: %s\n"
 msgstr "Wersja bieżąca (repozytorialna) pliku w chwili wystąpienia konfliktu: \
%s\n"  
-#: ../svn/info-cmd.c:391
+#: ../svn/info-cmd.c:382
 #, c-format
 msgid "Conflict Properties File: %s\n"
 msgstr "Plik z opisem konfliktu atrybutów: %s\n"
 
-#: ../svn/info-cmd.c:399
+#: ../svn/info-cmd.c:390
 #, c-format
 msgid "Lock Token: %s\n"
 msgstr "Żeton blokady: %s\n"
 
-#: ../svn/info-cmd.c:403
+#: ../svn/info-cmd.c:394
 #, c-format
 msgid "Lock Owner: %s\n"
 msgstr "Właściciel blokady: %s\n"
 
-#: ../svn/info-cmd.c:408
+#: ../svn/info-cmd.c:399
 msgid "Lock Created"
 msgstr "Blokada została utworzona"
 
-#: ../svn/info-cmd.c:412
+#: ../svn/info-cmd.c:403
 msgid "Lock Expires"
 msgstr "Blokada wygasła"
 
-#: ../svn/info-cmd.c:420
+#: ../svn/info-cmd.c:411
 #, c-format
 msgid ""
 "Lock Comment (%i line):\n"
@@ -7166,24 +7127,24 @@ msgstr[2] ""
 "Opis blokady (%i linii):\n"
 "%s\n"
 
-#: ../svn/info-cmd.c:429
+#: ../svn/info-cmd.c:420
 #, c-format
 msgid "Changelist: %s\n"
 msgstr "Lista zmian: %s\n"
 
-#: ../svn/info-cmd.c:445
+#: ../svn/info-cmd.c:436
 msgid "Tree conflict"
 msgstr "Konflikt drzewny"
 
-#: ../svn/info-cmd.c:451
+#: ../svn/info-cmd.c:442
 msgid "Source  left"
 msgstr "Źródło  lewe"
 
-#: ../svn/info-cmd.c:460
+#: ../svn/info-cmd.c:451
 msgid "Source right"
 msgstr "Źródło prawe"
 
-#: ../svn/info-cmd.c:545
+#: ../svn/info-cmd.c:536
 #, c-format
 msgid ""
 "%s:  (Not a versioned resource)\n"
@@ -7192,7 +7153,7 @@ msgstr ""
 "%s:  (Obiekt niepodlegajÄ…cy zarzÄ…dzaniu wersjami)\n"
 "\n"
 
-#: ../svn/info-cmd.c:552
+#: ../svn/info-cmd.c:543
 #, c-format
 msgid ""
 "%s:  (Not a valid URL)\n"
@@ -7201,11 +7162,11 @@ msgstr ""
 "%s:  (Niewłaściwy URL)\n"
 "\n"
 
-#: ../svn/list-cmd.c:90
+#: ../svn/list-cmd.c:86
 msgid "%b %d %H:%M"
 msgstr "%m-%d %H:%M"
 
-#: ../svn/list-cmd.c:95
+#: ../svn/list-cmd.c:91
 msgid "%b %d  %Y"
 msgstr "%Y-%m-%d "
 
@@ -7213,15 +7174,15 @@ msgstr "%Y-%m-%d "
 msgid "Lock comment contains a zero byte"
 msgstr "Opis dla zakładanej blokady zawiera bajt zerowy"
 
-#: ../svn/log-cmd.c:176
+#: ../svn/log-cmd.c:172
 msgid "(no author)"
 msgstr "(brak autora)"
 
-#: ../svn/log-cmd.c:182
+#: ../svn/log-cmd.c:178
 msgid "(no date)"
 msgstr "(brak daty)"
 
-#: ../svn/log-cmd.c:195
+#: ../svn/log-cmd.c:191
 #, c-format
 msgid " | %d line"
 msgid_plural " | %d lines"
@@ -7229,43 +7190,43 @@ msgstr[0] " | %d linia"
 msgstr[1] " | %d linie"
 msgstr[2] " | %d linii"
 
-#: ../svn/log-cmd.c:211
+#: ../svn/log-cmd.c:207
 #, c-format
 msgid "Changed paths:\n"
 msgstr "Zmodyfikowane ścieżki:\n"
 
-#: ../svn/log-cmd.c:226
+#: ../svn/log-cmd.c:222
 #, c-format
 msgid " (from %s:%ld)"
 msgstr " (z %s:%ld)"
 
 #. Print the result of merge line
-#: ../svn/log-cmd.c:241
+#: ../svn/log-cmd.c:237
 #, c-format
 msgid "Merged via:"
 msgstr "Połączone via:"
 
-#: ../svn/log-cmd.c:451
+#: ../svn/log-cmd.c:446
 msgid "'with-all-revprops' option only valid in XML mode"
 msgstr "Opcja 'with-all-revprops' jest prawidłowa tylko w trybie XML"
 
-#: ../svn/log-cmd.c:455
+#: ../svn/log-cmd.c:450
 msgid "'with-no-revprops' option only valid in XML mode"
 msgstr "Opcja 'with-no-revprops' jest prawidłowa tylko w trybie XML"
 
-#: ../svn/log-cmd.c:459
+#: ../svn/log-cmd.c:454
 msgid "'with-revprop' option only valid in XML mode"
 msgstr "Opcja 'with-revprop' jest prawidłowa tylko w trybie XML"
 
-#: ../svn/log-cmd.c:479
+#: ../svn/log-cmd.c:474
 msgid "-c and -r are mutually exclusive"
 msgstr "Opcje -c i -r nie mogą występować równocześnie"
 
-#: ../svn/log-cmd.c:505
+#: ../svn/log-cmd.c:500
 msgid "Only relative paths can be specified after a URL"
 msgstr "Po podaniu URL-u mogą występować tylko względne ścieżki"
 
-#: ../svn/log-cmd.c:557
+#: ../svn/log-cmd.c:546
 #, c-format
 msgid "cannot assign with 'with-revprop' option (drop the '=')"
 msgstr "nie można przypisać opcji 'with-revprop' (pomiń '=')"
@@ -8415,6 +8376,7 @@ msgid ""
 "      LastChangedRevision\n"
 "      Id                       - A compressed summary of the previous\n"
 "                                   4 keywords.\n"
+"      Header                   - Similar to Id but includes the full URL.\n"
 "    svn:executable - If present, make the file executable.  Use\n"
 "      'svn propdel svn:executable PATH...' to clear.\n"
 "    svn:eol-style  - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -8475,7 +8437,8 @@ msgstr ""
 "      Date, LastChangedDate    - Data i czas ostatniej zmiany.\n"
 "      Rev, Revision,           - Wersja ostatniej zmiany.\n"
 "      LastChangedRevision\n"
-"      Id                       - Zwarty zapis łączący powyższe 4informacje.\n"
+"      Id                       - Zwarty zapis łączący powyższe 4 informacje.\n"
+"      Header                   - Podobne do Id, ale zawiera pełny URL.\n"
 "    svn:executable - Jeśli obecne, wskazuje, że plik jest być wykonywalny.\n"
 "      By wyczyścić to, użyj 'svn propdel svn:executable ŚCIEŻKA...'\n"
 "    svn:eol-style  - Sposób zapisywania końca wierszy, jedno z 'native'\n"
@@ -8515,11 +8478,11 @@ msgstr ""
 "  a uruchomienie z opcjÄ… --recursive spowoduje ustawienie atrybutu dla\n"
 "  wszystkich plików w tym katalogu.\n"
 
-#: ../svn/main.c:786
+#: ../svn/main.c:787
 msgid "read property value from file ARG"
 msgstr "odczytaj wartość atrybutu z pliku ARG"
 
-#: ../svn/main.c:789
+#: ../svn/main.c:790
 msgid ""
 "Resolve conflicts on working copy files or directories.\n"
 "usage: resolve --accept=ARG [PATH...]\n"
@@ -8531,7 +8494,7 @@ msgstr ""
 "\n"
 "  Uwaga: opcja --accept jest obecnie wymagana.\n"
 
-#: ../svn/main.c:794
+#: ../svn/main.c:795
 msgid ""
 "specify automatic conflict resolution source\n"
 "                            ('base', 'working', 'mine-conflict',\n"
@@ -8541,7 +8504,7 @@ msgstr ""
 "                            ('base', 'working', 'mine-conflict',\n"
 "                             'theirs-conflict', 'mine-full', 'theirs-full')"
 
-#: ../svn/main.c:801
+#: ../svn/main.c:802
 msgid ""
 "Remove 'conflicted' state on working copy files or directories.\n"
 "usage: resolved PATH...\n"
@@ -8560,7 +8523,7 @@ msgstr ""
 "  możliwość zatwierdzenia zmian. To polecenie jest przestarzałe - zamiast\n"
 "  niego należy używać 'svn resolve --accept working'.\n"
 
-#: ../svn/main.c:811
+#: ../svn/main.c:812
 msgid ""
 "Restore pristine working copy file (undo most local edits).\n"
 "usage: revert PATH...\n"
@@ -8576,7 +8539,7 @@ msgstr ""
 "  rozwiązuje wszelkie konflikty. Jednak nie może ono odtworzyć skasowanych\n"
 "  katalogów.\n"
 
-#: ../svn/main.c:819
+#: ../svn/main.c:820
 msgid ""
 "Print the status of working copy files and directories.\n"
 "usage: status [PATH...]\n"
@@ -8753,7 +8716,7 @@ msgstr ""
 "          >   przychodzÄ…ce: modyfikacja, lokalne: brak\n"
 "    D       wc/qax.c\n"
 
-#: ../svn/main.c:907
+#: ../svn/main.c:908
 msgid ""
 "Update the working copy to a different URL.\n"
 "usage: 1. switch URL[@PEGREV] [PATH]\n"
@@ -8824,7 +8787,7 @@ msgstr ""
 "  Zobacz też listę możliwych znaków informujących o przeprowadzonej\n"
 "  akcji w 'svn help update'.\n"
 
-#: ../svn/main.c:944
+#: ../svn/main.c:945
 msgid ""
 "Unlock working copy paths or URLs.\n"
 "usage: unlock TARGET...\n"
@@ -8836,7 +8799,7 @@ msgstr ""
 "\n"
 "  Użyj opcję --force, aby zerwać blokadę.\n"
 
-#: ../svn/main.c:951
+#: ../svn/main.c:952
 msgid ""
 "Bring changes from the repository into the working copy.\n"
 "usage: update [PATH...]\n"
@@ -8916,83 +8879,83 @@ msgstr ""
 "  tej operacji. Obecnie głębokość kopii roboczej może być tylko \
zwiększona.\n"  "  Nie można uczynić katalogu bardziej płytkim.\n"
 
-#: ../svn/main.c:1031 ../svnadmin/main.c:80 ../svnlook/main.c:341
+#: ../svn/main.c:1032 ../svnadmin/main.c:80 ../svnlook/main.c:341
 #: ../svnsync/main.c:202
 msgid "Caught signal"
 msgstr "Złapano sygnał"
 
-#: ../svn/main.c:1077
+#: ../svn/main.c:1078
 msgid "Invalid syntax of argument of --config-option"
 msgstr "Nieprawidłowa składnia argumentu --config-option"
 
-#: ../svn/main.c:1197 ../svnlook/main.c:2196
+#: ../svn/main.c:1198 ../svnlook/main.c:2196
 msgid "Non-numeric limit argument given"
 msgstr "Nienumeryczny argument określający limit podany"
 
-#: ../svn/main.c:1203 ../svnlook/main.c:2202
+#: ../svn/main.c:1204 ../svnlook/main.c:2202
 msgid "Argument to --limit must be positive"
 msgstr "Argument dla --limit musi być dodatni"
 
-#: ../svn/main.c:1227 ../svn/main.c:1472
+#: ../svn/main.c:1228 ../svn/main.c:1473
 msgid "Can't specify -c with --old"
 msgstr "Nie można użyć opcji -c wraz z opcją --old"
 
-#: ../svn/main.c:1246
+#: ../svn/main.c:1247
 #, c-format
 msgid "Non-numeric change argument (%s) given to -c"
 msgstr "Nienumeryczny argument (%s) określający zmianę podany do -c"
 
-#: ../svn/main.c:1254
+#: ../svn/main.c:1255
 msgid "There is no change 0"
 msgstr "Nie ma zmiany 0"
 
-#: ../svn/main.c:1290 ../svnadmin/main.c:1537
+#: ../svn/main.c:1291 ../svnadmin/main.c:1537
 #, c-format
 msgid "Syntax error in revision argument '%s'"
 msgstr "Błąd składniowy w numerze wersji '%s'"
 
-#: ../svn/main.c:1363 ../svn/main.c:1382
+#: ../svn/main.c:1364 ../svn/main.c:1383
 #, c-format
 msgid "Error converting depth from locale to UTF-8"
 msgstr "Błąd podczas konwersji głębokości z lokalnego kodowania do UTF-8"
 
-#: ../svn/main.c:1371
+#: ../svn/main.c:1372
 #, c-format
 msgid "'%s' is not a valid depth; try 'empty', 'files', 'immediates', or 'infinity'"
 msgstr "'%s' nie jest prawidłową głębokością. Spróbuj 'empty', 'files', \
'immediates' lub 'infinity'"  
-#: ../svn/main.c:1390
+#: ../svn/main.c:1391
 #, c-format
 msgid "'%s' is not a valid depth; try 'exclude', 'empty', 'files', 'immediates', or \
'infinity'"  msgstr "'%s' nie jest prawidłową głębokością. Spróbuj 'exclude', \
'empty', 'files', 'immediates' lub 'infinity'"  
-#: ../svn/main.c:1509
+#: ../svn/main.c:1510
 #, c-format
 msgid "Syntax error in native-eol argument '%s'"
 msgstr "Błąd składniowy w argumencie native-eol '%s'"
 
-#: ../svn/main.c:1564
+#: ../svn/main.c:1565
 #, c-format
 msgid "'%s' is not a valid --accept value"
 msgstr "'%s' nie jest poprawną wartością opcji --accept"
 
-#: ../svn/main.c:1573
+#: ../svn/main.c:1574
 #, c-format
 msgid "'%s' is not a valid --show-revs value"
 msgstr "'%s' nie jest poprawną wartością opcji --show-revs"
 
-#: ../svn/main.c:1635 ../svndumpfilter/main.c:1325 ../svnlook/main.c:2274
+#: ../svn/main.c:1636 ../svndumpfilter/main.c:1325 ../svnlook/main.c:2274
 #, c-format
 msgid "Subcommand argument required\n"
 msgstr "Podpolecenie wymaga podania argumentu\n"
 
-#: ../svn/main.c:1654 ../svnadmin/main.c:1672 ../svndumpfilter/main.c:1344
+#: ../svn/main.c:1655 ../svnadmin/main.c:1672 ../svndumpfilter/main.c:1344
 #: ../svnlook/main.c:2293
 #, c-format
 msgid "Unknown command: '%s'\n"
 msgstr "Nieznane polecenie: '%s'\n"
 
-#: ../svn/main.c:1688
+#: ../svn/main.c:1689
 #, c-format
 msgid ""
 "Subcommand '%s' doesn't accept option '%s'\n"
@@ -9001,80 +8964,80 @@ msgstr ""
 "Podpolecenie '%s' nie obsługuje opcji '%s'.\n"
 "Użyj 'svn help %s', by uzyskać informacje o użyciu.\n"
 
-#: ../svn/main.c:1703
+#: ../svn/main.c:1704
 msgid "Multiple revision arguments encountered; can't specify -c twice, or both -c \
and -r"  msgstr "Wielokrotnie podano opcję numeru wersji; nie można określić -c \
dwa razy, lub obydwu -c i -r"  
-#: ../svn/main.c:1717
+#: ../svn/main.c:1718
 msgid "-r and -c can't be used with --reintegrate"
 msgstr "-r i -c nie mogą być używane z --reintegrate"
 
-#: ../svn/main.c:1726
+#: ../svn/main.c:1727
 msgid "--depth and --set-depth are mutually exclusive"
 msgstr "Opcje --depth i --set-depth nie mogą występować równocześnie"
 
-#: ../svn/main.c:1736
+#: ../svn/main.c:1737
 msgid "--with-all-revprops and --with-no-revprops are mutually exclusive"
 msgstr "Opcje --with-all-revprops i --with-no-revprops nie mogą występować \
równocześnie"  
-#: ../svn/main.c:1746
+#: ../svn/main.c:1747
 msgid "--with-revprop and --with-no-revprops are mutually exclusive"
 msgstr "Opcje --with-revprop i --with-no-revprops nie mogą występować \
równocześnie"  
-#: ../svn/main.c:1755 ../svnsync/main.c:2067
+#: ../svn/main.c:1756 ../svnsync/main.c:2067
 msgid "--trust-server-cert requires --non-interactive"
 msgstr "--trust-server-cert wymaga --non-interactive"
 
-#: ../svn/main.c:1805
+#: ../svn/main.c:1806
 msgid "Log message file is a versioned file; use '--force-log' to override"
 msgstr "Plik z opisem zmian jest plikiem podlegającym zarządzaniu wersjami; użyj \
'--force-log', by wymusić jego użycie."  
-#: ../svn/main.c:1812
+#: ../svn/main.c:1813
 msgid "Lock comment file is a versioned file; use '--force-log' to override"
 msgstr "Plik z opisem blokady jest plikiem podlegajÄ…cym zarzÄ…dzaniu wersjami; \
użyj '--force-log', by wymusić jego użycie."  
-#: ../svn/main.c:1832
+#: ../svn/main.c:1833
 msgid "The log message is a pathname (was -F intended?); use '--force-log' to \
override"  msgstr "Opis zmian jest ścieżką (chciano użyć -F?); użyj \
--force-log, by wymusić użycie takiego opisu"  
-#: ../svn/main.c:1839
+#: ../svn/main.c:1840
 msgid "The lock comment is a pathname (was -F intended?); use '--force-log' to \
override"  msgstr "Opis blokady jest ścieżką (chciano użyć -F?); użyj \
--force-log, bywymusić użycie takiego opisu"  
-#: ../svn/main.c:1850
+#: ../svn/main.c:1851
 msgid "--relocate and --depth are mutually exclusive"
 msgstr "Opcje --relocate i --depth nie mogą występować równocześnie"
 
-#: ../svn/main.c:1936
+#: ../svn/main.c:1937
 msgid "Unrecognized file in argument of --config-option"
 msgstr "Nierozpoznany plik w argumencie --config-option"
 
-#: ../svn/main.c:1956
+#: ../svn/main.c:1957
 msgid "--auto-props and --no-auto-props are mutually exclusive"
 msgstr "Opcje --auto-props i --no-auto-props nie mogą występować równocześnie"
 
-#: ../svn/main.c:1970
+#: ../svn/main.c:1971
 msgid "--reintegrate cannot be used with --ignore-ancestry or --record-only"
 msgstr "--reintegrate nie może być używane z --ignore-ancestry lub --record-only"
 
-#: ../svn/main.c:1978
+#: ../svn/main.c:1979
 msgid "--reintegrate cannot be used with --ignore-ancestry"
 msgstr "--reintegrate nie może być używane z --ignore-ancestry"
 
-#: ../svn/main.c:1986
+#: ../svn/main.c:1987
 msgid "--reintegrate cannot be used with --record-only"
 msgstr "--reintegrate nie może być używane z --record-only"
 
-#: ../svn/main.c:2100 ../svn/main.c:2106
+#: ../svn/main.c:2101 ../svn/main.c:2107
 #, c-format
 msgid "--accept=%s incompatible with --non-interactive"
 msgstr "--accept=%s jest niekompatybilne z --non-interactive"
 
-#: ../svn/main.c:2133
+#: ../svn/main.c:2134
 msgid "Try 'svn help' for more info"
 msgstr "Użyj 'svn help', by otrzymać dodatkowe instrukcje"
 
-#: ../svn/main.c:2143
+#: ../svn/main.c:2144
 msgid "svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for \
details)\n"  msgstr ""
 "svn: uruchom 'svn cleanup', by usunąć blokady (więcej informacji -\n"
@@ -9148,37 +9111,37 @@ msgstr "  Konflikty drzewne: %u\n"
 msgid "  Skipped paths: %u\n"
 msgstr "  Pominięte ścieżki: %u\n"
 
-#: ../svn/notify.c:148
+#: ../svn/notify.c:153
 #, c-format
 msgid "Skipped missing target: '%s'\n"
 msgstr "Pominięto brakujący obiekt: '%s'\n"
 
-#: ../svn/notify.c:155
+#: ../svn/notify.c:160
 #, c-format
 msgid "Skipped '%s'\n"
 msgstr "Pominięto '%s'\n"
 
-#: ../svn/notify.c:213
+#: ../svn/notify.c:218
 #, c-format
 msgid "Restored '%s'\n"
 msgstr "Odtworzono '%s'\n"
 
-#: ../svn/notify.c:219
+#: ../svn/notify.c:224
 #, c-format
 msgid "Reverted '%s'\n"
 msgstr "Wycofano zmiany w '%s'\n"
 
-#: ../svn/notify.c:225
+#: ../svn/notify.c:230
 #, c-format
 msgid "Failed to revert '%s' -- try updating instead.\n"
 msgstr "Błąd wycofania zmian w '%s' -- spróbuj aktualizacji.\n"
 
-#: ../svn/notify.c:233
+#: ../svn/notify.c:238
 #, c-format
 msgid "Resolved conflicted state of '%s'\n"
 msgstr "RozwiÄ…zano konflikt w '%s'\n"
 
-#: ../svn/notify.c:313
+#: ../svn/notify.c:318
 #, c-format
 msgid ""
 "\n"
@@ -9187,82 +9150,82 @@ msgstr ""
 "\n"
 "Pobieranie zewnętrznego obiektu do '%s'\n"
 
-#: ../svn/notify.c:341
+#: ../svn/notify.c:346
 #, c-format
 msgid "Error handling externals definition for '%s':"
 msgstr "Błąd podczas obsługi zewnętrznej definicji dla '%s':"
 
-#: ../svn/notify.c:359
+#: ../svn/notify.c:364
 #, c-format
 msgid "Exported external at revision %ld.\n"
 msgstr "Wyeksportowano obiekt zewnętrzny w wersji %ld.\n"
 
-#: ../svn/notify.c:360
+#: ../svn/notify.c:365
 #, c-format
 msgid "Exported revision %ld.\n"
 msgstr "Wyeksportowano wersjÄ™ %ld.\n"
 
-#: ../svn/notify.c:368
+#: ../svn/notify.c:373
 #, c-format
 msgid "Checked out external at revision %ld.\n"
 msgstr "Pobrano do kopii roboczej obiekt zewnętrzny w wersji %ld.\n"
 
-#: ../svn/notify.c:369
+#: ../svn/notify.c:374
 #, c-format
 msgid "Checked out revision %ld.\n"
 msgstr "Pobrano wersjÄ™ %ld.\n"
 
-#: ../svn/notify.c:379
+#: ../svn/notify.c:384
 #, c-format
 msgid "Updated external to revision %ld.\n"
 msgstr "Uaktualniono obiekt zewnętrzny do wersji %ld.\n"
 
-#: ../svn/notify.c:380
+#: ../svn/notify.c:385
 #, c-format
 msgid "Updated to revision %ld.\n"
 msgstr "Uaktualniono do wersji %ld.\n"
 
-#: ../svn/notify.c:388
+#: ../svn/notify.c:393
 #, c-format
 msgid "External at revision %ld.\n"
 msgstr "Obiekt zewnętrzny w wersji %ld.\n"
 
-#: ../svn/notify.c:389
+#: ../svn/notify.c:394
 #, c-format
 msgid "At revision %ld.\n"
 msgstr "W wersji %ld.\n"
 
-#: ../svn/notify.c:401
+#: ../svn/notify.c:406
 #, c-format
 msgid "External export complete.\n"
 msgstr "Eksport obiektów zewnętrznych wykonany.\n"
 
-#: ../svn/notify.c:402
+#: ../svn/notify.c:407
 #, c-format
 msgid "Export complete.\n"
 msgstr "Eksport wykonany.\n"
 
-#: ../svn/notify.c:409
+#: ../svn/notify.c:414
 #, c-format
 msgid "External checkout complete.\n"
 msgstr "Pobieranie obiektów zewnętrznych do kopii roboczej wykonane.\n"
 
-#: ../svn/notify.c:410
+#: ../svn/notify.c:415
 #, c-format
 msgid "Checkout complete.\n"
 msgstr "Pobieranie kopii roboczej wykonane.\n"
 
-#: ../svn/notify.c:417
+#: ../svn/notify.c:422
 #, c-format
 msgid "External update complete.\n"
 msgstr "Uaktualnienie obiektów zewnętrznych wykonane.\n"
 
-#: ../svn/notify.c:418
+#: ../svn/notify.c:423
 #, c-format
 msgid "Update complete.\n"
 msgstr "Uaktualnienie wykonane.\n"
 
-#: ../svn/notify.c:450
+#: ../svn/notify.c:455
 #, c-format
 msgid ""
 "\n"
@@ -9271,127 +9234,127 @@ msgstr ""
 "\n"
 "Pobieranie statusu obiektu zewnętrznego '%s'\n"
 
-#: ../svn/notify.c:458
+#: ../svn/notify.c:463
 #, c-format
 msgid "Status against revision: %6ld\n"
 msgstr "Status względem wersji: %6ld\n"
 
-#: ../svn/notify.c:466
+#: ../svn/notify.c:471
 #, c-format
 msgid "Sending        %s\n"
 msgstr "Wysyłanie       %s\n"
 
-#: ../svn/notify.c:475
+#: ../svn/notify.c:480
 #, c-format
 msgid "Adding  (bin)  %s\n"
 msgstr "Dodawanie (bin) %s\n"
 
-#: ../svn/notify.c:482
+#: ../svn/notify.c:487
 #, c-format
 msgid "Adding         %s\n"
 msgstr "Dodawanie       %s\n"
 
-#: ../svn/notify.c:489
+#: ../svn/notify.c:494
 #, c-format
 msgid "Deleting       %s\n"
 msgstr "Usuwanie        %s\n"
 
-#: ../svn/notify.c:496
+#: ../svn/notify.c:501
 #, c-format
 msgid "Replacing      %s\n"
 msgstr "Zastępowanie    %s\n"
 
-#: ../svn/notify.c:506 ../svnsync/main.c:920
+#: ../svn/notify.c:511 ../svnsync/main.c:920
 #, c-format
 msgid "Transmitting file data "
 msgstr "Przesyłanie treści pliku"
 
-#: ../svn/notify.c:515
+#: ../svn/notify.c:520
 #, c-format
 msgid "'%s' locked by user '%s'.\n"
 msgstr "'%s' zablokowane przez użytkownika '%s'.\n"
 
-#: ../svn/notify.c:521
+#: ../svn/notify.c:526
 #, c-format
 msgid "'%s' unlocked.\n"
 msgstr "'%s' odblokowane.\n"
 
-#: ../svn/notify.c:532
+#: ../svn/notify.c:537
 #, c-format
 msgid "Path '%s' is now a member of changelist '%s'.\n"
 msgstr "Ścieżka '%s' jest teraz członkiem listy zmian '%s'.\n"
 
-#: ../svn/notify.c:540
+#: ../svn/notify.c:545
 #, c-format
 msgid "Path '%s' is no longer a member of a changelist.\n"
 msgstr "Ścieżka '%s' już nie jest członkiem listy zmian.\n"
 
-#: ../svn/notify.c:553
+#: ../svn/notify.c:558
 #, c-format
 msgid "--- Merging differences between repository URLs into '%s':\n"
 msgstr "--- ÅÄ…czenie zmian nastÄ…piÅ‚ych pomiÄ™dzy URL-ami repozytorium do \
'%s':\n"  
-#: ../svn/notify.c:558
+#: ../svn/notify.c:563
 #, c-format
 msgid "--- Merging r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie zmian nastÄ…piÅ‚ych w r%ld do '%s':\n"
 
-#: ../svn/notify.c:562
+#: ../svn/notify.c:567
 #, c-format
 msgid "--- Reverse-merging r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie odwróconych zmian nastÄ…piÅ‚ych w r%ld do '%s':\n"
 
-#: ../svn/notify.c:566
+#: ../svn/notify.c:571
 #, c-format
 msgid "--- Merging r%ld through r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie zmian nastÄ…piÅ‚ych w od r%ld do r%ld do '%s':\n"
 
-#: ../svn/notify.c:572
+#: ../svn/notify.c:577
 #, c-format
 msgid "--- Reverse-merging r%ld through r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie odwróconych zmian nastÄ…piÅ‚ych w od r%ld do r%ld do \
'%s':\n"  
-#: ../svn/notify.c:583
+#: ../svn/notify.c:588
 #, c-format
 msgid "--- Merging differences between foreign repository URLs into '%s':\n"
 msgstr "--- ÅÄ…czenie zmian nastÄ…piÅ‚ych pomiÄ™dzy URL-ami obcego repozytorium do \
'%s':\n"  
-#: ../svn/notify.c:589
+#: ../svn/notify.c:594
 #, c-format
 msgid "--- Merging (from foreign repository) r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie (z obcego repozytorium) zmian nastÄ…piÅ‚ych w r%ld do \
'%s':\n"  
-#: ../svn/notify.c:594
+#: ../svn/notify.c:599
 #, c-format
 msgid "--- Reverse-merging (from foreign repository) r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie (z obcego repozytorium) odwróconych zmian nastÄ…piÅ‚ych w \
r%ld do '%s':\n"  
-#: ../svn/notify.c:599
+#: ../svn/notify.c:604
 #, c-format
 msgid "--- Merging (from foreign repository) r%ld through r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie (z obcego repozytorium) zmian nastÄ…piÅ‚ych w od r%ld do r%ld \
do '%s':\n"  
-#: ../svn/notify.c:605
+#: ../svn/notify.c:610
 #, c-format
 msgid "--- Reverse-merging (from foreign repository) r%ld through r%ld into '%s':\n"
 msgstr "--- ÅÄ…czenie (z obcego repozytorium) odwróconych zmian nastÄ…piÅ‚ych w od \
r%ld do r%ld do '%s':\n"  
-#: ../svn/notify.c:624
+#: ../svn/notify.c:629
 #, c-format
 msgid "property '%s' set on '%s'\n"
 msgstr "atrybut '%s' ustawiony dla '%s'\n"
 
-#: ../svn/notify.c:632
+#: ../svn/notify.c:637
 #, c-format
 msgid "property '%s' deleted from '%s'.\n"
 msgstr "atrybut '%s' usunięty z '%s'.\n"
 
-#: ../svn/notify.c:640
+#: ../svn/notify.c:645
 #, c-format
 msgid "property '%s' set on repository revision %ld\n"
 msgstr "atrybut '%s' ustawiony dla wersji %ld\n"
 
-#: ../svn/notify.c:648
+#: ../svn/notify.c:653
 #, c-format
 msgid "property '%s' deleted from repository revision %ld\n"
 msgstr "atrybut '%s' usunięty z repozytorium w wersji %ld\n"
@@ -9654,7 +9617,7 @@ msgstr ""
 msgid "Use --force to override this restriction"
 msgstr "Użyj opcję --force, aby obejść to ograniczenie"
 
-#: ../svn/util.c:1023
+#: ../svn/util.c:1023 ../svn/util.c:1056
 msgid "none"
 msgstr "nic"
 
@@ -9666,23 +9629,23 @@ msgstr "katalog"
 msgid "file"
 msgstr "plik"
 
-#: ../svn/util.c:1054
+#: ../svn/util.c:1058
 msgid "update"
 msgstr "aktualizacja"
 
-#: ../svn/util.c:1056
+#: ../svn/util.c:1060
 msgid "switch"
 msgstr "przełączanie"
 
-#: ../svn/util.c:1058
+#: ../svn/util.c:1062
 msgid "merge"
 msgstr "Å‚Ä…czenie zmian"
 
-#: ../svn/util.c:1060
+#: ../svn/util.c:1064
 msgid "unknown operation"
 msgstr "nieznana operacja"
 
-#: ../svn/util.c:1162
+#: ../svn/util.c:1166
 msgid "(invalid date)"
 msgstr "(nieprawidłowa data)"
 
@@ -11170,20 +11133,20 @@ msgstr "Nie można ustawić odłączoneg
 msgid "Can't create thread"
 msgstr "Nie można utworzyć wątku"
 
-#: ../svnserve/serve.c:1757
+#: ../svnserve/serve.c:1737
 msgid "Path is not a string"
 msgstr "Ścieżka nie jest ciągiem znaków"
 
-#: ../svnserve/serve.c:1911
+#: ../svnserve/serve.c:1893
 msgid "Log revprop entry not a string"
 msgstr "Element log revprop nie jest ciągiem znaków"
 
-#: ../svnserve/serve.c:1918
+#: ../svnserve/serve.c:1900
 #, c-format
 msgid "Unknown revprop word '%s' in log command"
 msgstr "Nieznany wyraz '%s' atrybutu wersji w poleceniu log"
 
-#: ../svnserve/serve.c:1934
+#: ../svnserve/serve.c:1916
 msgid "Log path entry not a string"
 msgstr "Element log path nie jest ciągiem znaków"
 

Modified: branches/svnpatch-diff/subversion/svn/copy-cmd.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/svn/copy-cmd.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/svn/copy-cmd.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/svn/copy-cmd.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -131,9 +131,9 @@ svn_cl__copy(apr_getopt_t *os,
     SVN_ERR(svn_cl__make_log_msg_baton(&(ctx->log_msg_baton3), opt_state,
                                        NULL, ctx->config, pool));
 
-  err = svn_client_copy4(&commit_info, sources, dst_path, TRUE,
-                         opt_state->parents, opt_state->revprop_table,
-                         ctx, pool);
+  err = svn_client_copy5(&commit_info, sources, dst_path, TRUE,
+                         opt_state->parents, opt_state->ignore_externals,
+                         opt_state->revprop_table, ctx, pool);
 
   if (ctx->log_msg_func3)
     SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3, err, pool));

Modified: branches/svnpatch-diff/subversion/svn/info-cmd.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/svn/info-cmd.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/svn/info-cmd.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/svn/info-cmd.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -139,11 +139,6 @@ print_info_xml(void *baton,
         svn_cl__xml_tagged_cdata(&sb, pool, "text-updated",
                                  svn_time_to_cstring(info->text_time, pool));
 
-      /* "<prop-updated> xx </prop-updated>" */
-      if (info->prop_time)
-        svn_cl__xml_tagged_cdata(&sb, pool, "prop-updated",
-                                 svn_time_to_cstring(info->prop_time, pool));
-
       /* "<checksum> xx </checksum>" */
       svn_cl__xml_tagged_cdata(&sb, pool, "checksum", info->checksum);
 
@@ -362,10 +357,6 @@ print_info(void *baton,
         SVN_ERR(svn_cl__info_print_time(info->text_time,
                                         _("Text Last Updated"), pool));
 
-      if (info->prop_time)
-        SVN_ERR(svn_cl__info_print_time(info->prop_time,
-                                        _("Properties Last Updated"), pool));
-
       if (info->checksum)
         SVN_ERR(svn_cmdline_printf(pool, _("Checksum: %s\n"),
                                    info->checksum));

Modified: branches/svnpatch-diff/subversion/svn/log-cmd.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/svn/log-cmd.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/svn/log-cmd.c	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/svn/log-cmd.c	Fri Jan 30 16:31:36 2009	(r35609)
@@ -2,7 +2,7 @@
  * log-cmd.c -- Display log messages
  *
  * ====================================================================
- * Copyright (c) 2000-2009 CollabNet.  All rights reserved.
+ * Copyright (c) 2000-2008 CollabNet.  All rights reserved.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
@@ -438,7 +438,6 @@ svn_cl__log(apr_getopt_t *os,
   svn_opt_revision_t peg_revision;
   const char *true_path;
   apr_array_header_t *revprops;
-  svn_client_log_args_t *log_args;
 
   if (!opt_state->xml)
     {
@@ -513,12 +512,6 @@ svn_cl__log(apr_getopt_t *os,
     svn_cl__get_notifier(&ctx->notify_func2, &ctx->notify_baton2, FALSE,
                          FALSE, FALSE, pool);
 
-  log_args = svn_client_log_args_create(pool);
-  log_args->limit = opt_state->limit;
-  log_args->discover_changed_paths = opt_state->verbose;
-  log_args->strict_node_history = opt_state->stop_on_copy;
-  log_args->include_merged_revisions = opt_state->use_merge_history;
-
   if (opt_state->xml)
     {
       /* If output is not incremental, output the XML header and wrap
@@ -566,8 +559,11 @@ svn_cl__log(apr_getopt_t *os,
       SVN_ERR(svn_client_log5(targets,
                               &peg_revision,
                               opt_state->revision_ranges,
+                              opt_state->limit,
+                              opt_state->verbose,
+                              opt_state->stop_on_copy,
+                              opt_state->use_merge_history,
                               revprops,
-                              log_args,
                               log_entry_receiver_xml,
                               &lb,
                               ctx,
@@ -586,8 +582,11 @@ svn_cl__log(apr_getopt_t *os,
       SVN_ERR(svn_client_log5(targets,
                               &peg_revision,
                               opt_state->revision_ranges,
+                              opt_state->limit,
+                              opt_state->verbose,
+                              opt_state->stop_on_copy,
+                              opt_state->use_merge_history,
                               revprops,
-                              log_args,
                               log_entry_receiver,
                               &lb,
                               ctx,

Modified: branches/svnpatch-diff/subversion/svn/main.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/svn/main.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/svn/main.c	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/svn/main.c	Fri Jan 30 16:31:36 2009	(r35609)
@@ -430,7 +430,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
      "contact the repository.  As such, they may not, by default, be able\n"
      "to propagate merge tracking information from the source of the copy\n"
      "to the destination.\n"),
-    {'r', 'q', opt_parents, SVN_CL__LOG_MSG_OPTIONS} },
+    {'r', 'q', opt_ignore_externals, opt_parents, SVN_CL__LOG_MSG_OPTIONS} },
 
   { "delete", svn_cl__delete, {"del", "remove", "rm"}, N_
     ("Remove files and directories from version control.\n"

Modified: branches/svnpatch-diff/subversion/svn/util.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/svn/util.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/svn/util.c	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/svn/util.c	Fri Jan 30 16:31:36 2009	(r35609)
@@ -1035,6 +1035,8 @@ const char *
 svn_cl__operation_str_xml(svn_wc_operation_t operation, apr_pool_t *pool)
 {
   switch(operation){
+	case svn_wc_operation_none:
+      return "none";
     case svn_wc_operation_update:
       return "update";
     case svn_wc_operation_switch:
@@ -1050,6 +1052,8 @@ svn_cl__operation_str_human_readable(svn
                                      apr_pool_t *pool)
 {
   switch(operation){
+	case svn_wc_operation_none:
+      return _("none");
     case svn_wc_operation_update:
       return _("update");
     case svn_wc_operation_switch:

Modified: branches/svnpatch-diff/subversion/tests/cmdline/autoprop_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/autoprop_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/autoprop_tests.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/autoprop_tests.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -33,7 +33,7 @@ Item = svntest.wc.StateItem
 def check_proplist(path, exp_out):
   """Verify that property list on PATH has a value of EXP_OUT"""
 
-  props = svntest.tree.get_props(path)
+  props = svntest.tree.get_props([path]).get(path, {})
   if props != exp_out:
     print("Expected properties: %s" % exp_out)
     print("Actual properties:   %s" % props)

Modified: branches/svnpatch-diff/subversion/tests/cmdline/changelist_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/changelist_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/changelist_tests.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/changelist_tests.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -6,7 +6,7 @@
 #  See http://subversion.tigris.org for more information.
 #
 # ====================================================================
-# Copyright (c) 2008 CollabNet.  All rights reserved.
+# Copyright (c) 2008-2009 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -508,8 +508,7 @@ def info_with_changelists(sbox):
           expected_paths.append('A/D/G/pi')
           expected_paths.append('A/D/H/chi')
           expected_paths.append('A/D/H/psi')
-      expected_paths = [os.path.join(wc_dir, x.replace('/', os.sep)) for x in \
                expected_paths]
-      expected_paths.sort()
+      expected_paths = sorted([os.path.join(wc_dir, x.replace('/', os.sep)) for x in \
expected_paths])  
       # Build the command line.
       args = ['info', wc_dir]
@@ -570,8 +569,7 @@ def diff_with_changelists(sbox):
             expected_paths.append('A/D/G/pi')
             expected_paths.append('A/D/H/chi')
             expected_paths.append('A/D/H/psi')
-        expected_paths = [os.path.join(wc_dir, x.replace('/', os.sep)) for x in \
                expected_paths]
-        expected_paths.sort()
+        expected_paths = sorted([os.path.join(wc_dir, x.replace('/', os.sep)) for x \
in expected_paths])  
         # Build the command line.
         args = ['diff']

Modified: branches/svnpatch-diff/subversion/tests/cmdline/prop_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/prop_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/prop_tests.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/prop_tests.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -675,19 +675,23 @@ def inappropriate_props(sbox):
                                      'propset', SVN_PROP_MERGEINFO,
                                      '/trunk:one', path)
 
-  # ...contain overlapping revision ranges
+  # ...contain overlapping revision ranges of differing inheritability.
   svntest.actions.run_and_verify_svn('overlapping ranges', None,
-                                     "svn: Parsing of overlapping revision "
-                                      "ranges '9-20' and '18-22' is not "
-                                      "supported\n",
+                                     "svn: Unable to parse overlapping "
+                                     "revision ranges '9-20\\*' and "
+                                     "'18-22' with different "
+                                     "inheritance types\n",
                                      'propset', SVN_PROP_MERGEINFO,
-                                     '/branch:5-7,9-20,18-22', path)
+                                     '/branch:5-7,9-20*,18-22', path)
 
   svntest.actions.run_and_verify_svn('overlapping ranges', None,
-                                     "svn: Parsing of overlapping revision "
-                                      "ranges '3' and '3' is not supported\n",
+                                     "svn: Unable to parse overlapping "
+                                     "revision ranges "
+                                     "(('3' and '3\\*')|('3\\*' and '3')) "
+                                     "with different "
+                                     "inheritance types\n",
                                      'propset', SVN_PROP_MERGEINFO,
-                                     '/branch:3,3', path)
+                                     '/branch:3,3*', path)
 
   # ...contain revision ranges with start revisions greater than or
   #    equal to end revisions.

Modified: branches/svnpatch-diff/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/svnadmin_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/svnadmin_tests.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/svnadmin_tests.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -6,7 +6,7 @@
 #  See http://subversion.tigris.org for more information.
 #
 # ====================================================================
-# Copyright (c) 2000-2006, 2008 CollabNet.  All rights reserved.
+# Copyright (c) 2000-2006, 2008-2009 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -72,10 +72,7 @@ def get_txns(repo_dir):
 
   exit_code, output_lines, error_lines = svntest.main.run_svnadmin('lstxns',
                                                                    repo_dir)
-  txns = list(map(output_lines.strip, output_lines))
-
-  # sort, just in case
-  txns.sort()
+  txns = sorted([output_lines.strip(x) for x in output_lines])
 
   return txns
 
@@ -341,12 +338,10 @@ def hotcopy_dot(sbox):
   cwd = os.getcwd()
 
   os.chdir(backup_dir)
-  exit_code, output, errput = svntest.main.run_svnadmin(
+  svntest.actions.run_and_verify_svnadmin(
+    None, None, [],
     "hotcopy", os.path.join(cwd, sbox.repo_dir), '.')
 
-  if errput:
-    raise svntest.Failure
-
   os.chdir(cwd)
 
   exit_code, origout, origerr = svntest.main.run_svnadmin("dump",

Modified: branches/svnpatch-diff/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/svnlook_tests.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/svnlook_tests.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/svnlook_tests.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -6,7 +6,7 @@
 #  See http://subversion.tigris.org for more information.
 #
 # ====================================================================
-# Copyright (c) 2000-2004, 2007-2008 CollabNet.  All rights reserved.
+# Copyright (c) 2000-2004, 2007-2009 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -144,8 +144,7 @@ def test_misc(sbox):
 
 
   proplist = run_svnlook('proplist', '--revprop', repo_dir)
-  proplist = [prop.strip() for prop in proplist]
-  proplist.sort()
+  proplist = sorted([prop.strip() for prop in proplist])
 
   # We cannot rely on svn:author's presence. ra_svn doesn't set it.
   if not (proplist == [ 'svn:author', 'svn:date', 'svn:log' ]

Modified: branches/svnpatch-diff/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/svntest/actions.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/svntest/actions.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/svntest/actions.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -900,16 +900,26 @@ def run_and_verify_merge2(dir, rev1, rev
     raise verify.SVNUnexpectedStderr(err)
 
   if dry_run and out != out_dry:
-    print("=============================================================")
-    print("Merge outputs differ")
-    print("The dry-run merge output:")
-    for x in out_dry:
-      sys.stdout.write(x)
-    print("The full merge output:")
-    for x in out:
-      sys.stdout.write(x)
-    print("=============================================================")
-    raise main.SVNUnmatchedError
+    # Due to the way ra_serf works, it's possible that the dry-run and
+    # real merge operations did the same thing, but the output came in
+    # a different order.  Let's see if maybe that's the case.
+    #
+    # NOTE:  Would be nice to limit this dance to serf tests only, but...
+    out_copy = out[:]
+    out_dry_copy = out_dry[:]
+    out_copy.sort()
+    out_dry_copy.sort()
+    if out_copy != out_dry_copy:
+      print("=============================================================")
+      print("Merge outputs differ")
+      print("The dry-run merge output:")
+      for x in out_dry:
+        sys.stdout.write(x)
+      print("The full merge output:")
+      for x in out:
+        sys.stdout.write(x)
+      print("=============================================================")
+      raise main.SVNUnmatchedError
 
   def missing_skip(a, b):
     print("=============================================================")
@@ -1075,8 +1085,7 @@ def run_and_verify_mergeinfo(error_re_st
     verify.verify_outputs(None, None, err, None, expected_err)
     return
 
-  out = [_f for _f in [int(x.rstrip()[1:]) for x in out] if _f]
-  out.sort()
+  out = sorted([_f for _f in [int(x.rstrip()[1:]) for x in out] if _f])
   expected_output.sort()
 
   extra_out = []

Modified: branches/svnpatch-diff/subversion/tests/cmdline/svntest/main.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/svntest/main.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/svntest/main.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/svntest/main.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -735,12 +735,14 @@ def create_repos(path):
     # Note that some tests (currently only commit_tests) create their own
     # post-commit hooks, which would override this one. :-(
     if fsfs_packing:
-      create_python_hook_script(get_post_commit_hook_path(path), 
+      # some tests chdir.
+      abs_path = os.path.abspath(path)
+      create_python_hook_script(get_post_commit_hook_path(abs_path), 
           "import subprocess\n"
           "import sys\n"
           "command = %s\n"
           "sys.exit(subprocess.Popen(command).wait())\n"
-          % repr([svnadmin_binary, 'pack', path]))
+          % repr([svnadmin_binary, 'pack', abs_path]))
 
   # make the repos world-writeable, for mod_dav_svn's sake.
   chmod_tree(path, 0666, 0666)

Modified: branches/svnpatch-diff/subversion/tests/cmdline/svntest/tree.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/cmdline/svntest/tree.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/cmdline/svntest/tree.py	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/cmdline/svntest/tree.py	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -5,7 +5,7 @@
 #  See http://subversion.tigris.org for more information.
 #
 # ====================================================================
-# Copyright (c) 2001, 2006, 2008 CollabNet.  All rights reserved.
+# Copyright (c) 2001, 2006, 2008-2009 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -390,44 +390,61 @@ def create_from_path(path, contents=None
   return root_node
 
 
-# helper for handle_dir(), which is a helper for build_tree_from_wc()
-def get_props(path):
-  """Return a hash of props for PATH, using the svn client. Convert each
-     embedded end-of-line to a single LF character."""
+def get_nodes_which_might_have_props(wc_path):
+  dot_svn = main.get_admin_name()
+  def walker(output, dirname, names):
+    names[:] = [n for n in names if n != dot_svn]
+    output.extend([os.path.join(dirname, n) for n in names])
+  nodes = [wc_path]
+  os.path.walk(wc_path, walker, nodes)
+  return nodes
+
+# helper for build_tree_from_wc()
+def get_props(paths):
+  """Return a hash of hashes of props for PATHS, using the svn client. Convert
+     each embedded end-of-line to a single LF character."""
 
   # It's not kosher to look inside .svn/ and try to read the internal
   # property storage format.  Instead, we use 'svn proplist'.  After
   # all, this is the only way the user can retrieve them, so we're
   # respecting the black-box paradigm.
 
-  props = {}
-  exit_code, output, errput = main.run_svn(1, "proplist", path, "--verbose")
+  files = {}
+  filename = None
+  exit_code, output, errput = main.run_svn(1, "proplist", "--verbose", *paths)
+
+  properties_on_re = re.compile("^Properties on '(.+)':$")
 
   # Parse the output
   for line in output:
     line = line.rstrip('\r\n')  # ignore stdout's EOL sequence
 
-    if line.startswith('Properties on '):
-      continue
+    match = properties_on_re.match(line)
+    if match:
+      filename = match.group(1)
 
     elif line.startswith('    '):
-      # It's (part of) the value
-      props[name] += line[4:] + '\n'  # strip the indentation
+      # It's (part of) the value (strip the indentation)
+      if filename is None:
+        raise "Missing 'Properties on' line: '"+line+"'"
+      files.setdefault(filename, {})[name] += line[4:] + '\n'
 
     elif line.startswith('  '):
       # It's the name
       name = line[2:]  # strip the indentation
-      props[name] = ''
+      if filename is None:
+        raise "Missing 'Properties on' line: '"+line+"'"
+      files.setdefault(filename, {})[name] = ''
 
     else:
       raise "Malformed line from proplist: '"+line+"'"
 
   # Strip, from each property value, the final new-line that we added
-  for name in props:
-    props[name] = props[name][:-1]
-
-  return props
+  for filename in files:
+    for name in files[filename]:
+      files[filename][name] = files[filename][name][:-1]
 
+  return files
 
 # helper for handle_dir(), which helps build_tree_from_wc()
 def get_text(path):
@@ -442,9 +459,8 @@ def get_text(path):
   fp.close()
   return contents
 
-
 # main recursive helper for build_tree_from_wc()
-def handle_dir(path, current_parent, load_props, ignore_svn):
+def handle_dir(path, current_parent, props, ignore_svn):
 
   # get a list of all the files
   all_files = os.listdir(path)
@@ -453,7 +469,8 @@ def handle_dir(path, current_parent, loa
 
   # put dirs and files in their own lists, and remove SVN dirs
   for f in all_files:
-    f = os.path.join(path, f)
+    if path != '.':  # 'svn pl -v' strips leading './'
+      f = os.path.join(path, f)
     if (os.path.isdir(f) and os.path.basename(f) != main.get_admin_name()):
       dirs.append(f)
     elif os.path.isfile(f):
@@ -462,22 +479,16 @@ def handle_dir(path, current_parent, loa
   # add each file as a child of CURRENT_PARENT
   for f in files:
     fcontents = get_text(f)
-    if load_props:
-      fprops = get_props(f)
-    else:
-      fprops = {}
+    fprops = props.get(f, {})
     current_parent.add_child(SVNTreeNode(os.path.basename(f), None,
                                          fcontents, fprops))
 
   # for each subdir, create a node, walk its tree, add it as a child
   for d in dirs:
-    if load_props:
-      dprops = get_props(d)
-    else:
-      dprops = {}
+    dprops = props.get(d, {})
     new_dir_node = SVNTreeNode(os.path.basename(d), None, None, dprops)
     current_parent.add_child(new_dir_node)
-    handle_dir(d, new_dir_node, load_props, ignore_svn)
+    handle_dir(d, new_dir_node, props, ignore_svn)
 
 def get_child(node, name):
   """If SVNTreeNode NODE contains a child named NAME, return child;
@@ -627,8 +638,7 @@ def dump_tree(n,indent=""):
   the SVNTreeNode N. Prefix each line with the string INDENT."""
 
   # Code partially stolen from Dave Beazley
-  tmp_children = n.children or []
-  tmp_children.sort()
+  tmp_children = sorted(n.children or [])
 
   if n.name == root_node_name:
     print("%s%s" % (indent, "ROOT"))
@@ -893,15 +903,18 @@ def build_tree_from_wc(wc_path, load_pro
 
     root = SVNTreeNode(root_node_name, None)
 
-    # if necessary, store the root dir's props in a new child node '.'.
+    props = {}
+    wc_path = os.path.normpath(wc_path)
     if load_props:
-      props = get_props(wc_path)
-      if props:
-        root_dir_node = SVNTreeNode(os.path.basename('.'), None, None, props)
+      nodes = get_nodes_which_might_have_props(wc_path)
+      props = get_props(nodes)
+      if props.has_key(wc_path):
+        root_dir_node = SVNTreeNode(os.path.basename('.'), None, None,
+                                    props[wc_path])
         root.add_child(root_dir_node)
 
     # Walk the tree recursively
-    handle_dir(os.path.normpath(wc_path), root, load_props, ignore_svn)
+    handle_dir(wc_path, root, props, ignore_svn)
 
     return root
 

Modified: branches/svnpatch-diff/subversion/tests/libsvn_delta/window-test.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/libsvn_delta/window-test.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/libsvn_delta/window-test.c	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/libsvn_delta/window-test.c	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -84,8 +84,8 @@ stream_window_test(const char **msg,
       /* ### examine the window */
     }
 
-  actual = svn_checksum_create(svn_checksum_md5, pool);
-  actual->digest = svn_txdelta_md5_digest(txstream);
+  actual = svn_checksum__from_digest(svn_txdelta_md5_digest(txstream),
+                                     svn_checksum_md5, pool);;
   printf("  actual: %s\n", svn_checksum_to_cstring(actual, pool));
 
   if (!svn_checksum_match(expected, actual))

Modified: branches/svnpatch-diff/subversion/tests/libsvn_fs/fs-test.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/libsvn_fs/fs-test.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/libsvn_fs/fs-test.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/libsvn_fs/fs-test.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -3558,8 +3558,8 @@ check_all_revisions(const char **msg,
 
 
 /* Helper function for large_file_integrity().  Given a ROOT and PATH
-   to a file, calculate and return the MD5 digest for the contents of
-   the file. */
+   to a file, set *CHECKSUM to the checksum of kind CHECKSUM_KIND for the
+   contents of the file. */
 static svn_error_t *
 get_file_checksum(svn_checksum_t **checksum,
                   svn_checksum_kind_t checksum_kind,
@@ -3574,7 +3574,6 @@ get_file_checksum(svn_checksum_t **check
   SVN_ERR(svn_fs_file_contents(&stream, root, path, pool));
 
   /* Get a checksummed stream for the contents. */
-  *checksum = svn_checksum_create(checksum_kind, pool);
   checksum_stream = svn_stream_checksummed2(stream, checksum, NULL,
                                             checksum_kind, TRUE, pool);
 

Modified: branches/svnpatch-diff/subversion/tests/libsvn_subr/mergeinfo-test.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/subversion/tests/libsvn_subr/mergeinfo-test.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/subversion/tests/libsvn_subr/mergeinfo-test.c	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/subversion/tests/libsvn_subr/mergeinfo-test.c	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -110,7 +110,7 @@ verify_mergeinfo_parse(const char *input
    -> merge ranges. */
 static apr_hash_t *info1, *info2;
 
-#define NBR_MERGEINFO_VALS 13
+#define NBR_MERGEINFO_VALS 19
 
 /* Valid mergeinfo values. */
 static const char * const mergeinfo_vals[NBR_MERGEINFO_VALS] =
@@ -120,14 +120,25 @@ static const char * const mergeinfo_vals
     "/trunk: 5,7-9,10,11,13,14",
     "/trunk: 3-10,11*,13,14",
     "/branch: 1,2-18*,33*",
+    /* Path names containing ':'s */
     "patch-common::netasq-bpf.c:25381",
     "patch-common_netasq-bpf.c::25381",
     ":patch:common:netasq:bpf.c:25381",
+    /* Unordered rangelists */
     "/trunk:3-6,15,18,9,22",
     "/trunk:5,3",
     "/trunk:3-6*,15*,18*,9,22*",
     "/trunk:5,3*",
-    "/trunk:100,3-7,50,99,1-2"
+    "/trunk:100,3-7,50,99,1-2",
+    /* Overlapping rangelists */
+    "/gunther_branch:5-10,7-12",
+    "/gunther_branch:5-10*,7-12*",
+    "/branches/branch1:43832-45742,49990-53669,43832-49987",
+    /* Unordered and overlapping rangelists */
+    "/gunther_branch:7-12,1,5-10",
+    "/gunther_branch:7-12*,1,5-10*",
+    /* Adjacent rangelists of differing inheritability. */
+    "/b5:5-53,1-4,54-90*"
   };
 /* Paths corresponding to mergeinfo_vals. */
 static const char * const mergeinfo_paths[NBR_MERGEINFO_VALS] =
@@ -144,7 +155,13 @@ static const char * const mergeinfo_path
     "/trunk",
     "/trunk",
     "/trunk",
-    "/trunk"
+    "/trunk",
+    "/gunther_branch",
+    "/gunther_branch",
+    "/branches/branch1",
+    "/gunther_branch",
+    "/gunther_branch",
+    "/b5"
   };
 /* First ranges from the paths identified by mergeinfo_paths. */
 static svn_merge_range_t mergeinfo_ranges[NBR_MERGEINFO_VALS][MAX_NBR_RANGES] =
@@ -163,7 +180,13 @@ static svn_merge_range_t mergeinfo_range
     { {2, 6, FALSE}, {8, 9, TRUE}, {14, 15, FALSE}, {17, 18, FALSE},
       {21, 22, FALSE} },
     { {2, 3, FALSE}, {4, 5, TRUE} },
-    { {0, 7, TRUE}, {49, 50, TRUE}, {98, 100, TRUE} }
+    { {0, 7, TRUE}, {49, 50, TRUE}, {98, 100, TRUE} },
+    { {4, 12, TRUE} },
+    { {4, 12, FALSE} },
+    { {43831, 49987, TRUE}, {49989, 53669, TRUE} },
+    { {0, 1, TRUE}, {4, 12, TRUE} },
+    { {0, 1, TRUE}, {4, 12, FALSE} },
+    { {0, 53, TRUE}, {53, 90, FALSE} },
   };
 
 static svn_error_t *
@@ -273,7 +296,7 @@ test_parse_combine_rangeinfo(const char 
 }
 
 
-#define NBR_BROKEN_MERGEINFO_VALS 35
+#define NBR_BROKEN_MERGEINFO_VALS 27
 /* Invalid mergeinfo values. */
 static const char * const broken_mergeinfo_vals[NBR_BROKEN_MERGEINFO_VALS] =
   {
@@ -291,15 +314,6 @@ static const char * const broken_mergein
     "/trunk:4*,4",
     "/trunk:3-7*,4-23",
     "/trunk:3-7,4-23*",
-    /* Overlapping revs same inheritability */
-    "/trunk:5-9*,9*",
-    "/trunk:5*,5-9*",
-    "/trunk:5-9,9",
-    "/trunk:5,5-9",
-    "/trunk:4,4",
-    "/trunk:4*,4*",
-    "/trunk:3-7,4-23",
-    "/trunk:3-7*,4-23*",
     /* Reversed revision ranges */
     "/trunk:22-20",
     "/trunk:22-20*",

Modified: branches/svnpatch-diff/tools/bdb/svn-bdb-view.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/bdb/svn-bdb-view.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/bdb/svn-bdb-view.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/bdb/svn-bdb-view.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -153,8 +153,7 @@ def am_nodes(ctx):
       nid,cid,tid = rec[0].split(".")
       data[tid.rjust(20)+nd.createpath] = (rec[0], nd)
       rec = cur.next()
-    k = list(data.keys())
-    k.sort()
+    k = sorted(data.keys())
     reptype = {"fulltext":"F", "delta":"D"}
     for i in k:
       nd = data[i][1]

Modified: branches/svnpatch-diff/tools/client-side/svnmucc/svnmucc.c
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/client-side/svnmucc/svnmucc.c?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/client-side/svnmucc/svnmucc.c	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/client-side/svnmucc/svnmucc.c	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -76,34 +76,28 @@ open_tmp_file(apr_file_t **fp,
               void *callback_baton,
               apr_pool_t *pool)
 {
-  const char *temp_dir;
+  /* Open a unique file;  use APR_DELONCLOSE. */
+  return svn_io_open_unique_file3(fp, NULL, NULL, svn_io_file_del_on_close,
+                                  pool, pool);
+}
 
-  /* "Say, Subversion.  Seen any good tempdirs lately?" */
-  SVN_ERR(svn_io_temp_dir(&temp_dir, pool));
+static svn_error_t *
+create_ra_callbacks(svn_ra_callbacks2_t **callbacks,
+                    const char *username,
+                    const char *password,
+                    svn_boolean_t non_interactive,
+                    apr_pool_t *pool)
+{
+  SVN_ERR(svn_ra_create_callbacks(callbacks, pool));
+  
+  SVN_ERR(svn_cmdline_create_auth_baton(&(*callbacks)->auth_baton, 
+                                        non_interactive,
+                                        username, password, NULL, FALSE,
+                                        FALSE, NULL, NULL, NULL, pool));
 
-  /* Open a unique file;  use APR_DELONCLOSE. */
-  return svn_io_open_unique_file2(fp, NULL,
-                                  svn_path_join(temp_dir, "svnmucc", pool),
-                                  ".tmp", svn_io_file_del_on_close, pool);
-}
-
-static svn_ra_callbacks_t *
-ra_callbacks(const char *username,
-             const char *password,
-             svn_boolean_t non_interactive,
-             apr_pool_t *pool)
-{
-  svn_ra_callbacks_t *callbacks = apr_palloc(pool, sizeof(*callbacks));
-  svn_cmdline_setup_auth_baton(&callbacks->auth_baton, non_interactive,
-                               username, password,
-                               NULL, FALSE, NULL, NULL, NULL, pool);
-  callbacks->open_tmp_file = open_tmp_file;
-  callbacks->get_wc_prop = NULL;
-  callbacks->set_wc_prop = NULL;
-  callbacks->push_wc_prop = NULL;
-  callbacks->invalidate_wc_props = NULL;
+  (*callbacks)->open_tmp_file = open_tmp_file;
 
-  return callbacks;
+  return SVN_NO_ERROR;
 }
 
 
@@ -589,6 +583,7 @@ execute(const apr_array_header_t *action
   svn_ra_session_t *session;
   svn_revnum_t head;
   const svn_delta_editor_t *editor;
+  svn_ra_callbacks2_t *ra_callbacks;
   void *editor_baton;
   struct operation root;
   svn_error_t *err;
@@ -596,9 +591,10 @@ execute(const apr_array_header_t *action
   int i;
 
   SVN_ERR(svn_config_get_config(&config, config_dir, pool));
-  SVN_ERR(svn_ra_open(&session, anchor,
-                      ra_callbacks(username, password, non_interactive, pool),
-                      NULL, config, pool));
+  SVN_ERR(create_ra_callbacks(&ra_callbacks, username, password,
+                              non_interactive, pool));
+  SVN_ERR(svn_ra_open3(&session, anchor, NULL, ra_callbacks,
+                       NULL, config, pool));
 
   SVN_ERR(svn_ra_get_latest_revnum(session, &head, pool));
   if (SVN_IS_VALID_REVNUM(base_revision))

Modified: branches/svnpatch-diff/tools/dev/contribulyze.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/contribulyze.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/contribulyze.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/contribulyze.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -363,8 +363,7 @@ class Contributor:
                           self.big_name(html=True), True))
     unique_logs = { }
 
-    sorted_activities = list(self.activities.keys())
-    sorted_activities.sort()
+    sorted_activities = sorted(self.activities.keys())
 
     out.write('<div class="h2" id="activities" title="activities">\n\n')
     out.write('<table border="1">\n')
@@ -657,8 +656,7 @@ def drop(revision_url_pattern):
   # sort by number of contributions, so the most active people appear at
   # the top -- that way we know whom to look at first for commit access
   # proposals.
-  sorted_contributors = list(Contributor.all_contributors.values())
-  sorted_contributors.sort()
+  sorted_contributors = sorted(Contributor.all_contributors.values())
   for c in sorted_contributors:
     if c not in seen_contributors:
       if c.score() > 0:

Copied: branches/svnpatch-diff/tools/dev/find-bad-style.py (from r35607, \
trunk/tools/dev/find-bad-style.py) \
                ==============================================================================
                
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/svnpatch-diff/tools/dev/find-bad-style.py	Fri Jan 30 16:31:36 \
2009	(r35609, copy of r35607, trunk/tools/dev/find-bad-style.py) @@ -0,0 +1,37 @@
+#!/usr/bin/python
+#
+# Find places in our code where whitespace is erroneously used before
+# the open-paren on a function all. This is typically manifested like:
+#
+#   return svn_some_function
+#     (param1, param2, param3)
+#
+#
+# USAGE: find-bad-style.py FILE1 FILE2 ...
+#
+
+import sys
+import re
+
+re_call = re.compile(r'^\s*\(')
+re_func = re.compile(r'.*[a-z0-9_]{1,}\s*$')
+
+
+def scan_file(fname):
+  lines = open(fname).readlines()
+
+  prev = None
+  line_num = 1
+
+  for line in lines:
+    if re_call.match(line):
+      if prev and re_func.match(prev):
+        print('%s:%d:%s' % (fname, line_num - 1, prev.rstrip()))
+
+    prev = line
+    line_num += 1
+
+
+if __name__ == '__main__':
+  for fname in sys.argv[1:]:
+    scan_file(fname)

Modified: branches/svnpatch-diff/tools/dev/gen-javahl-errors.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/gen-javahl-errors.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/gen-javahl-errors.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/gen-javahl-errors.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -4,7 +4,7 @@
 #                       C error codes
 #
 # ====================================================================
-# Copyright (c) 2007-2008 CollabNet.  All rights reserved.
+# Copyright (c) 2007-2009 CollabNet.  All rights reserved.
 #
 # * This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -58,8 +58,7 @@ public class ErrorCodes
 {
 """)
 
-  keys = list(error_codes.keys())
-  keys.sort()
+  keys = sorted(error_codes.keys())
 
   for key in keys:
     # Format the code name to be more Java-esque

Modified: branches/svnpatch-diff/tools/dev/graph-dav-servers.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/graph-dav-servers.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/graph-dav-servers.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/graph-dav-servers.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -13,139 +13,136 @@ import os
 import fileinput
 import datetime
 import time
-from datetime import datetime
-from matplotlib.dates import date2num
+import datetime
+from matplotlib import dates
 import matplotlib
 matplotlib.use('Agg')
-from matplotlib.pylab import *
+from matplotlib import pylab
 import Image
 
 OUTPUT_FILE = '../../www/images/svn-dav-securityspace-survey.png'
 OUTPUT_IMAGE_WIDTH = 800
 
-STATS = """1/1/2003       70
-2/1/2003                 158
-3/1/2003                 222
-4/1/2003                 250
-5/1/2003                 308
-6/1/2003                 369
-7/1/2003                 448
-8/1/2003                 522
-9/1/2003                 665
-10/1/2003                782
-11/1/2003                969
-12/1/2003               1009
-1/1/2004                1162
-2/1/2004                1307
-3/1/2004                1424
-4/1/2004                1792
-5/1/2004                2113
-6/1/2004                2502
-7/1/2004                2941
-8/1/2004                3863
-9/1/2004                4174
-10/1/2004               4187
-11/1/2004               4783
-12/1/2004               4995
-1/1/2005                5565
-2/1/2005                6505
-3/1/2005                7897
-4/1/2005                8751
-5/1/2005                9793
-6/1/2005               11534
-7/1/2005               12808
-8/1/2005               13545
-9/1/2005               15233
-10/1/2005              17588
-11/1/2005              18893
-12/1/2005              20278
-1/1/2006               21084
-2/1/2006               23861
-3/1/2006               26540
-4/1/2006               29396
-5/1/2006               33001
-6/1/2006               35082
-7/1/2006               38939
-8/1/2006               40672
-9/1/2006               46525
-10/1/2006              54247
-11/1/2006              63145
-12/1/2006              68988
-1/1/2007               77027
-2/1/2007               84813
-3/1/2007               95679
-4/1/2007              103852
-5/1/2007              117267
-6/1/2007              133665
-7/1/2007              137575
-8/1/2007              155426
-9/1/2007              159055
-10/1/2007             169939
-11/1/2007             180831
-12/1/2007             187093
-1/1/2008              199432
-2/1/2008              221547
-3/1/2008              240794
-4/1/2008              255520
-5/1/2008              269478
-6/1/2008              286614
-7/1/2008              294579
-8/1/2008              307923
-9/1/2008              254757
-10/1/2008             268081
-11/1/2008             299071
-12/1/2008             330884
-1/1/2009              369719"""
+STATS = [
+  ('1/1/2003', 70),
+  ('2/1/2003', 158),
+  ('3/1/2003', 222),
+  ('4/1/2003', 250),
+  ('5/1/2003', 308),
+  ('6/1/2003', 369),
+  ('7/1/2003', 448),
+  ('8/1/2003', 522),
+  ('9/1/2003', 665),
+  ('10/1/2003', 782),
+  ('11/1/2003', 969),
+  ('12/1/2003', 1009),
+  ('1/1/2004', 1162),
+  ('2/1/2004', 1307),
+  ('3/1/2004', 1424),
+  ('4/1/2004', 1792),
+  ('5/1/2004', 2113),
+  ('6/1/2004', 2502),
+  ('7/1/2004', 2941),
+  ('8/1/2004', 3863),
+  ('9/1/2004', 4174),
+  ('10/1/2004', 4187),
+  ('11/1/2004', 4783),
+  ('12/1/2004', 4995),
+  ('1/1/2005', 5565),
+  ('2/1/2005', 6505),
+  ('3/1/2005', 7897),
+  ('4/1/2005', 8751),
+  ('5/1/2005', 9793),
+  ('6/1/2005', 11534),
+  ('7/1/2005', 12808),
+  ('8/1/2005', 13545),
+  ('9/1/2005', 15233),
+  ('10/1/2005', 17588),
+  ('11/1/2005', 18893),
+  ('12/1/2005', 20278),
+  ('1/1/2006', 21084),
+  ('2/1/2006', 23861),
+  ('3/1/2006', 26540),
+  ('4/1/2006', 29396),
+  ('5/1/2006', 33001),
+  ('6/1/2006', 35082),
+  ('7/1/2006', 38939),
+  ('8/1/2006', 40672),
+  ('9/1/2006', 46525),
+  ('10/1/2006', 54247),
+  ('11/1/2006', 63145),
+  ('12/1/2006', 68988),
+  ('1/1/2007', 77027),
+  ('2/1/2007', 84813),
+  ('3/1/2007', 95679),
+  ('4/1/2007', 103852),
+  ('5/1/2007', 117267),
+  ('6/1/2007', 133665),
+  ('7/1/2007', 137575),
+  ('8/1/2007', 155426),
+  ('9/1/2007', 159055),
+  ('10/1/2007', 169939),
+  ('11/1/2007', 180831),
+  ('12/1/2007', 187093),
+  ('1/1/2008', 199432),
+  ('2/1/2008', 221547),
+  ('3/1/2008', 240794),
+  ('4/1/2008', 255520),
+  ('5/1/2008', 269478),
+  ('6/1/2008', 286614),
+  ('7/1/2008', 294579),
+  ('8/1/2008', 307923),
+  ('9/1/2008', 254757),
+  ('10/1/2008', 268081),
+  ('11/1/2008', 299071),
+  ('12/1/2008', 330884),
+  ('1/1/2009', 369719),
+  ('2/1/2009', 378434),
+  ]
 
 
 def get_date(raw_date):
-  date = time.strptime(raw_date, "%m/%d/%Y")
-  date = datetime(date[0], date[1], date[2], date[3])
-  return date
+  month, day, year = map(int, raw_date.split('/'))
+  return datetime.datetime(year, month, day)
 
 
 def get_ordinal_date(date):
   # This is the only way I can get matplotlib to do the dates right.
-  return date2num(date)
-
+  return int(dates.date2num(get_date(date)))
 
-def parse_stats(str):
-  dates = []
-  counts = []
 
-  lines = str.split('\n')
-  for line in lines:
-    key, val = line.split(' ', 1)
+def load_stats():
+  dates = [get_ordinal_date(date) for date, value in STATS]
+  counts = [x[1] for x in STATS]
 
-    dates.append(int(get_ordinal_date(get_date(key))))
-    counts.append(int(val.lstrip()))
   return dates, counts
 
 
 def draw_graph(dates, counts):
   ###########################################################
   # Drawing takes place here.
-  figure(1)
-
-  ax = subplot(111)
-  plot_date(dates, counts, color='r', linestyle='-', marker='o', markersize=3)
+  pylab.figure(1)
 
-  ax.xaxis.set_major_formatter( DateFormatter('%Y') )
-  ax.xaxis.set_major_locator( YearLocator() )
-  ax.xaxis.set_minor_locator( MonthLocator() )
+  ax = pylab.subplot(111)
+  pylab.plot_date(dates, counts,
+                  color='r', linestyle='-', marker='o', markersize=3)
+
+  ax.xaxis.set_major_formatter( pylab.DateFormatter('%Y') )
+  ax.xaxis.set_major_locator( pylab.YearLocator() )
+  ax.xaxis.set_minor_locator( pylab.MonthLocator() )
   ax.set_xlim( (dates[0] - 92, dates[len(dates) - 1] + 92) )
 
-  ax.yaxis.set_major_formatter( FormatStrFormatter('%d') )
+  ax.yaxis.set_major_formatter( pylab.FormatStrFormatter('%d') )
 
-  ylabel('Total # of Public DAV Servers')
+  pylab.ylabel('Total # of Public DAV Servers')
 
-  lastdate = datetime.fromordinal(dates[len(dates) - 1]).strftime("%B %Y")
-  xlabel("Data as of " + lastdate)
-  title('Security Space Survey of\nPublic Subversion DAV Servers')
+  lastdate = datetime.datetime.fromordinal(dates[len(dates) - 1]).strftime("%B %Y")
+  pylab.xlabel("Data as of " + lastdate)
+  pylab.title('Security Space Survey of\nPublic Subversion DAV Servers')
   # End drawing
   ###########################################################
   png = open(OUTPUT_FILE, 'w')
-  savefig(png)
+  pylab.savefig(png)
   png.close()
   os.rename(OUTPUT_FILE, OUTPUT_FILE + ".tmp.png")
   try:
@@ -163,10 +160,10 @@ def draw_graph(dates, counts):
     sys.stderr.write("Error attempting to resize the graphic: %s\n" % (str(e)))
     os.rename(OUTPUT_FILE + ".tmp.png", OUTPUT_FILE)
     raise
-  close()
+  pylab.close()
 
 
 if __name__ == '__main__':
-  dates, counts = parse_stats(STATS);
+  dates, counts = load_stats()
   draw_graph(dates, counts)
   print("Don't forget to update ../../www/svn-dav-securityspace-survey.html!")

Copied: branches/svnpatch-diff/tools/dev/min-includes.sh (from r35607, \
trunk/tools/dev/min-includes.sh) \
                ==============================================================================
                
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/svnpatch-diff/tools/dev/min-includes.sh	Fri Jan 30 16:31:36 \
2009	(r35609, copy of r35607, trunk/tools/dev/min-includes.sh) @@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# Attempt to figure out the minimum set of includes for our header files.
+#
+# ### this is incomplete. it merely lists the header files in order from
+# ### "no dependencies on other svn headers" to the larger header files
+# ### which have dependencies. manually working through the headers in
+# ### this order will minimize includes.
+#
+# Each header file is test-compiled to ensure that it has enough headers.
+# Of course, this could be false-positive because another header that
+# has been included has further included something to enable compilation
+# of the header in question. More sophisticated testing (e.g. filtering
+# includes out of the included header) would be necessary for detection.
+#
+
+files="*.h private/*.h"
+deps="deps.$$"
+
+INCLUDES="-I. -I.. -I/usr/include/apr-1 -I/usr/include/apache2"
+
+rm -f "$deps"
+for f in $files ; do
+  sed -n "s%#include \"\(svn_[a-z0-9_]*\.h\)\".*%$f \1%p" $f | fgrep -v \
svn_private_config.h >> "$deps" +done
+
+
+function process_file ()
+{
+  echo "Processing $header"
+
+  echo "#include \"$header\"" > "$deps".c
+  gcc -o /dev/null -S $INCLUDES "$deps".c
+
+  ### monkey the includes and recompile to find the minimal set
+}
+
+while test -s "$deps" ; do
+#wc -l $deps
+
+  for header in $files ; do
+
+    if grep -q "^$header" "$deps" ; then
+      continue
+    fi
+
+    process_file
+
+    fgrep -v "$header" "$deps" > "$deps".new
+    mv "$deps".new "$deps"
+
+    files="`echo $files | sed s%$header%%`"
+    break
+  done
+
+done
+
+for header in $files ; do
+  process_file
+done

Modified: branches/svnpatch-diff/tools/dev/normalize-dump.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/normalize-dump.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/normalize-dump.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/normalize-dump.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -12,8 +12,7 @@ class NodePath:
 
     def dump(self):
         print((' ' * 3) + self.path)
-        headers = list(self.headers.keys())
-        headers.sort()
+        headers = sorted(self.headers.keys())
         for header in headers:
             print((' ' * 6) + header + ': ' + self.headers[header])
 
@@ -21,8 +20,7 @@ class NodePath:
 def dump_revision(rev, nodepaths):
     sys.stderr.write('* Normalizing revision ' + rev + '...')
     print('Revision ' + rev)
-    paths = list(nodepaths.keys())
-    paths.sort()
+    paths = sorted(nodepaths.keys())
     for path in paths:
         nodepath = nodepaths[path]
         nodepath.dump()

Modified: branches/svnpatch-diff/tools/dev/trails.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/trails.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/trails.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/trails.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -71,7 +71,9 @@ def output_summary(trails, outfile):
 
 
 # custom compare function
-def _freqtable_cmp((a, b), (c, d)):
+def _freqtable_cmp(a_b, c_d):
+  (a, b) = a_b
+  (c, d) = c_d
   c = cmp(d, b)
   if not c:
     c = cmp(a, c)

Modified: branches/svnpatch-diff/tools/dev/which-error.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dev/which-error.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dev/which-error.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/tools/dev/which-error.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -5,7 +5,7 @@
 #                 their numeric error code values
 #
 # ====================================================================
-# Copyright (c) 2005, 2008 CollabNet.  All rights reserved.
+# Copyright (c) 2005, 2008-2009 CollabNet.  All rights reserved.
 #
 # * This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -89,8 +89,7 @@ if __name__ == "__main__":
   if sys.argv[1] == 'list':
     if len(sys.argv) > 2:
       usage_and_exit()
-    codes = list(__svn_error_codes.keys())
-    codes.sort()
+    codes = sorted(__svn_error_codes.keys())
 
   # Get a list of code by parsing stdin for apr_err=CODE instances
   elif sys.argv[1] == 'parse':

Modified: branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh	Fri Jan 30 \
                16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh	Fri Jan 30 \
16:31:36 2009	(r35609) @@ -8,7 +8,7 @@ SWIG=swig-1.3.36
 APR=apr-1.3.3
 APR_UTIL=apr-util-1.3.4
 NEON=neon-0.28.3
-SERF=serf-0.2.0
+SERF=serf-0.3.0
 ZLIB=zlib-1.2.3
 SQLITE=sqlite-amalgamation-3.6.10
 

Modified: branches/svnpatch-diff/tools/examples/svnshell.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/examples/svnshell.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/examples/svnshell.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/examples/svnshell.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -5,7 +5,7 @@
 #
 ######################################################################
 #
-# Copyright (c) 2000-2004, 2008 CollabNet.  All rights reserved.
+# Copyright (c) 2000-2004, 2008-2009 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -117,8 +117,7 @@ class SVNShell(Cmd):
         print("Path '%s' not found." % newpath)
         return
 
-    keys = list(entries.keys())
-    keys.sort()
+    keys = sorted(entries.keys())
 
     print("   REV   AUTHOR  NODE-REV-ID     SIZE         DATE NAME")
     print("----------------------------------------------------------------------------")
 @@ -150,8 +149,7 @@ class SVNShell(Cmd):
 
   def do_lstxns(self, arg):
     """list the transactions available for browsing"""
-    txns = fs.list_transactions(self.fs_ptr)
-    txns.sort()
+    txns = sorted(fs.list_transactions(self.fs_ptr))
     counter = 0
     for txn in txns:
       counter = counter + 1

Modified: branches/svnpatch-diff/tools/hook-scripts/mailer/mailer.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/hook-scripts/mailer/mailer.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/hook-scripts/mailer/mailer.py	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/tools/hook-scripts/mailer/mailer.py	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -321,16 +321,14 @@ class Commit(Messenger):
     e_ptr, e_baton = svn.delta.make_editor(editor, self.pool)
     svn.repos.replay(repos.root_this, e_ptr, e_baton, self.pool)
 
-    self.changelist = list(editor.get_changes().items())
-    self.changelist.sort()
+    self.changelist = sorted(editor.get_changes().items())
 
     # collect the set of groups and the unique sets of params for the options
     self.groups = { }
     for path, change in self.changelist:
       for (group, params) in self.cfg.which_groups(path):
         # turn the params into a hashable object and stash it away
-        param_list = list(params.items())
-        param_list.sort()
+        param_list = sorted(params.items())
         # collect the set of paths belonging to this group
         if (group, tuple(param_list)) in self.groups:
           old_param, paths = self.groups[group, tuple(param_list)]
@@ -418,8 +416,7 @@ class PropChange(Messenger):
     self.groups = { }
     for (group, params) in self.cfg.which_groups(''):
       # turn the params into a hashable object and stash it away
-      param_list = list(params.items())
-      param_list.sort()
+      param_list = sorted(params.items())
       self.groups[group, tuple(param_list)] = params
 
     self.output.subject = 'r%d - %s' % (repos.rev, propname)
@@ -509,8 +506,7 @@ class Lock(Messenger):
     for path in self.dirlist:
       for (group, params) in self.cfg.which_groups(path):
         # turn the params into a hashable object and stash it away
-        param_list = list(params.items())
-        param_list.sort()
+        param_list = sorted(params.items())
         # collect the set of paths belonging to this group
         if (group, tuple(param_list)) in self.groups:
           old_param, paths = self.groups[group, tuple(param_list)]

Modified: branches/svnpatch-diff/tools/po/l10n-report.py
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/tools/po/l10n-report.py?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/tools/po/l10n-report.py	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/tools/po/l10n-report.py	Fri Jan 30 16:31:36 2009	(r35609)
@@ -140,8 +140,7 @@ def main():
                (branch_name, wc_version)
 
     os.chdir(po_dir)
-    files = os.listdir('.')
-    files.sort()
+    files = sorted(os.listdir('.'))
     format_head = "%6s %7s %7s %7s %7s" % ("lang", "trans", "untrans",
                    "fuzzy", "obs")
     format_line = "--------------------------------------"

Modified: branches/svnpatch-diff/www/commercial-support.html
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/www/commercial-support.html?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/www/commercial-support.html	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/www/commercial-support.html	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -61,6 +61,13 @@ training, consulting, hosting, etc. -->
         <a href="http://www.elegosoft.com/"
                 >http://www.elegosoft.com/</a>
       </p></li>
+
+      <li><p><b>HOOD Group</b> - Centre of Competence Change, Configuration
+        &amp; Version Management - Training, Customizing, Good Practice
+        Coaching in English and German<br/>
+        <a href="http://www.HOOD-Group.com/ccvm/"
+                >http://www.HOOD-Group.com/ccvm/</a>
+      </p></li>
     </ul>
 
 </div>

Modified: branches/svnpatch-diff/www/images/svn-dav-securityspace-survey.png
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/www/images/svn-dav-securityspace-survey.png?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/svnpatch-diff/www/links.html
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/www/links.html?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/www/links.html	Fri Jan 30 16:00:04 2009	(r35608)
+++ branches/svnpatch-diff/www/links.html	Fri Jan 30 16:31:36 2009	(r35609)
@@ -729,6 +729,15 @@ and follow the <a href="hacking.html#pat
         <a href="http://supermind.nl/submin"
                 >http://supermind.nl/submin</a>
       </p></li>
+      
+      <li><p><b>Sublime</b> - Easy Subversion management for Windows.  Manage
+        repositories, users, automated backups and more, all from a web-based
+        interface designed for a Windows environment.<br/>
+        (<i>This is a commercial closed-source project.</i>)
+        <br/>
+        <a href="http://sublimesvn.com"
+                >http://sublimesvn.com</a>
+      </p></li>
 
     </ul>
 

Modified: branches/svnpatch-diff/www/svn-dav-securityspace-survey.html
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/www/svn-dav-securityspace-survey.html?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/www/svn-dav-securityspace-survey.html	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/www/svn-dav-securityspace-survey.html	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -44,6 +44,7 @@ for <code>mod_dav_svn</code>.  Thanks Se
 <table style="margin-left: auto; margin-right: auto;" border="0"
   cellpadding="5" cellspacing="0">
   <tr><th>Date</th><th># Servers</th></tr>
+  <tr><td>February 2009</td><td style="text-align: right">378,434</td></tr>
   <tr><td>Janurary 2009</td><td style="text-align: right">368,719</td></tr>
   <tr><td>December 2008</td><td style="text-align: right">330,884</td></tr>
   <tr><td>November 2008</td><td style="text-align: right">299,071</td></tr>

Modified: branches/svnpatch-diff/www/svn_1.6_releasenotes.html
URL: http://svn.collab.net/viewvc/svn/branches/svnpatch-diff/www/svn_1.6_releasenotes.html?pathrev=35609&r1=35608&r2=35609
 ==============================================================================
--- branches/svnpatch-diff/www/svn_1.6_releasenotes.html	Fri Jan 30 16:00:04 \
                2009	(r35608)
+++ branches/svnpatch-diff/www/svn_1.6_releasenotes.html	Fri Jan 30 16:31:36 \
2009	(r35609) @@ -417,15 +417,21 @@ repositories.</p>
 <div class="h4" id="fsfs-packing" title="fsfs-memcached">
 <h4>FSFS repositories: Packing completed shards (<em>server</em>)</h4>
 
-<p>XXX: Subversion 1.5 introduced the ability for FSFS repositories to be
+<p>Subversion 1.5 introduced the ability for FSFS repositories to be
 <em><a href="svn_1.5_releasenotes.html#fsfs-sharding">sharded</a></em> into
 multiple directories for revision and revprop files.  Subversion 1.6 takes
-the sharding concept further, and allows full shard directory to be
-<em>packed</em> into one file.  Packed FSFS repositories have significant
-space savings over their unpacked counterparts, especially repositories which
-contain many small commits.</p>
-
-<p>See <code>svnadmin pack</code> for more details.</p>
+the sharding concept further, and allows full shard directories to be
+<em>packed</em> into a single file.  By reducing internal fragmentation in
+the filesystem, packed FSFS repositories have significant space savings
+over their unpacked counterparts, especially repositories which contain
+many small commits.  Using a one-file-per-shard approach also allows
+Subversion to reduce disk I/O and better exploit operating system caches.
+</p>
+
+<p>To pack a repository, run <code>svnadmin pack</code> on the repository.
+Once a repository has been packed, there is no migration path back to an
+unpacked state, and it can only be read by Subversion 1.6 or greater
+servers.</p>
 
 </div> <!-- fs-packing -->
 
@@ -585,8 +591,13 @@ security or data-loss bugs.</p>
 <h2>New Dependency: SQLite</h2>
 
 <p>XXX: We now require <a href="http://www.sqlite.org/">SQLite</a> for both
-the server and client.  We recommend 3.5.9 or greater, but work with anything
-better than 3.4.0.</p>
+the server and client.  We recommend 3.6.10 or greater, but work with
+anything better than 3.4.0.  Subversion will attempt to use an SQLite
+<a href="http://www.sqlite.org/amalgamation.html">amalgamation</a> if it is
+present in the root of the distribution tarball, otherwise, Subversion will
+search for SQLite in the usual places on the system.  You may also pass
+<code>--with-sqlite</code> to <code>configure</code> to specify the location
+of the SQLite library or amalgamation you wish to use.</p>
 
 </div>  <!-- sqlite -->
 



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic