You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/10/12 14:38:44 UTC

svn commit: r1182334 [5/5] - in /subversion/branches/showing-merge-info: ./ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/tigris/subversion/javahl/ subversion/bindings/javahl/tests/org/apache/subversion/javahl/ subversion/includ...

Modified: subversion/branches/showing-merge-info/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/cmdline/svnadmin_tests.py?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/branches/showing-merge-info/subversion/tests/cmdline/svnadmin_tests.py Wed Oct 12 12:38:41 2011
@@ -1405,7 +1405,7 @@ def test_lslocks_and_rmlocks(sbox):
                                      [], "lock", "-m", "Locking files",
                                      iota_url, lambda_url)
 
-  expected_output = svntest.verify.UnorderedRegexOutput([
+  expected_output_list = [
       "Path: /A/B/lambda",
       "UUID Token: opaquelocktoken",
       "Owner: jrandom",
@@ -1416,7 +1416,7 @@ def test_lslocks_and_rmlocks(sbox):
       "Path: /iota",
       "UUID Token: opaquelocktoken.*",      
       "\n", # empty line    
-      ])
+      ]
 
   # List all locks
   exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
@@ -1424,10 +1424,25 @@ def test_lslocks_and_rmlocks(sbox):
   
   if errput:
     raise SVNUnexpectedStderr(errput)
-    
-  svntest.verify.compare_and_display_lines('message', 'label',
-                                           expected_output, output)
   svntest.verify.verify_exit_code(None, exit_code, 0)
+    
+  try:
+    expected_output = svntest.verify.UnorderedRegexOutput(expected_output_list)
+    svntest.verify.compare_and_display_lines('lslocks output mismatch',
+                                             'output',
+                                             expected_output, output)
+  except:
+    # Usually both locks have the same timestamp but if the clock
+    # ticks between creating the two locks then the timestamps will
+    # differ.  When the output has two identical "Created" lines
+    # UnorderedRegexOutput must have one matching regex, when the
+    # output has two different "Created" lines UnorderedRegexOutput
+    # must have two regex.
+    expected_output_list.append("Created:.*")
+    expected_output = svntest.verify.UnorderedRegexOutput(expected_output_list)
+    svntest.verify.compare_and_display_lines('lslocks output mismatch',
+                                             'output',
+                                             expected_output, output)
 
   # List lock in path /A
   exit_code, output, errput = svntest.main.run_svnadmin("lslocks",

Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/mergeinfo-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/mergeinfo-test.c?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/mergeinfo-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/mergeinfo-test.c Wed Oct 12 12:38:41 2011
@@ -1181,7 +1181,7 @@ test_rangelist_merge(apr_pool_t *pool)
     svn_merge_range_t expected_merge[6];
   };
 
-  #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 59
+  #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 68
   /* The actual test data. */
   struct rangelist_merge_test_data test_data[SIZE_OF_RANGE_MERGE_TEST_ARRAY] =
     {
@@ -1266,6 +1266,29 @@ test_rangelist_merge(apr_pool_t *pool)
       {"/A: 2-17", "/A: 1-5*,7*,12-13*", 2,
        {{0, 1, FALSE}, {1, 17, TRUE}}},
 
+      {"/A: 3-4*,10-15,20", "/A: 5-60*", 5,
+       {{2, 9, FALSE}, {9, 15, TRUE}, {15, 19, FALSE},{19, 20, TRUE},
+        {20, 60, FALSE}}},
+
+      {"/A: 5-60*", "/A: 3-4*,10-15,20", 5,
+       {{2, 9, FALSE}, {9, 15, TRUE}, {15, 19, FALSE},{19, 20, TRUE},
+        {20, 60, FALSE}}},
+
+      {"/A: 3-4*,50-100*", "/A: 5-60*", 1, {{2, 100, FALSE}}},
+
+      {"/A: 5-60*", "/A: 3-4*,50-100*", 1, {{2, 100, FALSE}}},
+
+      {"/A: 3-4*,50-100", "/A: 5-60*", 2, {{2, 49, FALSE}, {49, 100, TRUE}}},
+
+      {"/A: 5-60*", "/A: 3-4*,50-100", 2, {{2, 49, FALSE}, {49, 100, TRUE}}},
+
+      {"/A: 3-4,50-100*", "/A: 5-60", 2, {{2, 60, TRUE}, {60, 100, FALSE}}},
+
+      {"/A: 5-60", "/A: 3-4,50-100*", 2, {{2, 60, TRUE}, {60, 100, FALSE}}},
+
+      {"/A: 5,9,11-15,17,200-300,999", "/A: 7-50", 4,
+       {{4, 5, TRUE}, {6, 50, TRUE}, {199, 300, TRUE}, {998, 999, TRUE}}},
+
       /* A rangelist merged with an empty rangelist should equal the
          non-empty rangelist but in compacted form. */
       {"/A: 1-44,45,46,47-50",       "",  1, {{ 0, 50, TRUE }}},

Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/db-test.c?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/db-test.c Wed Oct 12 12:38:41 2011
@@ -374,7 +374,7 @@ static svn_error_t *
 test_getting_info(apr_pool_t *pool)
 {
   const char *local_abspath;
-  svn_wc__db_kind_t kind;
+  svn_kind_t kind;
   svn_wc__db_status_t status;
   svn_revnum_t revision;
   const char *repos_relpath;
@@ -403,7 +403,7 @@ test_getting_info(apr_pool_t *pool)
             &update_root,
             db, local_abspath,
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+  SVN_TEST_ASSERT(kind == svn_kind_dir);
   SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
   SVN_TEST_ASSERT(revision == 1);
   SVN_TEST_STRING_ASSERT(repos_relpath, "");
@@ -426,7 +426,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL,
             db, svn_dirent_join(local_abspath, "A", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
+  SVN_TEST_ASSERT(kind == svn_kind_file);
   SVN_TEST_STRING_ASSERT(SHA1_1, svn_checksum_to_cstring(checksum, pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "A");
   SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
@@ -441,7 +441,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL,
             db, svn_dirent_join(local_abspath, "B", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
+  SVN_TEST_ASSERT(kind == svn_kind_symlink);
   SVN_TEST_ASSERT(status == svn_wc__db_status_excluded);
   SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(revision));
   SVN_TEST_STRING_ASSERT(repos_relpath, "B");
@@ -464,7 +464,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "C", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_wc__db_kind_unknown);
+  SVN_TEST_ASSERT(kind == svn_kind_unknown);
   SVN_TEST_ASSERT(status == svn_wc__db_status_server_excluded);
 
   /* Test: not-present presence. */
@@ -549,12 +549,12 @@ static svn_error_t *
 validate_node(svn_wc__db_t *db,
               const char *local_abspath,
               const char *relpath,
-              svn_wc__db_kind_t expected_kind,
+              svn_kind_t expected_kind,
               svn_wc__db_status_t expected_status,
               apr_pool_t *scratch_pool)
 {
   const char *path = svn_dirent_join(local_abspath, relpath, scratch_pool);
-  svn_wc__db_kind_t kind;
+  svn_kind_t kind;
   svn_wc__db_status_t status;
   apr_hash_t *props;
   const svn_string_t *value;
@@ -679,7 +679,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "N/N-b", pool),
             "N/N-b", ROOT_ONE, UUID_ONE, 3,
-            svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+            svn_kind_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
@@ -687,7 +687,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "P", pool),
             "P", ROOT_ONE, UUID_ONE, 3,
-            svn_wc__db_kind_dir, svn_wc__db_status_excluded,
+            svn_kind_dir, svn_wc__db_status_excluded,
             NULL, NULL,
             pool));
 
@@ -695,7 +695,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_not_present_node(
             db, svn_dirent_join(local_abspath, "Q", pool),
             "Q", ROOT_ONE, UUID_ONE, 3,
-            svn_wc__db_kind_symlink,
+            svn_kind_symlink,
             NULL, NULL,
             pool));
 
@@ -703,36 +703,36 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "R", pool),
             "R", ROOT_ONE, UUID_ONE, 3,
-            svn_wc__db_kind_unknown, svn_wc__db_status_server_excluded,
+            svn_kind_unknown, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
 
   /* Are all the nodes where we expect them to be? */
   SVN_ERR(validate_node(db, local_abspath, "N",
-                        svn_wc__db_kind_dir, svn_wc__db_status_normal,
+                        svn_kind_dir, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-a",
-                        svn_wc__db_kind_file, svn_wc__db_status_normal,
+                        svn_kind_file, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-b",
-                        svn_wc__db_kind_file,
+                        svn_kind_file,
                         svn_wc__db_status_server_excluded,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-c",
-                        svn_wc__db_kind_unknown, svn_wc__db_status_incomplete,
+                        svn_kind_unknown, svn_wc__db_status_incomplete,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "O",
-                        svn_wc__db_kind_symlink, svn_wc__db_status_normal,
+                        svn_kind_symlink, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "P",
-                        svn_wc__db_kind_dir, svn_wc__db_status_excluded,
+                        svn_kind_dir, svn_wc__db_status_excluded,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "Q",
-                        svn_wc__db_kind_symlink, svn_wc__db_status_not_present,
+                        svn_kind_symlink, svn_wc__db_status_not_present,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "R",
-                        svn_wc__db_kind_unknown,
+                        svn_kind_unknown,
                         svn_wc__db_status_server_excluded,
                         pool));
 
@@ -788,7 +788,7 @@ static svn_error_t *
 test_working_info(apr_pool_t *pool)
 {
   const char *local_abspath;
-  svn_wc__db_kind_t kind;
+  svn_kind_t kind;
   svn_wc__db_status_t status;
   svn_revnum_t revision;
   const char *repos_relpath;
@@ -832,7 +832,7 @@ test_working_info(apr_pool_t *pool)
             db, svn_dirent_join(local_abspath, "I", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_added);
-  SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+  SVN_TEST_ASSERT(kind == svn_kind_dir);
   SVN_TEST_ASSERT(revision == SVN_INVALID_REVNUM);
   SVN_TEST_ASSERT(repos_relpath == NULL);
   SVN_TEST_ASSERT(repos_root_url == NULL);
@@ -879,14 +879,14 @@ test_pdh(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "sub", pool),
             "sub", ROOT_ONE, UUID_ONE, 1,
-            svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+            svn_kind_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "sub/A", pool),
             "sub/A", ROOT_ONE, UUID_ONE, 1,
-            svn_wc__db_kind_file, svn_wc__db_status_server_excluded,
+            svn_kind_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
@@ -1428,7 +1428,7 @@ test_externals_store(apr_pool_t *pool)
 
   {
     svn_wc__db_status_t status;
-    svn_wc__db_kind_t kind;
+    svn_kind_t kind;
     const char *repos_root_url;
     const char *repos_uuid;
     const char *defining_abspath;
@@ -1445,7 +1445,7 @@ test_externals_store(apr_pool_t *pool)
                                      pool, pool));
 
     SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
-    SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
+    SVN_TEST_ASSERT(kind == svn_kind_file);
     SVN_TEST_STRING_ASSERT(repos_root_url, "svn://some-repos/svn");
     SVN_TEST_STRING_ASSERT(repos_uuid, "not-a-uuid");
     SVN_TEST_STRING_ASSERT(defining_abspath, subdir);
@@ -1476,7 +1476,7 @@ test_externals_store(apr_pool_t *pool)
                                      pool, pool));
 
     SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
-    SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
+    SVN_TEST_ASSERT(kind == svn_kind_dir);
     SVN_TEST_STRING_ASSERT(repos_root_url, "svn://other-repos/nsv");
     SVN_TEST_STRING_ASSERT(repos_uuid, "no-uuid-either");
     SVN_TEST_STRING_ASSERT(defining_abspath, subdir);

Modified: subversion/branches/showing-merge-info/tools/client-side/svn-viewspec.py
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/client-side/svn-viewspec.py?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/client-side/svn-viewspec.py (original)
+++ subversion/branches/showing-merge-info/tools/client-side/svn-viewspec.py Wed Oct 12 12:38:41 2011
@@ -20,6 +20,8 @@
 # ====================================================================
 
 """\
+__SCRIPTNAME__: checkout utility for sparse Subversion working copies
+
 Usage: 1. __SCRIPTNAME__ checkout VIEWSPEC-FILE TARGET-DIR
        2. __SCRIPTNAME__ examine VIEWSPEC-FILE
        3. __SCRIPTNAME__ help

Modified: subversion/branches/showing-merge-info/tools/dev/benchmarks/suite1/cronjob
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dev/benchmarks/suite1/cronjob?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dev/benchmarks/suite1/cronjob (original)
+++ subversion/branches/showing-merge-info/tools/dev/benchmarks/suite1/cronjob Wed Oct 12 12:38:41 2011
@@ -1,4 +1,24 @@
 #!/bin/bash
+#
+# ====================================================================
+# 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.
+# ====================================================================
+#
 # This is the cronjob as run on our ASF box aka svn-qavm.
 # It uses neels' mad bash script magic called 'pat' to update and
 # build the latest trunk, invokes a benchmark and sends as mail.

Modified: subversion/branches/showing-merge-info/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dev/unix-build/Makefile.svn?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/showing-merge-info/tools/dev/unix-build/Makefile.svn Wed Oct 12 12:38:41 2011
@@ -1037,7 +1037,10 @@ $(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/
 	chmod +x $(PYTHON_SRCDIR)/setup.py
 	# Fixes shared library linking on OpenBSD
 	# http://bugs.python.org/issue12560
+	# Also fix compilation error on OpenBSD 5.0 and later (undefined
+	# reference to 'lstat' -- already fixed in hg.python.org/cpython).
 	sed -e '4930s#NetBSD\*|#NetBSD*|OpenBSD*|#' \
+	 	-e 's#OpenBSD/4\.\[789\]#OpenBSD/*#' \
 		< $(PYTHON_SRCDIR)/configure \
 		> $(PYTHON_SRCDIR)/configure.patched
 	mv $(PYTHON_SRCDIR)/configure.patched $(PYTHON_SRCDIR)/configure

Modified: subversion/branches/showing-merge-info/tools/dev/wc-format.py
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dev/wc-format.py?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dev/wc-format.py (original)
+++ subversion/branches/showing-merge-info/tools/dev/wc-format.py Wed Oct 12 12:38:41 2011
@@ -51,7 +51,7 @@ def print_format(wc_path):
   #   1.4.x: format 8
   #   1.5.x: format 9
   #   1.6.x: format 10
-  #   1.7.x: format XXX
+  #   1.7.x: format 29
   formatno = get_format(wc_path)
   print '%s: %s' % (wc_path, formatno)
 

Modified: subversion/branches/showing-merge-info/tools/dist/collect_sigs.py
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dist/collect_sigs.py?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dist/collect_sigs.py (original)
+++ subversion/branches/showing-merge-info/tools/dist/collect_sigs.py Wed Oct 12 12:38:41 2011
@@ -75,7 +75,7 @@ def generate_asc_files(target_dir='.'):
 
   db = sqlite3.connect(os.path.join(target_dir, 'sigs.db'))
   curs = db.cursor()
-  like_filename = 'subversion-%s%%' % config.version
+  like_filename = 'subversion-%s.%%' % config.version
   curs.execute('''SELECT filename, signature FROM signatures
                   WHERE filename LIKE ?''', (like_filename, ) )
   for filename, signature in curs:
@@ -183,7 +183,7 @@ def list_signatures():
 
   lines = ""
   curs = db.cursor()
-  like_filename = 'subversion-%s%%' % config.version
+  like_filename = 'subversion-%s.%%' % config.version
   curs.execute('''SELECT filename, COUNT(*) FROM signatures
                   WHERE filename LIKE ?
                   GROUP BY filename ORDER BY filename''',

Modified: subversion/branches/showing-merge-info/tools/dist/rat-excludes
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dist/rat-excludes?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dist/rat-excludes (original)
+++ subversion/branches/showing-merge-info/tools/dist/rat-excludes Wed Oct 12 12:38:41 2011
@@ -15,6 +15,7 @@ doc/doxygen.conf
 notes/**
 packages/
 subversion/tests/cmdline/getopt_tests_data/*
+subversion/tests/cmdline/diff_tests_data/*
 subversion/bindings/swig/NOTES
 subversion/libsvn_fs_base/notes/TODO
 subversion/libsvn_fs_base/notes/fs-history
@@ -31,8 +32,11 @@ subversion/bindings/ctypes-python/csvn/e
 subversion/tests/cmdline/svntest/err.py
 tools/buildbot/master/public_html/buildbot.css
 tools/dist/rat-excludes
+tools/dist/_gnupg.py
+tools/dist/templates/*.ezt
 tools/dev/iz/defect.dem
 tools/dev/iz/ff2csv.command
+tools/dev/benchmarks/suite1/crontab.entry
 tools/hook-scripts/mailer/tests/mailer-t1.output
 **/*.dump
 **/*.icns

Modified: subversion/branches/showing-merge-info/tools/dist/release.py
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dist/release.py?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dist/release.py (original)
+++ subversion/branches/showing-merge-info/tools/dist/release.py Wed Oct 12 12:38:41 2011
@@ -626,7 +626,7 @@ def check_sigs(args):
         target = args.target
     else:
         target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
-                              str(args.version), 'deploy')
+                              str(args.version))
 
     good_sigs = {}
 

Modified: subversion/branches/showing-merge-info/tools/dist/templates/rc-news.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dist/templates/rc-news.ezt?rev=1182334&r1=1182333&r2=1182334&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/tools/dist/templates/rc-news.ezt (original)
+++ subversion/branches/showing-merge-info/tools/dist/templates/rc-news.ezt Wed Oct 12 12:38:41 2011
@@ -4,7 +4,7 @@
     title="Link to this section">&para;</a> 
 </h3> 
  
-<p>We are pleased to announce to release of Apache Subversion [version].  This
+<p>We are pleased to announce the release of Apache Subversion [version].  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