You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/01/12 17:29:33 UTC

svn commit: r1058221 [3/3] - in /subversion/branches/ignore-mergeinfo-log: ./ build/ contrib/hook-scripts/ notes/api-errata/1.7/ notes/commit-access-templates/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_...

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/dav-mirror-autocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/dav-mirror-autocheck.sh?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/dav-mirror-autocheck.sh (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/dav-mirror-autocheck.sh Wed Jan 12 16:29:32 2011
@@ -28,6 +28,10 @@ SCRIPT=$(basename $0)
 
 trap stop_httpd_and_die SIGHUP SIGTERM SIGINT
 
+# Ensure the server uses a known locale.
+LC_ALL=C
+export LC_ALL
+
 function stop_httpd_and_die() {
   [ -e "$HTTPD_PID" ] && kill $(cat "$HTTPD_PID")
   exit 1
@@ -171,7 +175,7 @@ __EOF__
 
 function usage() {
   echo "usage: $SCRIPT <test-work-directory>" 1>&2
-  echo "  e.g. \"$SCRIPT $HOME/projects/svn-trunk /tmp/test-work\"" 1>&2
+  echo "  e.g. \"$SCRIPT /tmp/test-work\"" 1>&2
   echo
   echo " " '<test-work-directory>' must not exist, \
     I will not clobber it for you 1>&2

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/davautocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/davautocheck.sh?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/davautocheck.sh (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/davautocheck.sh Wed Jan 12 16:29:32 2011
@@ -70,6 +70,10 @@ SCRIPT=$(basename $0)
 
 trap stop_httpd_and_die SIGHUP SIGTERM SIGINT
 
+# Ensure the server uses a known locale.
+LC_ALL=C
+export LC_ALL
+
 function stop_httpd_and_die() {
   [ -e "$HTTPD_PID" ] && kill $(cat "$HTTPD_PID")
   exit 1

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/merge_tests.py Wed Jan 12 16:29:32 2011
@@ -15790,29 +15790,33 @@ def record_only_merge_creates_self_refer
                                        '--record-only', A_path)
 
 #----------------------------------------------------------------------
-# Test for issue #3657 'phantom svn:eol-style changes cause spurious merge
-# text conflicts'.
-def copy_causes_phantom_eol_conflict(sbox):
-  "other prop changes cause phantom eol conflict"
+# Test for issue #3657 'dav update report handler in skelta mode can cause
+# spurious conflicts'.
+def dav_skelta_mode_causes_spurious_conflicts(sbox):
+  "dav skelta mode can cause spurious conflicts"
 
   sbox.build()
   wc_dir = sbox.wc_dir
 
   # Some paths we'll care about
-  mu_path                = os.path.join(wc_dir, "A", "mu")
-  A_path                 = os.path.join(wc_dir, "A")
-  A_branch_path          = os.path.join(wc_dir, "A-branch")
-  A_branch_backport_path = os.path.join(wc_dir, "A-branch-backport")
-  mu_path                = os.path.join(wc_dir, "A", "mu")
-  mu2_path               = os.path.join(wc_dir, "A", "mu2")
-  mu_backport_path       = os.path.join(wc_dir, "A-branch-backport", "mu")
+  mu_path       = os.path.join(wc_dir, "A", "mu")
+  A_path        = os.path.join(wc_dir, "A")
+  C_path        = os.path.join(wc_dir, "A", "C")
+  A_branch_path = os.path.join(wc_dir, "A-branch")
+  C_branch_path = os.path.join(wc_dir, "A-branch", "C")
 
-  # r2 - Set the 'native' svn:eol-style on A/mu:
+  # r2 - Set some intial properties:
+  #
+  #  'dir-prop'='value1' on A/C.
+  #  'svn:eol-style'='native' on A/mu.
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'ps', 'dir-prop', 'initial-val',
+                                     C_path)
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'ps', 'svn:eol-style', 'native',
                                      mu_path)
   svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'Set native eol-style',
+                                     'ci', '-m', 'Set some properties',
                                      wc_dir)
 
   # r3 - Branch 'A' to 'A-branch':
@@ -15823,34 +15827,52 @@ def copy_causes_phantom_eol_conflict(sbo
                                      'ci', '-m', 'Create a branch of A',
                                      wc_dir)
 
-  # r4 - Make a text mod and prop mod to 'A/mu':
+  # r4 - Make a text mod to 'A/mu' and add new props to 'A/mu' and 'A/C':
   svntest.main.file_write(mu_path, "The new mu!\n")
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'ps', 'prop-name', 'prop-val', mu_path)
   svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'Edit a file', wc_dir)
+                                     'ps', 'another-dir-prop', 'initial-val',
+                                     C_path)
+  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+                                     'Edit a file and make some prop changes',
+                                     wc_dir)
+
+  # r5 - Modify the sole property on 'A-branch/C':
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'ps', 'dir-prop', 'branch-val',
+                                     C_branch_path)
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'ci', '-m', 'prop mod on branch', wc_dir)
 
   # Now merge r4 from 'A' to 'A-branch'.
   #
   # Previously this failed over ra_neon and ra_serf on Windows:
   #
   #   >svn merge ^^/A A-branch -c4
-  #   Conflict discovered in 'A-branch/mu'.
+  #   Conflict discovered in 'C:/SVN/src-trunk/Debug/subversion/tests/cmdline
+  #     /svn-test-work/working_copies/merge_tests-110/A-branch/mu'.
   #   Select: (p) postpone, (df) diff-full, (e) edit,
   #           (mc) mine-conflict, (tc) theirs-conflict,
   #           (s) show all options: p
   #   --- Merging r4 into 'A-branch':
   #   CU   A-branch\mu
+  #   Conflict for property 'another-dir-prop' discovered on 'C:/SVN/src-trunk
+  #     /Debug/subversion/tests/cmdline/svn-test-work/working_copies/
+  #     merge_tests-110/A-branch/C'.
+  #   Select: (p) postpone,
+  #           (mf) mine-full, (tf) theirs-full,
+  #           (s) show all options: p
+  #    C   A-branch\C
   #   --- Recording mergeinfo for merge of r4 into 'A-branch':
   #    U   A-branch
   #   Summary of conflicts:
   #     Text conflicts: 1
-  #
-  # The conflict was on the whole file as it appeared there was an eol-style
-  # change to native, when in fact no such change was present in r7.
+  #     Property conflicts: 1
   svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
   expected_output = wc.State(A_branch_path, {
     'mu' : Item(status='UU'),
+    'C'  : Item(status=' U'),
     })
   expected_mergeinfo_output = wc.State(A_branch_path, {
     ''   : Item(status=' U'),
@@ -15865,7 +15887,7 @@ def copy_causes_phantom_eol_conflict(sbo
     'B/E/beta'  : Item(status='  '),
     'B/lambda'  : Item(status='  '),
     'B/F'       : Item(status='  '),
-    'C'         : Item(status='  '),
+    'C'         : Item(status=' M'),
     'D'         : Item(status='  '),
     'D/G'       : Item(status='  '),
     'D/G/pi'    : Item(status='  '),
@@ -15877,7 +15899,7 @@ def copy_causes_phantom_eol_conflict(sbo
     'D/H/psi'   : Item(status='  '),
     'D/H/omega' : Item(status='  '),
     })
-  expected_status.tweak(wc_rev=4)
+  expected_status.tweak(wc_rev=5)
   expected_disk = wc.State('', {
     ''          : Item(props={SVN_PROP_MERGEINFO :
                               '/A:4'}),
@@ -15890,7 +15912,8 @@ def copy_causes_phantom_eol_conflict(sbo
     'B/E/beta'  : Item("This is the file 'beta'.\n"),
     'B/lambda'  : Item("This is the file 'lambda'.\n"),
     'B/F'       : Item(),
-    'C'         : Item(),
+    'C'         : Item(props={'dir-prop' : 'branch-val',
+                              'another-dir-prop' : 'initial-val'}),
     'D'         : Item(),
     'D/G'       : Item(),
     'D/G/pi'    : Item("This is the file 'pi'.\n"),
@@ -16478,7 +16501,7 @@ test_list = [ None,
               foreign_repos_del_and_props,
               immediate_depth_merge_creates_minimal_subtree_mergeinfo,
               record_only_merge_creates_self_referential_mergeinfo,
-              copy_causes_phantom_eol_conflict,
+              dav_skelta_mode_causes_spurious_conflicts,
               merge_into_locally_added_file,
               merge_into_locally_added_directory,
               merge_with_os_deleted_subtrees,

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnserveautocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnserveautocheck.sh?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnserveautocheck.sh (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnserveautocheck.sh Wed Jan 12 16:29:32 2011
@@ -39,6 +39,10 @@ set +e
 
 trap trap_cleanup SIGHUP SIGTERM SIGINT
 
+# Ensure the server uses a known locale.
+LC_ALL=C
+export LC_ALL
+
 function really_cleanup() {
     if [ -e  "$SVNSERVE_PID" ]; then
         kill $(cat "$SVNSERVE_PID")

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_diff/parse-diff-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_diff/parse-diff-test.c?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_diff/parse-diff-test.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_diff/parse-diff-test.c Wed Jan 12 16:29:32 2011
@@ -248,26 +248,26 @@ static const char *bad_git_diff_header =
 
 /* Create a PATCH_FILE with name FNAME containing the contents of DIFF. */
 static svn_error_t *
-create_patch_file(apr_file_t **patch_file, const char *fname,
+create_patch_file(svn_patch_file_t **patch_file, const char *fname,
                   const char *diff, apr_pool_t *pool)
 {
-  apr_off_t pos = 0;
   apr_size_t len;
   apr_status_t status;
+  apr_file_t *apr_file;
 
   /* Create a patch file. */
-  status = apr_file_open(patch_file, fname,
+  status = apr_file_open(&apr_file, fname,
                         (APR_READ | APR_WRITE | APR_CREATE | APR_TRUNCATE |
                          APR_DELONCLOSE), APR_OS_DEFAULT, pool);
   if (status != APR_SUCCESS)
     return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, "Cannot open '%s'",
                              fname);
   len = strlen(diff);
-  status = apr_file_write_full(*patch_file, diff, len, &len);
+  status = apr_file_write_full(apr_file, diff, len, &len);
   if (status || len != strlen(diff))
     return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
                              "Cannot write to '%s'", fname);
-  SVN_ERR(svn_io_file_seek(*patch_file, APR_SET, &pos, pool));
+  SVN_ERR(svn_diff_open_patch_file(patch_file, fname, pool));
 
   return SVN_NO_ERROR;
 }
@@ -312,15 +312,13 @@ check_content(svn_diff_hunk_t *hunk, svn
 static svn_error_t *
 test_parse_unidiff(apr_pool_t *pool)
 {
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   const char *fname = "test_parse_unidiff.patch";
   svn_boolean_t reverse;
   svn_boolean_t ignore_whitespace;
   int i;
   apr_pool_t *iterpool;
 
-  SVN_ERR(create_patch_file(&patch_file, fname, unidiff, pool));
-
   reverse = FALSE;
   ignore_whitespace = FALSE;
   iterpool = svn_pool_create(pool);
@@ -328,13 +326,10 @@ test_parse_unidiff(apr_pool_t *pool)
     {
       svn_patch_t *patch;
       svn_diff_hunk_t *hunk;
-      apr_off_t pos;
 
       svn_pool_clear(iterpool);
 
-      /* Reset file pointer. */
-      pos = 0;
-      SVN_ERR(svn_io_file_seek(patch_file, APR_SET, &pos, iterpool));
+      SVN_ERR(create_patch_file(&patch_file, fname, unidiff, pool));
 
       /* We have two patches with one hunk each.
        * Parse the first patch. */
@@ -383,6 +378,7 @@ test_parse_unidiff(apr_pool_t *pool)
                             pool));
 
       reverse = !reverse;
+      SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
     }
   svn_pool_destroy(iterpool);
   return SVN_NO_ERROR;
@@ -393,7 +389,7 @@ test_parse_git_diff(apr_pool_t *pool)
 {
   /* ### Should we check for reversed diffs? */
 
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   svn_diff_hunk_t *hunk;
   const char *fname = "test_parse_git_diff.patch";
@@ -457,6 +453,8 @@ test_parse_git_diff(apr_pool_t *pool)
   SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
   SVN_TEST_ASSERT(patch->hunks->nelts == 0);
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
+
   return SVN_NO_ERROR;
 }
 
@@ -465,7 +463,7 @@ test_parse_git_tree_and_text_diff(apr_po
 {
   /* ### Should we check for reversed diffs? */
 
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   svn_diff_hunk_t *hunk;
   const char *fname = "test_parse_git_tree_and_text_diff.patch";
@@ -556,6 +554,8 @@ test_parse_git_tree_and_text_diff(apr_po
   SVN_ERR(check_content(hunk, FALSE,
                         "",
                         pool));
+
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 
@@ -563,7 +563,7 @@ test_parse_git_tree_and_text_diff(apr_po
 static svn_error_t *
 test_bad_git_diff_headers(apr_pool_t *pool)
 {
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   svn_diff_hunk_t *hunk;
   const char *fname = "test_bad_git_diff_header.patch";
@@ -592,6 +592,7 @@ test_bad_git_diff_headers(apr_pool_t *po
                         "some more bytes to 'iota'" NL,
                         pool));
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 
@@ -600,7 +601,7 @@ test_bad_git_diff_headers(apr_pool_t *po
 static svn_error_t *
 test_parse_property_diff(apr_pool_t *pool)
 {
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   svn_prop_patch_t *prop_patch;
   svn_diff_hunk_t *hunk;
@@ -696,13 +697,14 @@ test_parse_property_diff(apr_pool_t *poo
                         "new value" NL,
                         pool));
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 
 static svn_error_t *
 test_parse_property_and_text_diff(apr_pool_t *pool)
 {
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   svn_prop_patch_t *prop_patch;
   svn_diff_hunk_t *hunk;
@@ -751,6 +753,7 @@ test_parse_property_and_text_diff(apr_po
                         "value" NL,
                         pool));
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 
@@ -758,7 +761,7 @@ static svn_error_t *
 test_parse_diff_symbols_in_prop_unidiff(apr_pool_t *pool)
 {
   svn_patch_t *patch;
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_prop_patch_t *prop_patch;
   svn_diff_hunk_t *hunk;
   apr_array_header_t *hunks;
@@ -852,13 +855,14 @@ test_parse_diff_symbols_in_prop_unidiff(
                         "## -1,2 +1,4 ##" NL,
                         pool));
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 
 static svn_error_t *
 test_git_diffs_with_spaces_diff(apr_pool_t *pool)
 {
-  apr_file_t *patch_file;
+  svn_patch_file_t *patch_file;
   svn_patch_t *patch;
   const char *fname = "test_git_diffs_with_spaces_diff.patch";
 
@@ -905,6 +909,7 @@ test_git_diffs_with_spaces_diff(apr_pool
   SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
   SVN_TEST_ASSERT(patch->hunks->nelts == 0);
 
+  SVN_ERR(svn_diff_close_patch_file(patch_file, pool));
   return SVN_NO_ERROR;
 }
 /* ========================================================================== */

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/dirent_uri-test.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/dirent_uri-test.c Wed Jan 12 16:29:32 2011
@@ -928,6 +928,10 @@ test_uri_canonicalize(apr_pool_t *pool)
     { "foo./.",               "foo." },
     { "foo././/.",            "foo." },
     { "/foo/bar",             "/foo/bar" },
+    /*** TODO:
+    { "/foo/b%ABble",         "/foo/b%ABble" },
+    { "/foo/b%abble",         "/foo/b%ABble" },
+    */
     { "foo/..",               "foo/.." },
     { "foo/../",              "foo/.." },
     { "foo/../.",             "foo/.." },
@@ -970,6 +974,8 @@ test_uri_canonicalize(apr_pool_t *pool)
     { "s://d/c#",              "s://d/c%23" }, /* Escape schema separator */
     { "s://d/c($) .+?",        "s://d/c($)%20.+%3F" }, /* Test special chars */
     { "file:///C%3a/temp",     "file:///C:/temp" },
+    { "http://server/cr%AB",   "http://server/cr%AB" },
+    { "http://server/cr%ab",   "http://server/cr%AB" },
 #ifdef SVN_USE_DOS_PATHS
     { "file:///c:/temp/repos", "file:///C:/temp/repos" },
     { "file:///c:/temp/REPOS", "file:///C:/temp/REPOS" },
@@ -1269,6 +1275,9 @@ test_uri_is_canonical(apr_pool_t *pool)
     { "file:///folder/c#",      FALSE }, /* # needs escaping */
     { "file:///fld/with space", FALSE }, /* # needs escaping */
     { "file:///fld/c%23",       TRUE }, /* Properly escaped C# */
+    { "file:///%DE%AD%BE%EF",  TRUE },
+    { "file:///%de%ad%be%ef",  FALSE },
+    { "file:///%DE%ad%BE%ef",  FALSE },
 #ifdef SVN_USE_DOS_PATHS
     { "file:///c:/temp/repos", FALSE },
     { "file:///c:/temp/REPOS", FALSE },

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c Wed Jan 12 16:29:32 2011
@@ -226,88 +226,6 @@ test_stream_compressed(apr_pool_t *pool)
 }
 
 static svn_error_t *
-test_stream_range(apr_pool_t *pool)
-{
-  static const char *file_data[3] = {"Before", "Now", "After"};
-  const char *before, *now;
-  char buf[14 + 1] = {0}; /* Enough to hold file data + '\0' */
-  static const char *fname = "test_stream_range.txt";
-  apr_off_t start, end;
-  apr_file_t *f;
-  apr_status_t status;
-  unsigned int i, j;
-  apr_size_t len;
-  svn_stream_t *stream;
-
-  status = apr_file_open(&f, fname, (APR_READ | APR_WRITE | APR_CREATE |
-                         APR_TRUNCATE | APR_DELONCLOSE), APR_OS_DEFAULT, pool);
-  if (status != APR_SUCCESS)
-    return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, "Cannot open '%s'",
-                             fname);
-
-  /* Create the file. */
-  for (j = 0; j < 3; j++)
-    {
-      len = strlen(file_data[j]);
-      status = apr_file_write(f, file_data[j], &len);
-      if (status || len != strlen(file_data[j]))
-        return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
-                                 "Cannot write to '%s'", fname);
-    }
-
-    /* Create a stream to read from a range of the file. */
-    before = file_data[0];
-    now = file_data[1];
-
-    start = strlen(before);
-    end = start + strlen(now);
-
-    stream = svn_stream_from_aprfile_range_readonly(f, TRUE, start, end, pool);
-
-    /* Even when requesting more data than contained in the range,
-     * we should only receive data from the range. */
-    for (i = 0; i < 2; i++)
-      {
-        /* Try to read from "Now", up to and past the end of the range. */
-        len = strlen(now) + 1;
-        SVN_ERR(svn_stream_read(stream, buf, &len));
-        if (len != strlen(now))
-          return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
-                                   "Read past (or not all of) range");
-        if (strcmp(buf, now))
-          return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
-                                   "Unexpected data");
-
-        /* Try to read from the end of the range - should be impossible. */
-        len = 1;
-        SVN_ERR(svn_stream_read(stream, buf, &len));
-        if (len != 0)
-          return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
-                                   "Read past range");
-
-        /* Resetting the stream should allow us to read the range again. */
-        SVN_ERR(svn_stream_reset(stream));
-      }
-
-    SVN_ERR(svn_stream_close(stream));
-
-    /* The attempt to create a stream with invalid ranges should result
-     * in an empty stream. */
-    stream = svn_stream_from_aprfile_range_readonly(f, TRUE, 0, -1, pool);
-    len = 42;
-    SVN_ERR(svn_stream_read(stream, buf, &len));
-    SVN_TEST_ASSERT(len == 0);
-    stream = svn_stream_from_aprfile_range_readonly(f, TRUE, -1, 0, pool);
-    len = 42;
-    SVN_ERR(svn_stream_read(stream, buf, &len));
-    SVN_TEST_ASSERT(len == 0);
-
-    SVN_ERR(svn_stream_close(stream));
-    apr_file_close(f);
-    return SVN_NO_ERROR;
-}
-
-static svn_error_t *
 test_stream_tee(apr_pool_t *pool)
 {
   svn_stringbuf_t *test_bytes = generate_test_bytes(100, pool);
@@ -509,8 +427,6 @@ struct svn_test_descriptor_t test_funcs[
                    "test svn_stream_from_string"),
     SVN_TEST_PASS2(test_stream_compressed,
                    "test compressed streams"),
-    SVN_TEST_PASS2(test_stream_range,
-                   "test streams reading from range of file"),
     SVN_TEST_PASS2(test_stream_tee,
                    "test 'tee' streams"),
     SVN_TEST_PASS2(test_stream_seek_file,

Modified: subversion/branches/ignore-mergeinfo-log/tools/po/l10n-report.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/po/l10n-report.py?rev=1058221&r1=1058220&r2=1058221&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/po/l10n-report.py (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/po/l10n-report.py Wed Jan 12 16:29:32 2011
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 #
+# $Id$
 #
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
@@ -39,6 +40,12 @@ import os
 import re
 import subprocess
 
+LIST_ADDRESS = "dev@subversion.apache.org"
+
+def _rev():
+  dollar = "$Revision$"
+  return int(re.findall('[0-9]+', dollar)[0]);
+
 def usage_and_exit(errmsg=None):
     """Print a usage message, plus an ERRMSG (if provided), then exit.
     If ERRMSG is provided, the usage message is printed to stderr and
@@ -61,7 +68,7 @@ def usage_and_exit(errmsg=None):
 class l10nReport:
     def __init__(self, to_email_id=""):
         self.to_email_id = to_email_id
-        self.from_email_id = "<de...@subversion.apache.org>"
+        self.from_email_id = "<%s>" % LIST_ADDRESS
 
     def safe_command(self, cmd_and_args, cmd_in=""):
         [stdout, stderr] = subprocess.Popen(cmd_and_args, \
@@ -181,13 +188,21 @@ def main():
         import smtplib
 
         server = smtplib.SMTP('localhost')
-        email_from = "From: SVN DEV <no...@subversion.apache.org>"
+        email_from = "From: Subversion Translation Status <no...@subversion.apache.org>"
         email_to = "To: %s" % to_email_id
         email_sub = "Subject: [l10n] Translation status report for %s r%s" \
                      % (branch_name, wc_version)
-
-        msg = "%s\n%s\n%s\n%s\n%s\n%s\n%s" % (email_from, email_to,\
-              email_sub, title, format_head, format_line, body)
+        x_headers = "\n".join([
+          "X-Mailer: l10n-report.py r%ld" % _rev(),
+          "Reply-To: %s" % LIST_ADDRESS,
+          "Mail-Followup-To: %s" % LIST_ADDRESS,
+          # http://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml
+          "Auto-Submitted: auto-generated",
+        ]);
+
+        msg = "\n".join((email_from, email_to, email_sub, x_headers,
+                        "", # blank line at end of headers
+                        title, format_head, format_line, body))
 
         server.sendmail(email_from, email_to, msg)
         print("The report is sent to '%s' email id." % to_email_id)

Propchange: subversion/branches/ignore-mergeinfo-log/tools/po/l10n-report.py
------------------------------------------------------------------------------
    svn:keywords = URL Author Date Rev Id