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