svn commit: r1156527 - /subversion/trunk/configure.ac

2011-08-11 Thread danielsh
Author: danielsh
Date: Thu Aug 11 08:07:30 2011
New Revision: 1156527

URL: http://svn.apache.org/viewvc?rev=1156527view=rev
Log:
* configure.ac
  (--with-libmagic): Correctly handle '--without-libmagic'.

Found by: michael_rytting{_AT_}agilent.com
Tested by: none

Modified:
subversion/trunk/configure.ac

Modified: subversion/trunk/configure.ac
URL: 
http://svn.apache.org/viewvc/subversion/trunk/configure.ac?rev=1156527r1=1156526r2=1156527view=diff
==
--- subversion/trunk/configure.ac (original)
+++ subversion/trunk/configure.ac Thu Aug 11 08:07:30 2011
@@ -737,7 +737,7 @@ AC_ARG_WITH(libmagic,AS_HELP_STRING([--w
   AC_CHECK_LIB(magic, magic_open, [libmagic_found=builtin])
 ])
 libmagic_prefix=the default locations
-  else
+  elif test $withval != no; then
 libmagic_prefix=$withval
 save_cppflags=$CPPFLAGS
 CPPFLAGS=$CPPFLAGS -I$libmagic_prefix/include




svn commit: r1156528 - /subversion/branches/1.7.x/STATUS

2011-08-11 Thread danielsh
Author: danielsh
Date: Thu Aug 11 08:08:57 2011
New Revision: 1156528

URL: http://svn.apache.org/viewvc?rev=1156528view=rev
Log:
* STATUS += r1156527

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1156528r1=1156527r2=1156528view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Thu Aug 11 08:08:57 2011
@@ -187,6 +187,13 @@ Candidate changes:
Votes:
  +1: philip, rhuijben
 
+ * r1156527
+   Accept --without-libmagic.
+   Justification:
+ Impossible to disable libmagic otherwise.
+   Votes:
+ +0: danielsh
+
 Veto-blocked changes:
 =
 




svn commit: r1156691 - /subversion/branches/1.7.x/STATUS

2011-08-11 Thread stsp
Author: stsp
Date: Thu Aug 11 17:24:52 2011
New Revision: 1156691

URL: http://svn.apache.org/viewvc?rev=1156691view=rev
Log:
* STATUS: Vote for r1156527.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1156691r1=1156690r2=1156691view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Thu Aug 11 17:24:52 2011
@@ -193,6 +193,7 @@ Candidate changes:
  Impossible to disable libmagic otherwise.
Votes:
  +0: danielsh
+ +1: stsp
 
 Veto-blocked changes:
 =




svn commit: r1156697 - in /subversion/branches/fs-py/subversion: libsvn_fs_py/fs_fs.c libsvn_fs_py/py_util.c libsvn_fs_py/py_util.h python/svn/fs.py python/svn/prop.py

2011-08-11 Thread hwright
Author: hwright
Date: Thu Aug 11 17:39:40 2011
New Revision: 1156697

URL: http://svn.apache.org/viewvc?rev=1156697view=rev
Log:
On the fs-py branch:
Move most of the create_fs implementation into Python.

* subversion/python/svn/fs.py
  (): A few more constants.
  (FS.__write_revision_zero): New.
  (FS._create_fs): Create the directories and files required for a FSFS
filesystem.
  (FS.__setup_paths): Add another path.

* subversion/python/svn/prop.py:
  New.

* subversion/libsvn_fs_py/fs_fs.c
  (write_revision_zero): Remove.
  (svn_fs_py__create): Largely gut, in favor of the Python version.

* subversion/libsvn_fs_py/py_util.c
  (get_int_attr_baton, get_int_attr, svn_fs_py__get_int_attr): New.

* subversion/libsvn_fs_py/py_util.h
  (svn_fs_py__get_int_attr): New.

Added:
subversion/branches/fs-py/subversion/python/svn/prop.py   (with props)
Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.h
subversion/branches/fs-py/subversion/python/svn/fs.py

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c?rev=1156697r1=1156696r2=1156697view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c Thu Aug 11 
17:39:40 2011
@@ -6196,40 +6196,11 @@ svn_fs_py__reserve_copy_id(const char **
   return SVN_NO_ERROR;
 }
 
-/* Write out the zeroth revision for filesystem FS. */
-static svn_error_t *
-write_revision_zero(svn_fs_t *fs)
-{
-  const char *path_revision_zero = path_rev(fs, 0, fs-pool);
-  apr_hash_t *proplist;
-  svn_string_t date;
-
-  /* Write out a rev file for revision 0. */
-  SVN_ERR(svn_io_file_create(path_revision_zero,
- PLAIN\nEND\nENDREP\n
- id: 0.0.r0/17\n
- type: dir\n
- count: 0\n
- text: 0 0 4 4 
- 2d2977d1c96f487abe4a1e202dd03b4e\n
- cpath: /\n
- \n\n17 107\n, fs-pool));
-  SVN_ERR(svn_io_set_file_read_only(path_revision_zero, FALSE, fs-pool));
-
-  /* Set a date on revision 0. */
-  date.data = svn_time_to_cstring(apr_time_now(), fs-pool);
-  date.len = strlen(date.data);
-  proplist = apr_hash_make(fs-pool);
-  apr_hash_set(proplist, SVN_PROP_REVISION_DATE, APR_HASH_KEY_STRING, date);
-  return set_revision_proplist(fs, 0, proplist, fs-pool);
-}
-
 svn_error_t *
 svn_fs_py__create(svn_fs_t *fs,
   const char *path,
   apr_pool_t *pool)
 {
-  int format = SVN_FS_FS__FORMAT_NUMBER;
   fs_fs_data_t *ffd = fs-fsap_data;
 
   fs-path = apr_pstrdup(pool, path);
@@ -6240,75 +6211,17 @@ svn_fs_py__create(svn_fs_t *fs,
   apr_pool_cleanup_register(fs-pool, ffd-p_fs, svn_fs_py__destroy_py_object,
 apr_pool_cleanup_null);
 
-  /* See if compatibility with older versions was explicitly requested. */
-  if (fs-config)
-{
-  if (apr_hash_get(fs-config, SVN_FS_CONFIG_PRE_1_4_COMPATIBLE,
-   APR_HASH_KEY_STRING))
-format = 1;
-  else if (apr_hash_get(fs-config, SVN_FS_CONFIG_PRE_1_5_COMPATIBLE,
-APR_HASH_KEY_STRING))
-format = 2;
-  else if (apr_hash_get(fs-config, SVN_FS_CONFIG_PRE_1_6_COMPATIBLE,
-APR_HASH_KEY_STRING))
-format = 3;
-}
-  ffd-format = format;
-
-  /* Override the default linear layout if this is a new-enough format. */
-  if (format = SVN_FS_FS__MIN_LAYOUT_FORMAT_OPTION_FORMAT)
-ffd-max_files_per_dir = SVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR;
-
-  /* Create the revision data directories. */
-  if (ffd-max_files_per_dir)
-SVN_ERR(svn_io_make_dir_recursively(path_rev_shard(fs, 0, pool), pool));
-  else
-SVN_ERR(svn_io_make_dir_recursively(svn_dirent_join(path, PATH_REVS_DIR,
-pool),
-pool));
-
-  /* Create the revprops directory. */
-  if (ffd-max_files_per_dir)
-SVN_ERR(svn_io_make_dir_recursively(path_revprops_shard(fs, 0, pool),
-pool));
-  else
-SVN_ERR(svn_io_make_dir_recursively(svn_dirent_join(path,
-PATH_REVPROPS_DIR,
-pool),
-pool));
-
-  /* Create the transaction directory. */
-  SVN_ERR(svn_io_make_dir_recursively(svn_dirent_join(path, PATH_TXNS_DIR,
-  pool),
- 

svn commit: r1156713 - in /subversion/branches/fs-py/subversion/libsvn_fs_py: fs.h fs_fs.c rep-cache.c tree.c

2011-08-11 Thread hwright
Author: hwright
Date: Thu Aug 11 18:20:54 2011
New Revision: 1156713

URL: http://svn.apache.org/viewvc?rev=1156713view=rev
Log:
On the fs-py branch:
Use the Python format number as the canonical location.

* subversion/libsvn_fs_py/tree.c,
  subversion/libsvn_fs_py/fs_fs.c,
  subversion/libsvn_fs_py/rep-cache.c:
Fetch the format number throughout, rather than using a version in the
FS object.

* subversion/libsvn_fs_py/fs.h
  (fs_fs_data_t): Remove format number.

Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
subversion/branches/fs-py/subversion/libsvn_fs_py/rep-cache.c
subversion/branches/fs-py/subversion/libsvn_fs_py/tree.c

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h?rev=1156713r1=1156712r2=1156713view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h Thu Aug 11 18:20:54 
2011
@@ -206,8 +206,6 @@ typedef struct fs_fs_shared_data_t
 /* Private (non-shared) FSFS-specific data for each svn_fs_t object. */
 typedef struct fs_fs_data_t
 {
-  /* The format number of this FS. */
-  int format;
   /* The maximum number of files to store per directory (for sharded
  layouts) or zero (for linear layouts). */
   int max_files_per_dir;

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c?rev=1156713r1=1156712r2=1156713view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c Thu Aug 11 
18:20:54 2011
@@ -260,8 +260,10 @@ svn_fs_py__path_rev_absolute(const char 
  apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int format;
 
-  if (ffd-format  SVN_FS_FS__MIN_PACKED_FORMAT
+  SVN_ERR(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
+  if (format  SVN_FS_FS__MIN_PACKED_FORMAT
   || ! is_packed_rev(fs, rev))
 {
   *path = path_rev(fs, rev, pool);
@@ -341,7 +343,10 @@ static APR_INLINE const char *
 path_txn_proto_rev(svn_fs_t *fs, const char *txn_id, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
-  if (ffd-format = SVN_FS_FS__MIN_PROTOREVS_DIR_FORMAT)
+  int format;
+
+  svn_error_clear(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
+  if (format = SVN_FS_FS__MIN_PROTOREVS_DIR_FORMAT)
 return svn_dirent_join_many(pool, fs-path, PATH_TXN_PROTOS_DIR,
 apr_pstrcat(pool, txn_id, PATH_EXT_REV,
 (char *)NULL),
@@ -354,7 +359,10 @@ static APR_INLINE const char *
 path_txn_proto_rev_lock(svn_fs_t *fs, const char *txn_id, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
-  if (ffd-format = SVN_FS_FS__MIN_PROTOREVS_DIR_FORMAT)
+  int format;
+
+  svn_error_clear(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
+  if (format = SVN_FS_FS__MIN_PROTOREVS_DIR_FORMAT)
 return svn_dirent_join_many(pool, fs-path, PATH_TXN_PROTOS_DIR,
 apr_pstrcat(pool, txn_id, PATH_EXT_REV_LOCK,
 (char *)NULL),
@@ -589,7 +597,10 @@ with_some_lock(svn_fs_t *fs,
   if (!err)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
-  if (ffd-format = SVN_FS_FS__MIN_PACKED_FORMAT)
+  int format;
+
+  SVN_ERR(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
+  if (format = SVN_FS_FS__MIN_PACKED_FORMAT)
 SVN_ERR(update_min_unpacked_rev(fs, pool));
 #if 0 /* Might be a good idea? */
   SVN_ERR(get_youngest(ffd-youngest_rev_cache, fs-path,
@@ -1090,7 +1101,10 @@ svn_boolean_t
 svn_fs_py__fs_supports_mergeinfo(svn_fs_t *fs)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
-  return ffd-format = SVN_FS_FS__MIN_MERGEINFO_FORMAT;
+  int format;
+
+  SVN_ERR(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
+  return format = SVN_FS_FS__MIN_MERGEINFO_FORMAT;
 }
 
 static svn_error_t *
@@ -1098,13 +1112,15 @@ read_config(svn_fs_t *fs,
 apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int format;
 
+  SVN_ERR(svn_fs_py__get_int_attr(format, ffd-p_fs, format));
   SVN_ERR(svn_config_read2(ffd-config,
svn_dirent_join(fs-path, PATH_CONFIG, pool),
FALSE, FALSE, fs-pool));
 
   /* Initialize ffd-rep_sharing_allowed. */
-  if (ffd-format = SVN_FS_FS__MIN_REP_SHARING_FORMAT)
+  if (format = SVN_FS_FS__MIN_REP_SHARING_FORMAT)
 SVN_ERR(svn_config_get_bool(ffd-config, ffd-rep_sharing_allowed,
 CONFIG_SECTION_REP_SHARING,
 

svn commit: r1156717 - /subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 18:31:29 2011
New Revision: 1156717

URL: http://svn.apache.org/viewvc?rev=1156717view=rev
Log:
Update test for issue #3986 'svn_client_mergeinfo_log API broken with WC
target which inherits mergeinfo from repos' to cover another failing use
case.

* subversion/tests/cmdline/mergeinfo_tests.py
  (wc_target_inherits_mergeinfo_from_repos): Cover the use case analogous to
   that markphip provided in a JavaHL test - see
   http://svn.haxx.se/dev/archive-2011-08/0101.shtml

Modified:
subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py?rev=1156717r1=1156716r2=1156717view=diff
==
--- subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py Thu Aug 11 
18:31:29 2011
@@ -500,30 +500,33 @@ def wc_target_inherits_mergeinfo_from_re
 
   sbox.build()
   wc_dir = sbox.wc_dir
-  wc_disk, wc_status = set_up_branch(sbox)
+  wc_disk, wc_status = set_up_branch(sbox, nbr_of_branches=2)
 
   A_COPY_path   = os.path.join(wc_dir, 'A_COPY')
   rho_COPY_path = os.path.join(wc_dir, 'A_COPY', 'D', 'G', 'rho')
-
-  # Merge -c4 ^/A/D/G/rho A_COPY\D\G\rho
-  # Merge -c6 ^/A A_COPY
-  # Commit as r7
+  gamma_2_path  = os.path.join(wc_dir, 'A_COPY_2', 'D', 'gamma')
+  tau_path  = os.path.join(wc_dir, 'A', 'D', 'G', 'tau')
+  D_COPY_path   = os.path.join(wc_dir, 'A_COPY', 'D')
+  
+  # Merge -c5 ^/A/D/G/rho A_COPY\D\G\rho
+  # Merge -c7 ^/A A_COPY
+  # Commit as r8
   #
   # This gives us some explicit mergeinfo on the branch root and
   # one of its subtrees:
   #
   #   Properties on 'A_COPY\D\G\rho':
   # svn:mergeinfo
-  #   /A/D/G/rho:4
+  #   /A/D/G/rho:5
   #   Properties on 'A_COPY':
   # svn:mergeinfo
-  #   /A:6
+  #   /A:7
   svntest.actions.run_and_verify_svn(None, None, [], 'merge',
  sbox.repo_url + '/A/D/G/rho',
- rho_COPY_path, '-c4')
+ rho_COPY_path, '-c5')
   svntest.actions.run_and_verify_svn(None, None, [], 'merge',
  sbox.repo_url + '/A',
- A_COPY_path, '-c6')
+ A_COPY_path, '-c7')
   svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
  'Cherrypicks to branch subtree and root',
  wc_dir)
@@ -540,46 +543,108 @@ def wc_target_inherits_mergeinfo_from_re
   # Eligible : Non-recursive  
   svntest.actions.run_and_verify_mergeinfo(
 adjust_error_for_server_version(''),
-['3','4'], sbox.repo_url + '/A/D', subtree_wc,
+['4','5'], sbox.repo_url + '/A/D', subtree_wc,
 '--show-revs', 'eligible')
 
   # Eligible : Recursive
   svntest.actions.run_and_verify_mergeinfo(
 adjust_error_for_server_version(''),
-['3',], sbox.repo_url + '/A/D', subtree_wc,
+['4'], sbox.repo_url + '/A/D', subtree_wc,
 '--show-revs', 'eligible', '-R')
 
   # Merged : Non-recursive
   #
-  # Currently this fails because r6 is not shown as merged, despite the fact
+  # Currently this fails because r7 is not shown as merged, despite the fact
   # that the target inherits it from ^/A_COPY
   svntest.actions.run_and_verify_mergeinfo(
 adjust_error_for_server_version(''),
-['6'], sbox.repo_url + '/A/D', subtree_wc,
+['7'], sbox.repo_url + '/A/D', subtree_wc,
 '--show-revs', 'merged')
 
   # Merged : Recursive
   #
-  # Currently this fails because r6 is again missing.
+  # Currently this fails because r7 is again missing.
   svntest.actions.run_and_verify_mergeinfo(
 adjust_error_for_server_version(''),
-['4','6'], sbox.repo_url + '/A/D', subtree_wc,
+['5','7'], sbox.repo_url + '/A/D', subtree_wc,
 '--show-revs', 'merged', '-R')
 
+  # Test that intersecting revisions in the 'svn mergeinfo' target
+  # from one source don't show up as merged when asking about a different
+  # source.
+  #
+  # In r9 make a change that effects two branches:
+  svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+  svntest.main.file_write(gamma_2_path, New content.\n)
+  svntest.main.file_write(tau_path, New content.\n)
+  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+ 'Make changes under both A and A_COPY_2',
+ wc_dir)
+
+  # In r10 merge r9 from A_COPY_2 to A_COPY.
+  #
+  # This gives us this mergeinfo:
+  #
+  #   Properties on 'A_COPY':
+  # svn:mergeinfo
+  #   /A:7
+  #   /A_COPY_2:9
+  #   Properties on 'A_COPY\D\G\rho':
+  # svn:mergeinfo
+  #   /A/D/G/rho:5
+  svntest.actions.run_and_verify_svn(None, 

svn commit: r1156721 - /subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 18:34:59 2011
New Revision: 1156721

URL: http://svn.apache.org/viewvc?rev=1156721view=rev
Log:
Follow-up to r1156717, remove some development commenting from the
issue #3986 test.

Modified:
subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py?rev=1156721r1=1156720r2=1156721view=diff
==
--- subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py Thu Aug 11 
18:34:59 2011
@@ -637,14 +637,14 @@ def wc_target_inherits_mergeinfo_from_re
 
 # list all tests here, starting with None:
 test_list = [ None,
-  #no_mergeinfo,
-  #mergeinfo,
-  #explicit_mergeinfo_source,
-  #mergeinfo_non_source,
-  #mergeinfo_on_unknown_url,
-  #non_inheritable_mergeinfo,
-  #recursive_mergeinfo,
-  #mergeinfo_on_pegged_wc_path,
+  no_mergeinfo,
+  mergeinfo,
+  explicit_mergeinfo_source,
+  mergeinfo_non_source,
+  mergeinfo_on_unknown_url,
+  non_inheritable_mergeinfo,
+  recursive_mergeinfo,
+  mergeinfo_on_pegged_wc_path,
   wc_target_inherits_mergeinfo_from_repos,
  ]
 




svn commit: r1156734 - in /subversion/branches/fs-py/subversion/libsvn_fs_py: fs.h fs_fs.c

2011-08-11 Thread hwright
Author: hwright
Date: Thu Aug 11 18:57:18 2011
New Revision: 1156734

URL: http://svn.apache.org/viewvc?rev=1156734view=rev
Log:
On the fs-py branch:
Use the Python version of max_files_per_dir as the canonical version.

* subversion/libsvn_fs_py/fs.h
  (fs_fs_data_t): Remove max_files_per_dir member.
 
* subversion/libsvn_fs_py/fs_fs.c:
  Fetch the max_files_per_dir value from the Python object, rather than a
  C struct.

Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h?rev=1156734r1=1156733r2=1156734view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h Thu Aug 11 18:57:18 
2011
@@ -206,10 +206,6 @@ typedef struct fs_fs_shared_data_t
 /* Private (non-shared) FSFS-specific data for each svn_fs_t object. */
 typedef struct fs_fs_data_t
 {
-  /* The maximum number of files to store per directory (for sharded
- layouts) or zero (for linear layouts). */
-  int max_files_per_dir;
-
   /* The revision that was youngest, last time we checked. */
   svn_revnum_t youngest_rev_cache;
 

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c?rev=1156734r1=1156733r2=1156734view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c Thu Aug 11 
18:57:18 2011
@@ -213,13 +213,17 @@ path_rev_packed(svn_fs_t *fs, svn_revnum
 apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int max_files_per_dir;
 
-  assert(ffd-max_files_per_dir);
+  svn_error_clear(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
+  max_files_per_dir));
+
+  assert(max_files_per_dir);
   assert(is_packed_rev(fs, rev));
 
   return svn_dirent_join_many(pool, fs-path, PATH_REVS_DIR,
   apr_psprintf(pool, %ld.pack,
-   rev / ffd-max_files_per_dir),
+   rev / max_files_per_dir),
   kind, NULL);
 }
 
@@ -227,11 +231,15 @@ static const char *
 path_rev_shard(svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int max_files_per_dir;
+
+  svn_error_clear(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
+  max_files_per_dir));
 
-  assert(ffd-max_files_per_dir);
+  assert(max_files_per_dir);
   return svn_dirent_join_many(pool, fs-path, PATH_REVS_DIR,
   apr_psprintf(pool, %ld,
- rev / ffd-max_files_per_dir),
+ rev / max_files_per_dir),
   NULL);
 }
 
@@ -239,10 +247,14 @@ static const char *
 path_rev(svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int max_files_per_dir;
+
+  svn_error_clear(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
+  max_files_per_dir));
 
   assert(! is_packed_rev(fs, rev));
 
-  if (ffd-max_files_per_dir)
+  if (max_files_per_dir)
 {
   return svn_dirent_join(path_rev_shard(fs, rev, pool),
  apr_psprintf(pool, %ld, rev),
@@ -280,11 +292,15 @@ static const char *
 path_revprops_shard(svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int max_files_per_dir;
+
+  svn_error_clear(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
+  max_files_per_dir));
 
-  assert(ffd-max_files_per_dir);
+  assert(max_files_per_dir);
   return svn_dirent_join_many(pool, fs-path, PATH_REVPROPS_DIR,
   apr_psprintf(pool, %ld,
-   rev / ffd-max_files_per_dir),
+   rev / max_files_per_dir),
   NULL);
 }
 
@@ -292,8 +308,12 @@ static const char *
 path_revprops(svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs-fsap_data;
+  int max_files_per_dir;
 
-  if (ffd-max_files_per_dir)
+  svn_error_clear(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
+  max_files_per_dir));
+
+  if (max_files_per_dir)
 {
   return svn_dirent_join(path_revprops_shard(fs, rev, pool),
  apr_psprintf(pool, %ld, rev),
@@ -1103,7 +1123,7 @@ 

svn commit: r1156750 - in /subversion/trunk/subversion: libsvn_client/mergeinfo.c libsvn_client/mergeinfo.h tests/cmdline/mergeinfo_tests.py

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 19:16:24 2011
New Revision: 1156750

URL: http://svn.apache.org/viewvc?rev=1156750view=rev
Log:
More fixes for issue #3986 'svn_client_mergeinfo_log API broken with WC
target which inherits mergeinfo from repos'.

Prior to this change svn_client__get_repos_mergeinfo_catalog promised a
a mergeinfo catalog with a key relative to RA_SESSION's session URL for the
target, but keys relative to the *root* of the repository for the subtrees.
It actually only ever did the latter...which caused some obvious problems
for one of its two callers, svn_client__get_wc_or_repos_mergeinfo_catalog,
which might call either svn_client__get_wc_mergeinfo_catalog or
svn_client__get_repos_mergeinfo_catalog and return a catalog keyed on either
repos-root-relative paths or session-relative-paths.  Ouch.  Both of these
functions are now consistent, returning a catalog keyed on root-relative
paths.

* subversion/libsvn_client/mergeinfo.c

  (svn_client__get_repos_mergeinfo_catalog): Make the mergeinfo catalog
   returned by this function consistent with
   svn_client__get_wc_mergeinfo_catalog; the keys to the catalog are now
   relative to the root of the repository, rather than relative to the root
   of the RA session passed in.

  (svn_client__get_wc_or_repos_mergeinfo_catalog): Account for change in
   mergeinfo catalog keys provided by
   svn_client__get_repos_mergeinfo_catalog.

  (get_mergeinfo): Stop changing mergeinfo catalog keys from relative to the
   session URL to relative to the root of the repository,
   svn_client__get_wc_or_repos_mergeinfo_catalog does this itself now.

* subversion/libsvn_client/mergeinfo.h

  (svn_client__get_repos_mergeinfo_catalog): Update doc string.

* subversion/tests/cmdline/mergeinfo_tests.py

  (wc_target_inherits_mergeinfo_from_repos): Remove XFail decorator and
   comments.

Modified:
subversion/trunk/subversion/libsvn_client/mergeinfo.c
subversion/trunk/subversion/libsvn_client/mergeinfo.h
subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.c?rev=1156750r1=1156749r2=1156750view=diff
==
--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Thu Aug 11 19:16:24 
2011
@@ -476,28 +476,66 @@ svn_client__get_repos_mergeinfo_catalog(
   apr_pool_t *scratch_pool)
 {
   svn_error_t *err;
-  svn_mergeinfo_t repos_mergeinfo;
+  svn_mergeinfo_t repos_mergeinfo_cat;
   apr_array_header_t *rel_paths = apr_array_make(scratch_pool, 1,
  sizeof(rel_path));
 
   APR_ARRAY_PUSH(rel_paths, const char *) = rel_path;
 
   /* Fetch the mergeinfo. */
-  err = svn_ra_get_mergeinfo2(ra_session, repos_mergeinfo, rel_paths, rev,
-  inherit, validate_inherited_mergeinfo,
+  err = svn_ra_get_mergeinfo2(ra_session, repos_mergeinfo_cat, rel_paths,
+  rev, inherit, validate_inherited_mergeinfo,
   include_descendants, result_pool);
   if (err)
 {
   if (squelch_incapable  err-apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
 {
   svn_error_clear(err);
-  repos_mergeinfo = NULL;
+  *mergeinfo_cat = NULL;
 }
   else
 return svn_error_trace(err);
 }
 
-  *mergeinfo_cat = repos_mergeinfo;
+  if (repos_mergeinfo_cat == NULL)
+{
+  *mergeinfo_cat = NULL;
+}
+  else
+{
+  const char *repos_root;
+  const char *session_url;
+
+  SVN_ERR(svn_ra_get_repos_root2(ra_session, repos_root, scratch_pool));
+  SVN_ERR(svn_ra_get_session_url(ra_session, session_url, scratch_pool));
+
+  if (strcmp(repos_root, session_url) == 0)
+{
+  *mergeinfo_cat = repos_mergeinfo_cat;
+}
+  else
+{
+  apr_hash_index_t *hi;
+  svn_mergeinfo_catalog_t rekeyed_mergeinfo_cat =
+apr_hash_make(result_pool);
+
+  for (hi = apr_hash_first(scratch_pool, repos_mergeinfo_cat);
+   hi;
+   hi = apr_hash_next(hi))
+{
+  const char *path =
+svn_path_url_add_component2(session_url,
+svn__apr_hash_index_key(hi),
+scratch_pool);
+  SVN_ERR(svn_ra_get_path_relative_to_root(ra_session, path,
+   path,
+   result_pool));
+  apr_hash_set(rekeyed_mergeinfo_cat, path, APR_HASH_KEY_STRING,
+   svn__apr_hash_index_val(hi));
+}
+  *mergeinfo_cat = rekeyed_mergeinfo_cat;
+}
+}
   return SVN_NO_ERROR;
 }
 
@@ 

svn commit: r1156826 - in /subversion/trunk/subversion/bindings/ctypes-python: csvn/repos.py test/remoterepos.py

2011-08-11 Thread julianfoad
Author: julianfoad
Date: Thu Aug 11 20:56:26 2011
New Revision: 1156826

URL: http://svn.apache.org/viewvc?rev=1156826view=rev
Log:
In the ctypes-python bindings: fix two RemoteRepository methods to return
the Python types they claim to return, and add tests for these and other
methods that had no tests.

This is an API change in the ctypes-python bindings.

* subversion/bindings/ctypes-python/csvn/repos.py
  (RemoteRepository.list): Create and return a Python dictionary of
svn_dirent_t objects instead of the Hash of pointer objects.
  (RemoteRepository.info): Dereference the pointer object and so return a
svn_dirent_t object.

* subversion/bindings/ctypes-python/test/remoterepos.py
  (RemoteRepositoryTestCase): Add tests for the list, info, proplist,
propget and log methods. (The remaining untested method is 'cat', for
which I have not yet been able to write a test that does not crash.)

Modified:
subversion/trunk/subversion/bindings/ctypes-python/csvn/repos.py
subversion/trunk/subversion/bindings/ctypes-python/test/remoterepos.py

Modified: subversion/trunk/subversion/bindings/ctypes-python/csvn/repos.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/ctypes-python/csvn/repos.py?rev=1156826r1=1156825r2=1156826view=diff
==
--- subversion/trunk/subversion/bindings/ctypes-python/csvn/repos.py (original)
+++ subversion/trunk/subversion/bindings/ctypes-python/csvn/repos.py Thu Aug 11 
20:56:26 2011
@@ -154,7 +154,12 @@ class RemoteRepository(object):
 svn_ra_get_dir2(self, dirents.byref(), NULL, NULL, path,
 rev, fields, dirents.pool)
 self.iterpool.clear()
-return dirents
+# Create a Python dict of svn_dirent_t objects from this Hash of
+# pointers to svn_dirent_t.
+result = {}
+for path, dirent_p in dirents.items():
+result[path] = dirent_p[0]
+return result
 
 def cat(self, buffer, path, rev = SVN_INVALID_REVNUM):
 Get PATH@REV and save it to BUFFER. BUFFER must be a Python file
@@ -178,7 +183,7 @@ class RemoteRepository(object):
 rev = self.latest_revnum()
 svn_ra_stat(self, path, rev, byref(dirent), dirent.pool)
 self.iterpool.clear()
-return dirent
+return dirent[0]
 
 def proplist(self, path, rev = SVN_INVALID_REVNUM):
 Return a dictionary containing the properties on PATH@REV

Modified: subversion/trunk/subversion/bindings/ctypes-python/test/remoterepos.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/ctypes-python/test/remoterepos.py?rev=1156826r1=1156825r2=1156826view=diff
==
--- subversion/trunk/subversion/bindings/ctypes-python/test/remoterepos.py 
(original)
+++ subversion/trunk/subversion/bindings/ctypes-python/test/remoterepos.py Thu 
Aug 11 20:56:26 2011
@@ -27,6 +27,13 @@ from csvn.core import *
 from urllib import pathname2url
 from csvn.repos import LocalRepository, RemoteRepository
 from stat import *
+from sys import version_info # For Python version check
+if version_info[0] = 3:
+  # Python =3.0
+  from io import StringIO
+else:
+  # Python 3.0
+  from StringIO import StringIO
 
 repos_location = os.path.join(tempfile.gettempdir(), svn_test_repos)
 repos_url = pathname2url(repos_location)
@@ -64,6 +71,15 @@ class RemoteRepositoryTestCase(unittest.
 if os.path.exists(repos_location):
 svn_repos_delete(repos_location, Pool())
 
+def svn_dirent_t_assert_equal(self, a, b):
+Assert that two svn_dirent_t's are equal, ignoring their 'time'
+   fields.
+self.assertEqual(a.kind, b.kind)
+self.assertEqual(a.size, b.size)
+self.assertEqual(a.has_props, b.has_props)
+self.assertEqual(a.created_rev, b.created_rev)
+self.assertEqual(a.last_author, b.last_author)
+
 def test_remote_latest_revnum(self):
 self.assertEqual(9, self.repos.latest_revnum())
 
@@ -77,6 +93,50 @@ class RemoteRepositoryTestCase(unittest.
 self.assertEqual(svn_node_none,
 self.repos.check_path(does_not_compute))
 
+def test_list(self):
+expected = {
+'README.txt':
+svn_dirent_t(kind=svn_node_file, size=159, has_props=True,
+ created_rev=9, last_author=String('bruce')),
+'ANOTHERREADME.txt':
+svn_dirent_t(kind=svn_node_file, size=66, has_props=False,
+ created_rev=4, last_author=String('clark')) }
+found = self.repos.list(trunk)
+self.assertEqual(sorted(found.keys()), sorted(expected.keys()))
+for path in found:
+self.svn_dirent_t_assert_equal(found[path], expected[path])
+
+def test_info(self):
+e = svn_dirent_t(kind=svn_node_file, size=159, has_props=True,
+ 

svn commit: r1156827 - in /subversion/trunk/subversion: libsvn_client/mergeinfo.c tests/cmdline/mergeinfo_tests.py

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 20:57:22 2011
New Revision: 1156827

URL: http://svn.apache.org/viewvc?rev=1156827view=rev
Log:
Final fix for issue #3986 'svn_client_mergeinfo_log API broken 
with WC target which inherits mergeinfo from repos'.

* subversion/libsvn_client/mergeinfo.c

  (filter_log_entry_baton_t): Better document a couple members.

  (filter_log_entry_with_rangelist): Consider both the merge source *path*
   as well as the revision when determining if a rev was already merged or
   is eligible to merge.  Previously we were only considering if the *revs*
   matched, but both must be considered to be accurate (and not do things
   like filtering unmerged revisions when asked for eligible revs).

* subversion/tests/cmdline/mergeinfo_tests.py

  (which inherits mergeinfo from repos): Remove XFail decorator.

Modified:
subversion/trunk/subversion/libsvn_client/mergeinfo.c
subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.c?rev=1156827r1=1156826r2=1156827view=diff
==
--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Thu Aug 11 20:57:22 
2011
@@ -1356,6 +1356,8 @@ find_nearest_ancestor(const apr_array_he
svn_log_entry_receiver_t callback. */
 struct filter_log_entry_baton_t
 {
+  /* Is TRUE if RANGELIST describes potentially merged revisions, is FALSE
+ if RANGELIST describes potentially eligible revisions. */
   svn_boolean_t filtering_merged;
 
   /* Unsorted array of repository relative paths representing the merge
@@ -1373,8 +1375,9 @@ struct filter_log_entry_baton_t
  TARGET_MERGEINFO_CATALOG. */
   apr_array_header_t *depth_first_catalog_index;
 
-  /* A rangelist describing all the ranges merged to ABS_REPOS_TARGET_PATH
- from the */
+  /* A rangelist describing all the revisions potentially merged or
+ potentially eligible for merging (see FILTERING_MERGED) based on
+ the target's explicit or inherited mergeinfo. */
   const apr_array_header_t *rangelist;
 
   /* The wrapped svn_log_entry_receiver_t callback and baton which
@@ -1389,9 +1392,18 @@ struct filter_log_entry_baton_t
`struct filter_log_entry_baton_t *'.
 
Call the wrapped log receiver BATON-log_receiver (with
-   BATON-log_receiver_baton), only if the log entry falls within the
-   ranges in BATON-rangelist.
- */
+   BATON-log_receiver_baton) if:
+   
+   BATON-FILTERING_MERGED is FALSE and the changes represented by LOG_ENTRY
+   have been fully merged from BATON-MERGE_SOURCE_PATHS to the WC target
+   based on the mergeinfo for the WC contained in 
BATON-TARGET_MERGEINFO_CATALOG.
+
+   Or
+
+   BATON-FILTERING_MERGED is TRUE and the changes represented by LOG_ENTRY
+   have not been merged, or only partially merged, from
+   BATON-MERGE_SOURCE_PATHS to the WC target based on the mergeinfo for the
+   WC contained in BATON-TARGET_MERGEINFO_CATALOG. */
 static svn_error_t *
 filter_log_entry_with_rangelist(void *baton,
 svn_log_entry_t *log_entry,
@@ -1454,6 +1466,7 @@ filter_log_entry_with_rangelist(void *ba
   apr_hash_index_t *hi2;
   svn_boolean_t found_this_revision = FALSE;
   const char *merge_source_rel_target;
+  const char *merge_source_path;
 
   svn_pool_clear(iterpool);
 
@@ -1461,8 +1474,8 @@ filter_log_entry_with_rangelist(void *ba
  merge sources.  If not then ignore this path.  */
   for (i = 0; i  fleb-merge_source_paths-nelts; i++)
 {
-  const char *merge_source_path
-= APR_ARRAY_IDX(fleb-merge_source_paths, i, const char *);
+  merge_source_path = APR_ARRAY_IDX(fleb-merge_source_paths,
+i, const char *);
 
   merge_source_rel_target
 = svn_fspath__skip_ancestor(merge_source_path, path);
@@ -1496,20 +1509,33 @@ filter_log_entry_with_rangelist(void *ba
hi2;
hi2 = apr_hash_next(hi2))
 {
+  const char *mergeinfo_path = svn__apr_hash_index_key(hi2);
   apr_array_header_t *rangelist = svn__apr_hash_index_val(hi2);
-  SVN_ERR(svn_rangelist_intersect(intersection, rangelist,
-  this_rev_rangelist, FALSE,
-  iterpool));
-  if (intersection-nelts)
+
+  /* Does the mergeinfo for PATH reflect if
+ LOG_ENTRY-REVISION was previously merged
+ from MERGE_SOURCE_PATH? */
+  if (svn_fspath__is_ancestor(merge_source_path,
+  

svn propchange: r1156216 - svn:log

2011-08-11 Thread pburba
Author: pburba
Revision: 1156216
Modified property: svn:log

Modified: svn:log at Thu Aug 11 21:16:41 2011
--
--- svn:log (original)
+++ svn:log Thu Aug 11 21:16:41 2011
@@ -1,5 +1,5 @@
-Add a test for issue #3986 'svn_client_mergeinfo_log API broken with WC
-target which inherits mergeinfo from repos'.
+Add a test for issue #3986 'svn_client_mergeinfo_log API is
+broken'.
 
 * subversion/tests/cmdline/mergeinfo_tests.py
 



svn propchange: r1156312 - svn:log

2011-08-11 Thread pburba
Author: pburba
Revision: 1156312
Modified property: svn:log

Modified: svn:log at Thu Aug 11 21:17:07 2011
--
--- svn:log (original)
+++ svn:log Thu Aug 11 21:17:07 2011
@@ -1,5 +1,4 @@
-Partial fix for issue #3986 'svn_client_mergeinfo_log API broken with WC
-target which inherits mergeinfo from repos'.
+Partial fix for issue #3986 'svn_client_mergeinfo_log API is broken'.
 
 * subversion/libsvn_client/mergeinfo.c
 



svn propchange: r1156717 - svn:log

2011-08-11 Thread pburba
Author: pburba
Revision: 1156717
Modified property: svn:log

Modified: svn:log at Thu Aug 11 21:17:47 2011
--
--- svn:log (original)
+++ svn:log Thu Aug 11 21:17:47 2011
@@ -1,6 +1,5 @@
-Update test for issue #3986 'svn_client_mergeinfo_log API broken with WC
-target which inherits mergeinfo from repos' to cover another failing use
-case.
+Update test for issue #3986 'svn_client_mergeinfo_log API is broken' to
+cover another failing use case.
 
 * subversion/tests/cmdline/mergeinfo_tests.py
   (wc_target_inherits_mergeinfo_from_repos): Cover the use case analogous to



svn propchange: r1156750 - svn:log

2011-08-11 Thread pburba
Author: pburba
Revision: 1156750
Modified property: svn:log

Modified: svn:log at Thu Aug 11 21:18:18 2011
--
--- svn:log (original)
+++ svn:log Thu Aug 11 21:18:18 2011
@@ -1,5 +1,4 @@
-More fixes for issue #3986 'svn_client_mergeinfo_log API broken with WC
-target which inherits mergeinfo from repos'.
+More fixes for issue #3986 'svn_client_mergeinfo_log API is broken'.
 
 Prior to this change svn_client__get_repos_mergeinfo_catalog promised a
 a mergeinfo catalog with a key relative to RA_SESSION's session URL for the



svn propchange: r1156827 - svn:log

2011-08-11 Thread pburba
Author: pburba
Revision: 1156827
Modified property: svn:log

Modified: svn:log at Thu Aug 11 21:18:29 2011
--
--- svn:log (original)
+++ svn:log Thu Aug 11 21:18:29 2011
@@ -1,5 +1,4 @@
-Final fix for issue #3986 'svn_client_mergeinfo_log API broken 
-with WC target which inherits mergeinfo from repos'.
+Final fix for issue #3986 'svn_client_mergeinfo_log API is broken'.
 
 * subversion/libsvn_client/mergeinfo.c
 



svn commit: r1156838 - /subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 21:21:15 2011
New Revision: 1156838

URL: http://svn.apache.org/viewvc?rev=1156838view=rev
Log:
Update a comment for issue #3986 test.

Modified:
subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py?rev=1156838r1=1156837r2=1156838view=diff
==
--- subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py Thu Aug 11 
21:21:15 2011
@@ -490,8 +490,7 @@ def mergeinfo_on_pegged_wc_path(sbox):
 ['4', '5'], A_path, A_COPY_path + '@PREV', '--show-revs', 'eligible')
 
 #--
-# A test for issue 3986 'svn_client_mergeinfo_log API broken with WC target
-# which inherits mergeinfo from repos'.
+# A test for issue 3986 'svn_client_mergeinfo_log API is broken'.
 @Issue(3986)
 @SkipUnless(server_has_mergeinfo)
 def wc_target_inherits_mergeinfo_from_repos(sbox):




svn commit: r1156844 - /subversion/branches/1.7.x/STATUS

2011-08-11 Thread pburba
Author: pburba
Date: Thu Aug 11 21:54:11 2011
New Revision: 1156844

URL: http://svn.apache.org/viewvc?rev=1156844view=rev
Log:
* STATUS: Nominate issue #3986 fixes.


Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1156844r1=1156843r2=1156844view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Thu Aug 11 21:54:11 2011
@@ -195,6 +195,15 @@ Candidate changes:
  +0: danielsh
  +1: stsp
 
+ * r1156216, r1156312, r1156717, r1156721, r1156750, r1156827, r1156838
+   Fix issue #3986 'svn_client_mergeinfo_log API is broken'.
+   Justification:
+ svn_client_mergeinfo_log gives the wrong answer in some basic use cases.
+ This is a regression from 1.6.  Bugs in private APIs could lead to other
+ bugs.
+   Votes:
+ +1: pburba
+
 Veto-blocked changes:
 =
 




RE: svn commit: r1156756 - /subversion/trunk/subversion/libsvn_client/patch.c

2011-08-11 Thread Bert Huijben


 -Original Message-
 From: s...@apache.org [mailto:s...@apache.org]
 Sent: donderdag 11 augustus 2011 21:29
 To: commits@subversion.apache.org
 Subject: svn commit: r1156756 -
 /subversion/trunk/subversion/libsvn_client/patch.c
 
 Author: stsp
 Date: Thu Aug 11 19:29:25 2011
 New Revision: 1156756
 
 URL: http://svn.apache.org/viewvc?rev=1156756view=rev
 Log:
 * subversion/libsvn_client/patch.c
   (resolve_target_path): Rename LOCAL_ABSPATH parameter to the more
 obvious
WCROOT_ABSPATH. It is the absolute path of the working copy root.
   (choose_target_filename): Rename BASE_DIR parameter to
 WCROOT_ABSPATH for
the same reason.

Looking at the callers this argument is not necessary the real wcroot, but just 
the directory where the path is applied to. 
(svn_client_patch performs baton.abs_wc_path = wc_dir_abspath which is then 
used for wcroot_abspath for this function).

As I don't think the working copy root is the only valid patch target, I think 
this argument should have a different name.

Bert



svn commit: r1156925 - in /subversion/branches/fs-py/subversion: libsvn_fs_py/fs.h libsvn_fs_py/fs_fs.c libsvn_fs_py/py_util.c libsvn_fs_py/py_util.h libsvn_fs_py/rep-cache.c python/svn/fs.py

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 00:52:01 2011
New Revision: 1156925

URL: http://svn.apache.org/viewvc?rev=1156925view=rev
Log:
On the fs-py branch:
Remove the youngest_rev_cache member from the FS data object, in favor of the
Python value.

* subversion/python/svn/fs.py
  (FS._ensure_revision_exists): Remove the translation of the error message.
  (FS._open_fs): Read the youngest rev.

* subversion/libsvn_fs_py/fs.h
  (fs_fs_data_t): Remove youngest_rev_cache member.
 
* subversion/libsvn_fs_py/fs_fs.c
  (svn_fs_py__open): Don't read the youngest rev (that's now done in Python).
  (svn_fs_py__youngest_rev): Don't set the youngest rev cache here.
  (commit_body): Set the Python youngest rev, not the C one.
  (svn_fs_py__create): Don't set the youngest rev.
 
* subversion/libsvn_fs_py/rep-cache.c
  (rep_has_been_born): Fetch the youngest_cache rev from the Python object.

* subversion/libsvn_fs_py/py_util.c
  (set_int_attr_baton, set_int_attr, svn_fs_py__set_int_attr): New.

* subversion/libsvn_fs_py/py_util.h
  (svn_fs_py__set_int_attr): New.

Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.h
subversion/branches/fs-py/subversion/libsvn_fs_py/rep-cache.c
subversion/branches/fs-py/subversion/python/svn/fs.py

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h?rev=1156925r1=1156924r2=1156925view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs.h Fri Aug 12 00:52:01 
2011
@@ -206,9 +206,6 @@ typedef struct fs_fs_shared_data_t
 /* Private (non-shared) FSFS-specific data for each svn_fs_t object. */
 typedef struct fs_fs_data_t
 {
-  /* The revision that was youngest, last time we checked. */
-  svn_revnum_t youngest_rev_cache;
-
   /* The fsfs.conf file, parsed.  Allocated in FS-pool. */
   svn_config_t *config;
 

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c?rev=1156925r1=1156924r2=1156925view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c Fri Aug 12 
00:52:01 2011
@@ -1265,7 +1265,7 @@ svn_fs_py__open(svn_fs_t *fs, const char
   /* Read the configuration file. */
   SVN_ERR(read_config(fs, pool));
 
-  return get_youngest((ffd-youngest_rev_cache), path, pool);
+  return SVN_NO_ERROR;
 }
 
 /* Wrapper around svn_io_file_create which ignores EEXIST. */
@@ -1743,8 +1743,6 @@ svn_fs_py__youngest_rev(svn_revnum_t *yo
 
   Py_DECREF(p_rev);
 
-  ffd-youngest_rev_cache = *youngest_p;
-
   return SVN_NO_ERROR;
 }
 
@@ -6156,7 +6154,7 @@ commit_body(void *baton, apr_pool_t *poo
  created. */
   *cb-new_rev_p = new_rev;
 
-  ffd-youngest_rev_cache = new_rev;
+  SVN_ERR(svn_fs_py__set_int_attr(ffd-p_fs, __youngest_rev_cache, new_rev));
 
   /* Remove this transaction directory. */
   SVN_ERR(svn_fs_py__purge_txn(cb-fs, cb-txn-id, pool));
@@ -6306,7 +6304,6 @@ svn_fs_py__create(svn_fs_t *fs,
   SVN_ERR(write_format(path_format(fs, pool),
format, max_files_per_dir, FALSE, pool));
 
-  ffd-youngest_rev_cache = 0;
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c?rev=1156925r1=1156924r2=1156925view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c Fri Aug 12 
00:52:01 2011
@@ -347,6 +347,42 @@ svn_fs_py__get_int_attr(int *result,
 }
 
 
+struct set_int_attr_baton
+{
+  PyObject *p_obj;
+  const char *name;
+  long int val;
+};
+
+
+static void
+set_int_attr(void *baton,
+ va_list argp)
+{
+  struct set_int_attr_baton *siab = baton;
+  PyObject *p_int;
+
+  p_int = PyInt_FromLong(siab-val);
+  if (PyErr_Occurred())
+return;
+
+  PyObject_SetAttrString(siab-p_obj, siab-name, p_int);
+  Py_DECREF(p_int);
+
+  return;
+}
+
+
+svn_error_t *
+svn_fs_py__set_int_attr(PyObject *p_obj,
+const char *name,
+long int val)
+{
+  struct set_int_attr_baton siab = { p_obj, name, val };
+  return svn_error_trace(catch_py_exception(set_int_attr, siab, NULL));
+}
+
+
 struct call_method_baton
 {
   PyObject **p_result;

Modified: 

svn commit: r1156946 - /subversion/site/publish/download/download.html

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 03:16:25 2011
New Revision: 1156946

URL: http://svn.apache.org/viewvc?rev=1156946view=rev
Log:
Post the 1.7.0-beta3 to the website for download.

* publish/download/download.html
  (pre-release): Update links and sha1s for 1.7.0-beta3.

Modified:
subversion/site/publish/download/download.html

Modified: subversion/site/publish/download/download.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/download/download.html?rev=1156946r1=1156945r2=1156946view=diff
==
--- subversion/site/publish/download/download.html (original)
+++ subversion/site/publish/download/download.html Fri Aug 12 03:16:25 2011
@@ -169,7 +169,7 @@ Other mirrors:
 
 /div !-- .notice --
 
-p style=font-size: 150%; text-align: center;Subversion 1.7.0-beta2/p
+p style=font-size: 150%; text-align: center;Subversion 1.7.0-beta3/p
 table class=centered
 tr
   thFile/th
@@ -177,19 +177,19 @@ Other mirrors:
   thSignatures/th
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta2.tar.gzsubversion-1.7.0-beta2.tar.gz/a/td
-  td class=checksum0d6c5605eb369156aaa0329a2c7e8e92bffc79bf/td
-  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.tar.gz.asc;PGP/a]/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.gzsubversion-1.7.0-beta2.tar.gz/a/td
+  td class=checksumfdd22605c83ad601810e9cd980116ebcde45ef20/td
+  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.gz.asc;PGP/a]/td
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta2.tar.bz2subversion-1.7.0-beta2.tar.bz2/a/td
-  td class=checksum96d9a3ca607dda3e7889061d8276822f92b2b078/td
-  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.tar.bz2.asc;PGP/a]/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.bz2subversion-1.7.0-beta2.tar.bz2/a/td
+  td class=checksum65c2d68522e3aac8870a81d942d9962bb5399ed3/td
+  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.bz2.asc;PGP/a]/td
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta2.zipsubversion-1.7.0-beta2.zip/a/td
-  td class=checksum02ee27ce1158f987fd6507839d96775c63b94ff2/td
-  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.zip.asc;PGP/a]/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.zipsubversion-1.7.0-beta2.zip/a/td
+  td class=checksume4a9b4c97db74cb2931466a14311db10a6220039/td
+  td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.zip.asc;PGP/a]/td
 /tr
 /table
 




svn commit: r1156948 - /subversion/site/publish/download/download.html

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 03:19:52 2011
New Revision: 1156948

URL: http://svn.apache.org/viewvc?rev=1156948view=rev
Log:
* download/download.html
  (pre-releases): Followup to r1156946: actually change the link names, too.

Modified:
subversion/site/publish/download/download.html

Modified: subversion/site/publish/download/download.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/download/download.html?rev=1156948r1=1156947r2=1156948view=diff
==
--- subversion/site/publish/download/download.html (original)
+++ subversion/site/publish/download/download.html Fri Aug 12 03:19:52 2011
@@ -177,17 +177,17 @@ Other mirrors:
   thSignatures/th
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.gzsubversion-1.7.0-beta2.tar.gz/a/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.gzsubversion-1.7.0-beta3.tar.gz/a/td
   td class=checksumfdd22605c83ad601810e9cd980116ebcde45ef20/td
   td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.gz.asc;PGP/a]/td
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.bz2subversion-1.7.0-beta2.tar.bz2/a/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.tar.bz2subversion-1.7.0-beta3.tar.bz2/a/td
   td class=checksum65c2d68522e3aac8870a81d942d9962bb5399ed3/td
   td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.bz2.asc;PGP/a]/td
 /tr
 tr
-  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.zipsubversion-1.7.0-beta2.zip/a/td
+  tda 
href=[preferred]subversion/subversion-1.7.0-beta3.zipsubversion-1.7.0-beta3.zip/a/td
   td class=checksume4a9b4c97db74cb2931466a14311db10a6220039/td
   td[a 
href=http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.zip.asc;PGP/a]/td
 /tr




svn commit: r1156952 - in /subversion/branches/fs-py/subversion: libsvn_fs_py/fs_fs.c python/svn/__init__.py python/svn/_cache.py python/svn/err.py python/svn/fs.py

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 03:32:50 2011
New Revision: 1156952

URL: http://svn.apache.org/viewvc?rev=1156952view=rev
Log:
On the fs-py branch:
Write the skeleton configuration file when creating a filesystem in Python.
Also tweak some error handling.

* subversion/python/svn/err.py:
  New.

* subversion/python/svn/__init__.py
  (SubversionException.__init__): Switch order of arguments, since that's how
we were calling them.
 
* subversion/python/svn/_cache.py:
  New.

* subversion/python/svn/fs.py
  (): More constants and imports.
  (FS._write_config): New.
  (FS._ensure_revision_exists): Remove i18n wrapper from error message.
  (FS.__setup_paths): Add a path for the config file.

* subversion/libsvn_fs_py/fs_fs.c
  (svn_fs_py__create): Remove the call to create the config.

Added:
subversion/branches/fs-py/subversion/python/svn/_cache.py   (with props)
subversion/branches/fs-py/subversion/python/svn/err.py   (with props)
Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
subversion/branches/fs-py/subversion/python/svn/__init__.py
subversion/branches/fs-py/subversion/python/svn/fs.py

Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c?rev=1156952r1=1156951r2=1156952view=diff
==
--- subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/fs_fs.c Fri Aug 12 
03:32:50 2011
@@ -6286,8 +6286,6 @@ svn_fs_py__create(svn_fs_t *fs,
   SVN_ERR(svn_fs_py__get_int_attr(max_files_per_dir, ffd-p_fs,
   max_files_per_dir));
 
-  SVN_ERR(write_config(fs, pool));
-
   SVN_ERR(read_config(fs, pool));
 
   /* Create the txn-current file if the repository supports

Modified: subversion/branches/fs-py/subversion/python/svn/__init__.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/python/svn/__init__.py?rev=1156952r1=1156951r2=1156952view=diff
==
--- subversion/branches/fs-py/subversion/python/svn/__init__.py (original)
+++ subversion/branches/fs-py/subversion/python/svn/__init__.py Fri Aug 12 
03:32:50 2011
@@ -20,7 +20,7 @@
 
 
 class SubversionException(Exception):
-def __init__(self, msg, code = 0):
+def __init__(self, code, msg):
 self.message = msg
 self.code = code
 

Added: subversion/branches/fs-py/subversion/python/svn/_cache.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/python/svn/_cache.py?rev=1156952view=auto
==
--- subversion/branches/fs-py/subversion/python/svn/_cache.py (added)
+++ subversion/branches/fs-py/subversion/python/svn/_cache.py Fri Aug 12 
03:32:50 2011
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# License); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+CONFIG_CATEGORY_MEMCACHED_SERVERS = memcached-servers

Propchange: subversion/branches/fs-py/subversion/python/svn/_cache.py
--
svn:eol-style = native

Added: subversion/branches/fs-py/subversion/python/svn/err.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/python/svn/err.py?rev=1156952view=auto
==
--- subversion/branches/fs-py/subversion/python/svn/err.py (added)
+++ subversion/branches/fs-py/subversion/python/svn/err.py Fri Aug 12 03:32:50 
2011
@@ -0,0 +1,279 @@
+#!/usr/bin/env python
+### This file automatically generated by tools/dev/gen-py-error.py,
+### which see for more information
+###
+### It is versioned for convenience.
+
+APMOD_ACTIVITY_NOT_FOUND = 190002
+APMOD_BAD_BASELINE = 190003
+APMOD_CONNECTION_ABORTED = 190004
+APMOD_MALFORMED_URI = 190001
+APMOD_MISSING_PATH_TO_FS = 19
+ASSERTION_FAIL = 235000
+ASSERTION_ONLY_TRACING_LINKS = 235001
+ATOMIC_INIT_FAILURE = 200029
+AUTHN_CREDS_NOT_SAVED = 215003
+AUTHN_CREDS_UNAVAILABLE = 215000
+AUTHN_FAILED = 215004

svn commit: r1156953 - /subversion/trunk/tools/dist/release.py

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 03:34:53 2011
New Revision: 1156953

URL: http://svn.apache.org/viewvc?rev=1156953view=rev
Log:
* tools/dist/release.py
  (move_to_dist): Copy, not move, the tarballs and sigs to the dist directory.

Modified:
subversion/trunk/tools/dist/release.py

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1156953r1=1156952r2=1156953view=diff
==
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Fri Aug 12 03:34:53 2011
@@ -538,7 +538,7 @@ def move_to_dist(args):
 filenames = glob.glob(os.path.join(target,
'subversion-%s.*' % str(args.version)))
 for filename in filenames:
-shutil.move(filename, args.dist_dir)
+shutil.copy(filename, args.dist_dir)
 
 
 #--




svn commit: r1156954 - in /subversion/site/publish: index.html news.html

2011-08-11 Thread hwright
Author: hwright
Date: Fri Aug 12 03:43:48 2011
New Revision: 1156954

URL: http://svn.apache.org/viewvc?rev=1156954view=rev
Log:
Publish 1.7.0-beta3 to the website.

* publish/news.html
  (news-20110812): New.

* publish/index.html
  (news-20110812): New.
  (news-20110623): Remove.

Modified:
subversion/site/publish/index.html
subversion/site/publish/news.html

Modified: subversion/site/publish/index.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/index.html?rev=1156954r1=1156953r2=1156954view=diff
==
--- subversion/site/publish/index.html (original)
+++ subversion/site/publish/index.html Fri Aug 12 03:43:48 2011
@@ -64,6 +64,28 @@
 
 !-- In general, we'll keep only the most recent 3 or 4 news items here. --
 
+div class=h3 id=news-20110812 
+h32011-08-12 mdash; Apache Subversion 1.7.0-beta3 Released
+ a class=sectionlink href=#news-20110812
+ title=Link to this sectionpara;/a 
+/h3 
+ 
+pWe are pleased to announce to release of Apache Subversion 1.7.0-beta3. This
+ release is not intended for production use, but is provided as a milestone
+ to encourage wider testing and feedback from intrepid users and maintainers.
+ Please see the
+ a href=http://svn.haxx.se/dev/archive-2011-08/0219.shtml;release
+ announcement/a for more information about this release, and the
+ a href=/docs/release-notes/1.7.htmlrelease notes/a and 
+ a 
href=http://svn.apache.org/repos/asf/subversion/tags/1.7.0-beta3/CHANGES; 
+ change log/a for information about what will eventually be
+ in the 1.7.0 release./p 
+ 
+pTo get this release from the nearest mirror, please visit our
+ a href=/download/#pre-releasesdownload page/a./p 
+ 
+/div !-- #news-20110812 -- 
+
 div class=h3 id=news-20110724 
 h32011-07-24 mdash; Apache Subversion 1.7.0-beta2 Released
  a class=sectionlink href=#news-20110724
@@ -112,29 +134,6 @@
  
 /div !-- #news-20110711 -- 
 
-div class=h3 id=news-20110623 
-h32011-06-23 mdash; Apache Subversion 1.7.0-alpha2 Released
- a class=sectionlink href=#news-20110623
- title=Link to this sectionpara;/a 
-/h3 
- 
-pWe are please to announce the next Subversion 1.7.0 prerelease:
- Apache Subversion 1.7.0-alpha2. This
- release is not intended for production use, but is provided as a milestone
- to encourage wider testing and feedback from intrepid users and maintainers.
- Please see the
- a href=http://svn.haxx.se/dev/archive-2011-06/0764.shtml;release
- announcement/a for more information about this release, and the
- a href=/docs/release-notes/1.7.htmlrelease notes/a and 
- a 
href=http://svn.apache.org/repos/asf/subversion/tags/1.7.0-alpha2/CHANGES; 
- change log/a for information about what will eventually be
- in the 1.7.0 release./p 
- 
-pTo get this release from the nearest mirror, please visit our
- a href=/download/#pre-releasesdownload page/a./p 
- 
-/div !-- #news-20110623 -- 
-
 
 p style=font-style: italic; text-align:
right;[Click a href=/news.htmlhere/a to see all News

Modified: subversion/site/publish/news.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/news.html?rev=1156954r1=1156953r2=1156954view=diff
==
--- subversion/site/publish/news.html (original)
+++ subversion/site/publish/news.html Fri Aug 12 03:43:48 2011
@@ -22,6 +22,28 @@
 !-- Maybe we could insert H2's to split up the news items by  --
 !-- calendar year if we felt the need to do so.   --
 
+div class=h3 id=news-20110812 
+h32011-08-12 mdash; Apache Subversion 1.7.0-beta3 Released
+ a class=sectionlink href=#news-20110812
+ title=Link to this sectionpara;/a 
+/h3 
+ 
+pWe are pleased to announce to release of Apache Subversion 1.7.0-beta3. This
+ release is not intended for production use, but is provided as a milestone
+ to encourage wider testing and feedback from intrepid users and maintainers.
+ Please see the
+ a href=http://svn.haxx.se/dev/archive-2011-08/0219.shtml;release
+ announcement/a for more information about this release, and the
+ a href=/docs/release-notes/1.7.htmlrelease notes/a and 
+ a 
href=http://svn.apache.org/repos/asf/subversion/tags/1.7.0-beta3/CHANGES; 
+ change log/a for information about what will eventually be
+ in the 1.7.0 release./p 
+ 
+pTo get this release from the nearest mirror, please visit our
+ a href=/download/#pre-releasesdownload page/a./p 
+ 
+/div !-- #news-20110812 -- 
+
 div class=h3 id=news-20110724 
 h32011-07-24 mdash; Apache Subversion 1.7.0-beta2 Released
  a class=sectionlink href=#news-20110724