subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sbut...@apache.org
Subject svn commit: r1101881 - in /subversion/branches/1.6.x-issue3816: ./ subversion/include/ subversion/libsvn_repos/ subversion/libsvn_subr/ subversion/mod_dav_svn/reports/ subversion/svn/ subversion/tests/cmdline/ subversion/tests/cmdline/svntest/
Date Wed, 11 May 2011 14:08:15 GMT
Author: sbutler
Date: Wed May 11 14:08:14 2011
New Revision: 1101881

URL: http://svn.apache.org/viewvc?rev=1101881&view=rev
Log:
On the 1.6.x-issue3816 branch, sync merge the recent 1.6.x changes.

Modified:
    subversion/branches/1.6.x-issue3816/   (props changed)
    subversion/branches/1.6.x-issue3816/CHANGES   (props changed)
    subversion/branches/1.6.x-issue3816/STATUS
    subversion/branches/1.6.x-issue3816/subversion/include/svn_version.h
    subversion/branches/1.6.x-issue3816/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/1.6.x-issue3816/subversion/libsvn_subr/io.c
    subversion/branches/1.6.x-issue3816/subversion/mod_dav_svn/reports/update.c
    subversion/branches/1.6.x-issue3816/subversion/svn/util.c
    subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/merge_tests.py   (props changed)
    subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/svntest/main.py   (props changed)

Propchange: subversion/branches/1.6.x-issue3816/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 11 14:08:14 2011
@@ -1,4 +1,5 @@
 /subversion/branches/1.5.x-r30215:870312
+/subversion/branches/1.6.x:1083880-1101877
 /subversion/branches/1.6.x-1.6.8-serfassertion:900822-900868
 /subversion/branches/1.6.x-3242-partial-fixes:931279-932637
 /subversion/branches/1.6.x-UNC-paths:876471-876545
@@ -23,6 +24,7 @@
 /subversion/branches/1.6.x-issue3654:953882-955338
 /subversion/branches/1.6.x-issue3683:965785-988062
 /subversion/branches/1.6.x-issue3700:991967-997279
+/subversion/branches/1.6.x-issue3719:1075930-1096984
 /subversion/branches/1.6.x-issue3727:1032967-1033213
 /subversion/branches/1.6.x-issue3745:1032257-1033223
 /subversion/branches/1.6.x-no-svn_uri:876360-876415
@@ -32,6 +34,7 @@
 /subversion/branches/1.6.x-r1051744:1052424-1071327
 /subversion/branches/1.6.x-r1058269:1058271-1072344
 /subversion/branches/1.6.x-r1068988:1070588-1072337
+/subversion/branches/1.6.x-r1072084:1072274-1100234
 /subversion/branches/1.6.x-r36178:877876-877884
 /subversion/branches/1.6.x-r36252:876328-876788
 /subversion/branches/1.6.x-r37622:877699-877993
@@ -104,4 +107,4 @@
 /subversion/branches/tc_url_rev:874351-874483
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614-876615,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,877437,877441-877442,877453,87745
 9,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,879271,879293,879357,879375-879376,
 879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880146,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,907644,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,102810
 8,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036534,1038792,1039040,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058269,1058722,1064839,1068988,1070912,1071239,1071307,1072953,1076759,1076826
+/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614-876615,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,877437,877441-877442,877453,87745
 9,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,879271,879293,879357,879375-879376,
 879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880146,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,907644,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,102810
 8,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036534,1038792,1039040,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058269,1058722,1064839,1068988,1070912,1071239,1071307,1072084,1072953,1076759,1076826,1084575,1084581,1094692,1095654

Propchange: subversion/branches/1.6.x-issue3816/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 11 14:08:14 2011
@@ -1,4 +1,5 @@
 /subversion/branches/1.5.x-r30215/CHANGES:870312
+/subversion/branches/1.6.x/CHANGES:1083880-1101877
 /subversion/branches/1.6.x-1.6.8-serfassertion/CHANGES:900822-900868
 /subversion/branches/1.6.x-3242-partial-fixes/CHANGES:931279-932637
 /subversion/branches/1.6.x-UNC-paths/CHANGES:876471-876545
@@ -32,6 +33,7 @@
 /subversion/branches/1.6.x-r1051744/CHANGES:1052424-1071327
 /subversion/branches/1.6.x-r1058269/CHANGES:1058271-1072344
 /subversion/branches/1.6.x-r1068988/CHANGES:1070588-1072337
+/subversion/branches/1.6.x-r1072084/CHANGES:1072274-1100234
 /subversion/branches/1.6.x-r36178/CHANGES:877876-877884
 /subversion/branches/1.6.x-r36252/CHANGES:876328-876788
 /subversion/branches/1.6.x-r37622/CHANGES:877699-877993
@@ -102,4 +104,4 @@
 /subversion/branches/tc_url_rev/CHANGES:874351-874483
 /subversion/branches/tree-conflicts/CHANGES:868291-873154
 /subversion/branches/tree-conflicts-notify/CHANGES:873926-874008
-/subversion/trunk/CHANGES:837701-841355,875962-1038588,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072953,1076759
+/subversion/trunk/CHANGES:837701-841355,875962-1038588,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072084,1072953,1076759

Modified: subversion/branches/1.6.x-issue3816/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/STATUS?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/STATUS (original)
+++ subversion/branches/1.6.x-issue3816/STATUS Wed May 11 14:08:14 2011
@@ -11,9 +11,9 @@ details on how release lines and voting 
 delay a release, etc.
 
 Status of 1.6.17:
-=================
 
 Candidate changes:
+==================
 
  * r879766
    Fix issue #3498: Subversion password stores freeze Eclipse
@@ -156,9 +156,12 @@ Candidate changes:
      Adds a new private API, which would break 1.6.16 mod_dav_svn with
      1.6.15 libsvn_repos; thread:
      http://mid.gmane.org/20110214164421.GB19247@daniel3.local
+     http://mid.gmane.org/4D9DD614.2000709@collab.net
+   Note:
+     Found a potential issue in close_edit() during review, I would prefer to
+     see it fixed before merge.
    Votes:
-     +1: blair
-     =0: danielsh (haven't reviewed it yet)
+     +1: blair, danielsh
 
  * ^/branches/1.6.x-r1053984
    Fix bug where committing a changelist was prevented by a file outside that
@@ -167,7 +170,7 @@ Candidate changes:
      Local fix.  users@ reports.
    Votes:
 
-  * 1.6.x-fsfs-begin-txn-deadlock
+ * 1.6.x-fsfs-begin-txn-deadlock
    Fix a deadlock that can occur when two or more multithreaded
    Subversion servers on the same system serve two or more fsfs
    repositories.
@@ -175,8 +178,11 @@ Candidate changes:
      Avoiding deadlocks is a good thing.
    Branch:
     ^/subversion/branches/1.6.x-fsfs-begin-txn-deadlock
+   Thread:
+     http://mid.gmane.org/20110330055635.GA31369@daniel3.local
+     http://mid.gmane.org/4D3FC68F.7020709@orcaware.com
    Votes:
-     +1: blair
+     +1: blair, danielsh
 
  * r962377, r962378, r1036978, r1037762, r1063572, r1063573, r1063592
    Fix issue #3641 svnsync handling of directory copyfrom.
@@ -190,39 +196,93 @@ Candidate changes:
      tweak to the expected dump file for svnsync test 29, to account for the
      differences in how 1.6 prints property hashes and how 1.7 does it, see
      r966458.
+   Notes:
+     See also the r1036429 group.
    Votes:
      +1: cmpilato (r962377, r962378 only)
      +1: philip (962377, r962378, r1063572, r1063573, r1063592 only)
      +1: pburba
      -0: danielsh (authz concerns on the original fix)
 
- * ^/branches/1.6.x-r1072084
-   svn: preserve the log message when the editor exited non-zero.
+ * r1074572
+   Allow building on Windows with a recent Expat.
+   Justification:
+     We like building Subversion, even on Windows.  User requested.
+   Votes:
+     +0: hwright (I like the idea, but have no knowledge of the change, or
+                  ability to test it.)
+
+ * r1076730, r1078954, r1081255
+   Fix issue #3650 "log -g produces excessive duplicate output"
+   Justification:
+     Eliminates potentially massive duplication when tracing logs
+     across merge reintegrations.
+   Branch: ^/subversion/branches/1.6.x-issue3650
+   Votes:
+     +1: pburba
+
+ * r1083883, r1076826
+   Fix issue #3816, "file external can cause mixed-revision working
+   copy after checkout"
+   Justification:
+     Without this fix, file externals pinned to a revision can prevent
+     reintegrate merges.
+   Notes:
+     r1083883 is the actual fix and has no corresponding trunk revision.
+     r1076826 added a test case on trunk (merged to the branch in r1083892).
+   Branch:
+     ^/subversion/branches/1.6.x-issue3816
+   Votes:
+     +1: stsp, pburba
+
+ * r1085001, r992114, r1084962, r1084978
+   Fix issue #3843, "file externals cause non-inheritable mergeinfo"
+   Justification:
+     Without this fix, merges into working copies which contain
+     file externals create non-inheritable mergeinfo on the merge
+     target, and explicit mergeinfo on file externals and all children.
+     This is not desirable, and can cause commits to fail unless mergeinfo
+     is manually removed from the file external.
+   Notes:
+     The r1083883 group is much less useful without this fix.
+     r1085001 was a commit to the branch. The other revisions are from trunk.
+   Branch:
+     ^/subversion/branches/1.6.x-issue3843
+   Votes:
+     +1: stsp, pburba
+
+ * ^/subversion/branches/1.6.x-issue3845
+   Detect very occasional corruption and abort commit.
+   Justification:
+     Don't know the cause, but we can stop it getting into the repo.
+   Votes:
+     +1: philip
+     +1: danielsh (trusting Philip's explanation that the noderev offset,length
+                   are cached to be the correct values for a non-corrupt file)
+
+ * r1091881
+   Fix issue #3853, "svn cleanup fails with obstructed directories"
    Justification:
-     Data loss --- I already lost two log messages to this bug.
+     Trunk doesn't fail like this. Without this fix, cleaning up working
+     copies containing obstructing directories is a huge hassle.
+   Branch: ^/subversion/branches/1.6.x-issue3853
+   Votes:
+     +1: stsp, pburba
+  
+ * r1100213
+   In FSFS, identify a corruption condition, and don't mask other (unknown)
+   corruption conditions.
+   Note:
+     I think at least the latter part (the fs_fs.c part) should be backported.
    Votes:
      +1: danielsh
 
-  * ^/subversion/branches/1.6.x-issue3719
-    Fix issue #3719 "Extremely slow checkout on Windows"
-    Justification:
-      Has been reported to improve checkout performance on Windows
-      by a factor of 10 for one user (85 minutes down to 8 minutes).
-      The problem is most visible on NTFS with working copies that have
-      many files with svn: properties.
-    Notes:
-      See the issue for details, and also this thread:
-      http://svn.haxx.se/dev/archive-2011-02/0066.shtml
-    Votes:
-      +1: stsp
-
-  * r1074572
-    Allow building on Windows with a recent Expat.
-    Justification:
-      We like building Subversion, even on Windows.  User requested.
-    Votes:
-      +0: hwright (I like the idea, but have no knowledge of the change, or
-                   ability to test it.)
+ * r1098608
+   Disallow GETs of baselined versions of resources.
+   Justification:
+     Returning proper errors is a Good Thing.
+   Votes:
+     +1: hwright
 
 Veto-blocked changes:
 =====================
@@ -325,6 +385,8 @@ Approved changes:
    Fix svnsync_tests 29 for BDB.
    Justification:
      Avoids an assert in the server.
+   Notes:
+     See also the r962377 group.
    Votes:
      +1: philip
      +0: stsp (it fixes the test, but pburba asked on IRC how this change

Modified: subversion/branches/1.6.x-issue3816/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/include/svn_version.h?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/include/svn_version.h (original)
+++ subversion/branches/1.6.x-issue3816/subversion/include/svn_version.h Wed May 11 14:08:14 2011
@@ -89,7 +89,7 @@ extern "C" {
  *
  * Always change this at the same time as SVN_VER_NUMTAG.
  */
-#define SVN_VER_TAG        " (dev build)"
+#define SVN_VER_TAG        " (under development)"
 
 
 /** Number tag: a string describing the version.
@@ -129,7 +129,7 @@ extern "C" {
 #define SVN_VER_NUMBER     SVN_VER_NUM SVN_VER_NUMTAG
 
 /** Complete version string */
-#define SVN_VERSION        SVN_VER_NUM SVN_VER_TAG
+#define SVN_VERSION        SVN_VER_NUMBER SVN_VER_TAG
 
 
 

Modified: subversion/branches/1.6.x-issue3816/subversion/libsvn_repos/rev_hunt.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/libsvn_repos/rev_hunt.c?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/libsvn_repos/rev_hunt.c (original)
+++ subversion/branches/1.6.x-issue3816/subversion/libsvn_repos/rev_hunt.c Wed May 11 14:08:14 2011
@@ -1029,7 +1029,8 @@ struct path_revision
 };
 
 /* Check for merges in OLD_PATH_REV->PATH at OLD_PATH_REV->REVNUM.  Store
-   the mergeinfo difference in MERGED_MERGEINFO, allocated in POOL. */
+   the mergeinfo difference in *MERGED_MERGEINFO, allocated in POOL.  The
+   returned *MERGED_MERGEINFO will be NULL if there are no changes. */
 static svn_error_t *
 get_merged_mergeinfo(apr_hash_t **merged_mergeinfo,
                      svn_repos_t *repos,
@@ -1039,6 +1040,30 @@ get_merged_mergeinfo(apr_hash_t **merged
   apr_pool_t *subpool = svn_pool_create(pool);
   apr_hash_t *curr_mergeinfo, *prev_mergeinfo, *deleted, *changed;
   svn_error_t *err;
+  svn_fs_root_t *root;
+  apr_hash_t *changed_paths;
+  const char *path = old_path_rev->path;
+
+  /* Getting/parsing/diffing svn:mergeinfo is expensive, so only do it
+     if there is a property change. */
+  SVN_ERR(svn_fs_revision_root(&root, repos->fs, old_path_rev->revnum,
+                               subpool));
+  SVN_ERR(svn_fs_paths_changed2(&changed_paths, root, subpool));
+  while (1)
+    {
+      svn_fs_path_change2_t *changed_path = apr_hash_get(changed_paths,
+                                                         path,
+                                                         APR_HASH_KEY_STRING);
+      if (changed_path && changed_path->prop_mod)
+        break;
+      if (svn_dirent_is_root(path, strlen(path)))
+        {
+          svn_pool_destroy(subpool);
+          *merged_mergeinfo = NULL;
+          return SVN_NO_ERROR;
+        }
+      path = svn_path_dirname(path, subpool);
+    }
 
   /* First, find the mergeinfo difference for old_path_rev->revnum, and
      old_path_rev->revnum - 1. */
@@ -1048,10 +1073,12 @@ get_merged_mergeinfo(apr_hash_t **merged
                            old_path_rev->revnum - 1, subpool);
   if (err && err->apr_err == SVN_ERR_FS_NOT_FOUND)
     {
-      /* If the path doesn't exist in the previous revision, assume empty
-         mergeinfo. */
+      /* If the path doesn't exist in the previous revision, assume no
+         merges */
       svn_error_clear(err);
-      prev_mergeinfo = apr_hash_make(subpool);
+      svn_pool_destroy(subpool);
+      *merged_mergeinfo = NULL;
+      return SVN_NO_ERROR;
     }
   else
     SVN_ERR(err);
@@ -1059,10 +1086,14 @@ get_merged_mergeinfo(apr_hash_t **merged
   /* Then calculate and merge the differences. */
   SVN_ERR(svn_mergeinfo_diff(&deleted, &changed, prev_mergeinfo, curr_mergeinfo,
                              FALSE, subpool));
-  SVN_ERR(svn_mergeinfo_merge(changed, deleted, subpool));
+  if (apr_hash_count(deleted))
+    SVN_ERR(svn_mergeinfo_merge(changed, deleted, subpool));
 
   /* Store the result. */
-  *merged_mergeinfo = svn_mergeinfo_dup(changed, pool);
+  if (apr_hash_count(changed))
+    *merged_mergeinfo = svn_mergeinfo_dup(changed, pool);
+  else
+    *merged_mergeinfo = NULL;
 
   svn_pool_destroy(subpool);
 

Modified: subversion/branches/1.6.x-issue3816/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/libsvn_subr/io.c?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/1.6.x-issue3816/subversion/libsvn_subr/io.c Wed May 11 14:08:14 2011
@@ -50,8 +50,11 @@
 #include "svn_pools.h"
 #include "svn_utf.h"
 #include "svn_config.h"
+#include "svn_dirent_uri.h"
 #include "svn_private_config.h"
 
+#include "private/svn_atomic.h"
+
 #define SVN_SLEEP_ENV_VAR "SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS"
 
 /*
@@ -458,6 +461,151 @@ svn_io_open_uniquely_named(apr_file_t **
                            svn_path_local_style(path, scratch_pool));
 }
 
+#ifdef WIN32
+/* Counter value of file_mktemp request (used in a threadsafe way), to make
+   sure that a single process normally never generates the same tempname
+   twice */
+static volatile apr_uint32_t tempname_counter = 0;
+#endif
+
+/* Creates a new temporary file in DIRECTORY with apr flags FLAGS.
+   Set *NEW_FILE to the file handle and *NEW_FILE_NAME to its name.
+   Perform temporary allocations in SCRATCH_POOL and the result in
+   RESULT_POOL. */
+static svn_error_t *
+temp_file_create(apr_file_t **new_file,
+                 const char **new_file_name,
+                 const char *directory,
+                 apr_int32_t flags,
+                 apr_pool_t *result_pool,
+                 apr_pool_t *scratch_pool)
+{
+#ifndef WIN32
+  const char *templ = svn_dirent_join(directory, "svn-XXXXXX", scratch_pool);
+  const char *templ_apr;
+  apr_status_t status;
+
+  SVN_ERR(svn_path_cstring_from_utf8(&templ_apr, templ, scratch_pool));
+
+  /* ### svn_path_cstring_from_utf8() guarantees to make a copy of the
+         data available in POOL and we need a non-const pointer here,
+         as apr changes the template to return the new filename. */
+  status = apr_file_mktemp(new_file, (char *)templ_apr, flags, result_pool);
+
+  if (status)
+    return svn_error_wrap_apr(status, _("Can't create temporary file from "
+                              "template '%s'"), templ);
+
+  /* Translate the returned path back to utf-8 before returning it */
+  return svn_path_cstring_to_utf8(new_file_name, templ_apr, result_pool);
+#else
+  /* The Windows implementation of apr_file_mktemp doesn't handle access
+     denied errors correctly. Therefore we implement our own temp file
+     creation function here. */
+
+  /* ### Most of this is borrowed from the svn_io_open_uniquely_named(),
+     ### the function we used before. But we try to guess a more unique
+     ### name before trying if it exists. */
+
+  /* Offset by some time value and a unique request nr to make the number
+     +- unique for both this process and on the computer */
+  int baseNr = (GetTickCount() << 11) + 7 * svn_atomic_inc(&tempname_counter)
+               + GetCurrentProcessId();
+  int i;
+
+  /* ### Maybe use an iterpool? */
+  for (i = 0; i <= 99999; i++)
+    {
+      apr_uint32_t unique_nr;
+      const char *unique_name;
+      const char *unique_name_apr;
+      apr_file_t *try_file;
+      apr_status_t apr_err;
+
+      /* Generate a number that should be unique for this application and
+         usually for the entire computer to reduce the number of cycles
+         through this loop. (A bit of calculation is much cheaper then
+         disk io) */
+      unique_nr = baseNr + 3 * i;
+
+      unique_name = svn_dirent_join(directory,
+                                    apr_psprintf(scratch_pool, "svn-%X",
+                                                 unique_nr),
+                                    scratch_pool);
+
+      SVN_ERR(cstring_from_utf8(&unique_name_apr, unique_name, scratch_pool));
+
+      apr_err = file_open(&try_file, unique_name_apr, flags,
+                          APR_OS_DEFAULT, FALSE, scratch_pool);
+
+      if (APR_STATUS_IS_EEXIST(apr_err))
+          continue;
+      else if (apr_err)
+        {
+          /* On Win32, CreateFile fails with an "Access Denied" error
+             code, rather than "File Already Exists", if the colliding
+             name belongs to a directory. */
+
+          if (APR_STATUS_IS_EACCES(apr_err))
+            {
+              apr_finfo_t finfo;
+              apr_status_t apr_err_2 = apr_stat(&finfo, unique_name_apr,
+                                                APR_FINFO_TYPE, scratch_pool);
+
+              if (!apr_err_2 && finfo.filetype == APR_DIR)
+                continue;
+
+#ifdef WIN32
+              apr_err_2 = APR_TO_OS_ERROR(apr_err);
+
+              if (apr_err_2 == ERROR_ACCESS_DENIED ||
+                  apr_err_2 == ERROR_SHARING_VIOLATION)
+                {
+                  /* The file is in use by another process or is hidden;
+                     create a new name, but don't do this 99999 times in
+                     case the folder is not writable */
+                  i += 797;
+                  continue;
+                }
+#endif
+
+              /* Else fall through and return the original error. */
+            }
+
+          return svn_error_wrap_apr(apr_err, _("Can't open '%s'"),
+                                    svn_dirent_local_style(unique_name,
+                                                           scratch_pool));
+        }
+      else
+        {
+          /* Move file to the right pool */
+          apr_err = apr_file_setaside(new_file, try_file, result_pool);
+
+          if (apr_err)
+            return svn_error_wrap_apr(apr_err, _("Can't set aside '%s'"),
+                                      svn_dirent_local_style(unique_name,
+                                                             scratch_pool));
+
+          *new_file_name = apr_pstrdup(result_pool, unique_name);
+
+          return SVN_NO_ERROR;
+        }
+    }
+
+  return svn_error_createf(SVN_ERR_IO_UNIQUE_NAMES_EXHAUSTED,
+                           NULL,
+                           _("Unable to make name in '%s'"),
+                           svn_dirent_local_style(directory, scratch_pool));
+#endif
+}
+
+/* ### forward declarations */
+static svn_error_t *
+merge_default_file_perms(apr_file_t *fd, apr_fileperms_t *perms,
+                         apr_pool_t *scratch_pool);
+static svn_error_t *
+file_perms_set2(apr_file_t* file, apr_fileperms_t perms);
+
 svn_error_t *
 svn_io_open_unique_file3(apr_file_t **file,
                          const char **temp_path,
@@ -466,9 +614,77 @@ svn_io_open_unique_file3(apr_file_t **fi
                          apr_pool_t *result_pool,
                          apr_pool_t *scratch_pool)
 {
-  return svn_io_open_uniquely_named(file, temp_path,
-                                    dirpath, "tempfile", ".tmp",
-                                    delete_when, result_pool, scratch_pool);
+  apr_file_t *tempfile;
+  const char *tempname;
+  struct temp_file_cleanup_s *baton = NULL;
+  apr_int32_t flags = (APR_READ | APR_WRITE | APR_CREATE | APR_EXCL |
+                       APR_BUFFERED | APR_BINARY);
+#ifndef WIN32
+  apr_fileperms_t perms;
+#endif
+
+  SVN_ERR_ASSERT(file || temp_path);
+  if (file)
+    *file = NULL;
+  if (temp_path)
+    *temp_path = NULL;
+
+  if (dirpath == NULL)
+    SVN_ERR(svn_io_temp_dir(&dirpath, scratch_pool));
+
+  switch (delete_when)
+    {
+      case svn_io_file_del_on_pool_cleanup:
+        baton = apr_palloc(result_pool, sizeof(*baton));
+        baton->pool = result_pool;
+        baton->name = NULL;
+
+        /* Because cleanups are run LIFO, we need to make sure to register
+           our cleanup before the apr_file_close cleanup:
+
+           On Windows, you can't remove an open file.
+        */
+        apr_pool_cleanup_register(result_pool, baton,
+                                  temp_file_plain_cleanup_handler,
+                                  temp_file_child_cleanup_handler);
+
+        break;
+      case svn_io_file_del_on_close:
+        flags |= APR_DELONCLOSE;
+        break;
+      default:
+        break;
+    }
+
+  SVN_ERR(temp_file_create(&tempfile, &tempname, dirpath, flags,
+                           result_pool, scratch_pool));
+
+#if !defined(WIN32) && !defined(__OS2__)
+  /* ### file_mktemp() creates files with mode 0600.
+   * ### As of r880338, tempfiles created by svn_io_open_unique_file3()
+   * ### often end up being copied or renamed into the working copy.
+   * ### This will cause working files having mode 0600 while users might
+   * ### expect to see 644 or 664. Ideally, permissions should be tweaked
+   * ### by our callers after installing tempfiles in the WC, but until
+   * ### that's done we need to avoid breaking pre-r880338 behaviour.
+   * ### So we tweak perms of the tempfile here, but only if the umask
+   * ### allows it. */
+  SVN_ERR(merge_default_file_perms(tempfile, &perms, scratch_pool));
+  SVN_ERR(file_perms_set2(tempfile, perms));
+#endif
+
+  if (file)
+    *file = tempfile;
+  else
+    SVN_ERR(svn_io_file_close(tempfile, scratch_pool));
+
+  if (temp_path)
+    *temp_path = tempname; /* Was allocated in result_pool */
+
+  if (baton)
+    SVN_ERR(cstring_from_utf8(&baton->name, tempname, result_pool));
+
+  return SVN_NO_ERROR;
 }
 
 svn_error_t *
@@ -773,6 +989,30 @@ svn_io_copy_file(const char *src,
   return svn_io_file_rename(dst_tmp, dst, pool);
 }
 
+#if !defined(WIN32) && !defined(__OS2__)
+/* Set permissions PERMS on the FILE. This is a cheaper variant of the
+ * file_perms_set wrapper() function because no locale-dependent string
+ * conversion is required.
+ */
+static svn_error_t *
+file_perms_set2(apr_file_t* file, apr_fileperms_t perms)
+{
+  const char *fname_apr;
+  apr_status_t status;
+
+  status = apr_file_name_get(&fname_apr, file);
+  if (status)
+    return svn_error_wrap_apr(status, _("Can't get file name"));
+
+  status = apr_file_perms_set(fname_apr, perms);
+  if (status)
+    return svn_error_wrap_apr(status, _("Can't set permissions on '%s'"),
+                              fname_apr);
+  else
+    return SVN_NO_ERROR;
+}
+#endif /* !WIN32 && !__OS2__ */
+
 
 svn_error_t *
 svn_io_copy_perms(const char *src,
@@ -1214,60 +1454,75 @@ reown_file(const char *path,
   return svn_io_remove_file(unique_name, pool);
 }
 
-/* Determine what the read-write PERMS for PATH should be by ORing
-   together the permissions of PATH and the permissions of a temporary
-   file that we create.  Unfortunately, this is the only way to
-   determine which combination of write bits (User/Group/World) should
-   be set to restore a file from read-only to read-write.  Make
-   temporary allocations in POOL.  */
+/* Determine what the PERMS for a new file should be by looking at the
+   permissions of a temporary file that we create.
+   Unfortunately, umask() as defined in POSIX provides no thread-safe way
+   to get at the current value of the umask, so what we're doing here is
+   the only way we have to determine which combination of write bits
+   (User/Group/World) should be set by default.
+   Make temporary allocations in SCRATCH_POOL.  */
 static svn_error_t *
-get_default_file_perms(const char *path, apr_fileperms_t *perms,
-                       apr_pool_t *pool)
+get_default_file_perms(apr_fileperms_t *perms, apr_pool_t *scratch_pool)
 {
-  apr_status_t status;
-  apr_finfo_t tmp_finfo, finfo;
-  apr_file_t *fd;
-  const char *tmp_path;
-  const char *apr_path;
-
-  /* Get the perms for a newly created file to find out what write
-     bits should be set.
-
-     NOTE: normally del_on_close can be problematic because APR might
-       delete the file if we spawned any child processes. In this case,
-       the lifetime of this file handle is about 3 lines of code, so
-       we can safely use del_on_close here.
+  /* the default permissions as read from the temp folder */
+  static apr_fileperms_t default_perms = 0;
 
-     NOTE: not so fast, shorty. if some other thread forks off a child,
-       then the APR cleanups run, and the file will disappear. sigh.
-  */
-  SVN_ERR(svn_io_open_unique_file3(&fd, &tmp_path,
-                                   svn_path_dirname(path, pool),
-                                   svn_io_file_del_on_pool_cleanup,
-                                   pool, pool));
-  status = apr_stat(&tmp_finfo, tmp_path, APR_FINFO_PROT, pool);
-  if (status)
-    return svn_error_wrap_apr(status, _("Can't get default file perms "
-                                        "for file at '%s' (file stat error)"),
-                              path);
-  apr_file_close(fd);
-
-  /* Get the perms for the original file so we'll have any other bits
-   * that were already set (like the execute bits, for example). */
-  SVN_ERR(cstring_from_utf8(&apr_path, path, pool));
-  status = apr_file_open(&fd, apr_path, APR_READ | APR_BINARY,
-                         APR_OS_DEFAULT, pool);
-  if (status)
-    return svn_error_wrap_apr(status, _("Can't open file at '%s'"), path);
+  /* Technically, this "racy": Multiple threads may use enter here and
+     try to figure out the default permisission concurrently. That's fine
+     since they will end up with the same results. Even more technical,
+     apr_fileperms_t is an atomic type on 32+ bit machines.
+   */
+  if (default_perms == 0)
+    {
+      apr_finfo_t finfo;
+      apr_file_t *fd;
 
-  status = apr_stat(&finfo, apr_path, APR_FINFO_PROT, pool);
-  if (status)
-    return svn_error_wrap_apr(status, _("Can't get file perms for file at "
-                                        "'%s' (file stat error)"), path);
-  apr_file_close(fd);
+      /* Get the perms for a newly created file to find out what bits
+        should be set.
+
+        Normally del_on_close can be problematic because APR might
+        delete the file if we spawned any child processes. In this
+        case, the lifetime of this file handle is about 3 lines of
+        code, so we can safely use del_on_close here.
+
+        Not so fast! If some other thread forks off a child, then the
+        APR cleanups run, and the file will disappear. So use
+        del_on_pool_cleanup instead.
+
+        Using svn_io_open_uniquely_named() here because other tempfile
+        creation functions tweak the permission bits of files they create.
+      */
+      SVN_ERR(svn_io_open_uniquely_named(&fd, NULL, NULL, "svn-tempfile", ".tmp",
+                                        svn_io_file_del_on_pool_cleanup,
+                                        scratch_pool, scratch_pool));
+      SVN_ERR(svn_io_file_info_get(&finfo, APR_FINFO_PROT, fd, scratch_pool));
+      SVN_ERR(svn_io_file_close(fd, scratch_pool));
+
+      *perms = finfo.protection;
+      default_perms = finfo.protection;
+    }
+  else
+    *perms = default_perms;
+
+  return SVN_NO_ERROR;
+}
+
+
+/* OR together permission bits of the file FD and the default permissions
+   of a file as determined by get_default_file_perms(). Do temporary
+   allocations in SCRATCH_POOL. */
+static svn_error_t *
+merge_default_file_perms(apr_file_t *fd, apr_fileperms_t *perms,
+                         apr_pool_t *scratch_pool)
+{
+  apr_finfo_t finfo;
+  apr_fileperms_t default_perms;
+
+  SVN_ERR(get_default_file_perms(&default_perms, scratch_pool));
+  SVN_ERR(svn_io_file_info_get(&finfo, APR_FINFO_PROT, fd, scratch_pool));
 
   /* Glom the perms together. */
-  *perms = tmp_finfo.protection | finfo.protection;
+  *perms = default_perms | finfo.protection;
   return SVN_NO_ERROR;
 }
 
@@ -1313,7 +1568,16 @@ io_set_file_perms(const char *path,
   if (change_readwrite)
     {
       if (enable_write) /* Make read-write. */
-        SVN_ERR(get_default_file_perms(path, &perms_to_set, pool));
+        {
+          apr_file_t *fd;
+
+          /* Get the perms for the original file so we'll have any other bits
+           * that were already set (like the execute bits, for example). */
+          SVN_ERR(svn_io_file_open(&fd, path, APR_READ | APR_BINARY,
+                                   APR_OS_DEFAULT, pool));
+          SVN_ERR(merge_default_file_perms(fd, &perms_to_set, pool));
+          SVN_ERR(svn_io_file_close(fd, pool));
+        }
       else
         {
           if (finfo.protection & APR_UREAD)

Modified: subversion/branches/1.6.x-issue3816/subversion/mod_dav_svn/reports/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/mod_dav_svn/reports/update.c?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/mod_dav_svn/reports/update.c (original)
+++ subversion/branches/1.6.x-issue3816/subversion/mod_dav_svn/reports/update.c Wed May 11 14:08:14 2011
@@ -1377,6 +1377,11 @@ dav_svn__update_report(const dav_resourc
   /* this will complete the report, and then drive our editor to generate
      the response to the client. */
   serr = svn_repos_finish_report(rbaton, resource->pool);
+
+  /* Whether svn_repos_finish_report returns an error or not we can no
+     longer abort this report as the file has been closed. */
+  rbaton = NULL;
+
   if (serr)
     {
       derr = dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
@@ -1386,10 +1391,6 @@ dav_svn__update_report(const dav_resourc
       goto cleanup;
     }
 
-  /* We're finished with the report baton.  Note that so we don't try
-     to abort this report later. */
-  rbaton = NULL;
-
   /* ### Temporarily disable resource_walks for single-file switch
      operations.  It isn't strictly necessary. */
   if (dst_path && resource_walk)

Modified: subversion/branches/1.6.x-issue3816/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/svn/util.c?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/svn/util.c (original)
+++ subversion/branches/1.6.x-issue3816/subversion/svn/util.c Wed May 11 14:08:14 2011
@@ -422,11 +422,21 @@ svn_cl__edit_string_externally(svn_strin
       goto cleanup;
     }
 
-  /* Now, run the editor command line.  */
+  /* Prepare the editor command line.  */
   err = svn_utf_cstring_from_utf8(&tmpfile_native, tmpfile_name, pool);
   if (err)
     goto cleanup;
   cmd = apr_psprintf(pool, "%s %s", editor, tmpfile_native);
+
+  /* If the caller wants us to leave the file around, return the path
+     of the file we used, and make a note not to destroy it.  */
+  if (tmpfile_left)
+    {
+      *tmpfile_left = svn_path_join(base_dir, tmpfile_name, pool);
+      remove_file = FALSE;
+    }
+
+  /* Now, run the editor command line.  */
   sys_err = system(cmd);
   if (sys_err != 0)
     {
@@ -446,14 +456,6 @@ svn_cl__edit_string_externally(svn_strin
       goto cleanup;
     }
 
-  /* If the caller wants us to leave the file around, return the path
-     of the file we used, and make a note not to destroy it.  */
-  if (tmpfile_left)
-    {
-      *tmpfile_left = svn_path_join(base_dir, tmpfile_name, pool);
-      remove_file = FALSE;
-    }
-
   /* If the file looks changed... */
   if ((finfo_before.mtime != finfo_after.mtime) ||
       (finfo_before.size != finfo_after.size))

Modified: subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/getopt_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/getopt_tests.py?rev=1101881&r1=1101880&r2=1101881&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/getopt_tests.py (original)
+++ subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/getopt_tests.py Wed May 11 14:08:14 2011
@@ -65,9 +65,9 @@ del_lines_res = [
 # This is a list of lines to search and replace text on.
 rep_lines_res = [
                  # In 'svn --version', this line varies, for example:
-                 # "Subversion Client, version 0.10.2 (dev build)"
+                 # "Subversion Client, version 0.10.2-dev (under development)"
                  # "Subversion Client, version 0.10.2 (r1729)"
-                 (re.compile(r'version \d+\.\d+\.\d+ \(.*\)'),
+                 (re.compile(r'version \d+\.\d+\.\d+(-[^ ]*)? \(.*\)'),
                   'version X.Y.Z '),
                  # The copyright end date keeps changing; fix forever.
                  (re.compile(r'Copyright \(C\) 2000-\d+ CollabNet\.'),

Propchange: subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/merge_tests.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 11 14:08:14 2011
@@ -1,4 +1,5 @@
 /subversion/branches/1.5.x-r30215/subversion/tests/cmdline/merge_tests.py:870312
+/subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py:1083880-1101877
 /subversion/branches/1.6.x-1.6.8-serfassertion/subversion/tests/cmdline/merge_tests.py:900822-900868
 /subversion/branches/1.6.x-3242-partial-fixes/subversion/tests/cmdline/merge_tests.py:931279-932637
 /subversion/branches/1.6.x-UNC-paths/subversion/tests/cmdline/merge_tests.py:876471-876545
@@ -32,6 +33,7 @@
 /subversion/branches/1.6.x-r1051744/subversion/tests/cmdline/merge_tests.py:1052424-1071327
 /subversion/branches/1.6.x-r1058269/subversion/tests/cmdline/merge_tests.py:1058271-1072344
 /subversion/branches/1.6.x-r1068988/subversion/tests/cmdline/merge_tests.py:1070588-1072337
+/subversion/branches/1.6.x-r1072084/subversion/tests/cmdline/merge_tests.py:1072274-1100234
 /subversion/branches/1.6.x-r36178/subversion/tests/cmdline/merge_tests.py:877876-877884
 /subversion/branches/1.6.x-r36252/subversion/tests/cmdline/merge_tests.py:876328-876788
 /subversion/branches/1.6.x-r37622/subversion/tests/cmdline/merge_tests.py:877699-877993
@@ -104,4 +106,4 @@
 /subversion/branches/tree-conflicts/subversion/tests/cmdline/merge_tests.py:868291-873154
 /subversion/branches/tree-conflicts-notify/subversion/tests/cmdline/merge_tests.py:873926-874008
 /subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py:953878
-/subversion/trunk/subversion/tests/cmdline/merge_tests.py:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,
 877437,877441-877442,877453,877459,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,87
 9271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,944635,945350,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964767,965405,965469,965508,979045,979429,981921,984565,984928,984931,991534,996884,997026,997070,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1028108,1031165,1031186,1032808,1033166,1033665,103
 3685,1033921,1034557,1035745,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072953,1076759
+/subversion/trunk/subversion/tests/cmdline/merge_tests.py:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,
 877437,877441-877442,877453,877459,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,87
 9271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,944635,945350,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964767,965405,965469,965508,979045,979429,981921,984565,984928,984931,991534,996884,997026,997070,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1028108,1031165,1031186,1032808,1033166,1033665,103
 3685,1033921,1034557,1035745,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072084,1072953,1076759

Propchange: subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/svntest/main.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 11 14:08:14 2011
@@ -1,4 +1,5 @@
 /subversion/branches/1.5.x-r30215/subversion/tests/cmdline/svntest/main.py:870312
+/subversion/branches/1.6.x/subversion/tests/cmdline/svntest/main.py:1083880-1101877
 /subversion/branches/1.6.x-1.6.8-serfassertion/subversion/tests/cmdline/svntest/main.py:900822-900868
 /subversion/branches/1.6.x-3242-partial-fixes/subversion/tests/cmdline/svntest/main.py:931279-932637
 /subversion/branches/1.6.x-UNC-paths/subversion/tests/cmdline/svntest/main.py:876471-876545
@@ -32,6 +33,7 @@
 /subversion/branches/1.6.x-r1051744/subversion/tests/cmdline/svntest/main.py:1052424-1071327
 /subversion/branches/1.6.x-r1058269/subversion/tests/cmdline/svntest/main.py:1058271-1072344
 /subversion/branches/1.6.x-r1068988/subversion/tests/cmdline/svntest/main.py:1070588-1072337
+/subversion/branches/1.6.x-r1072084/subversion/tests/cmdline/svntest/main.py:1072274-1100234
 /subversion/branches/1.6.x-r36178/subversion/tests/cmdline/svntest/main.py:877876-877884
 /subversion/branches/1.6.x-r36252/subversion/tests/cmdline/svntest/main.py:876328-876788
 /subversion/branches/1.6.x-r37622/subversion/tests/cmdline/svntest/main.py:877699-877993
@@ -104,5 +106,5 @@
 /subversion/branches/tc_url_rev/subversion/tests/cmdline/svntest/main.py:874351-874483
 /subversion/branches/tree-conflicts/subversion/tests/cmdline/svntest/main.py:868291-873154
 /subversion/branches/tree-conflicts-notify/subversion/tests/cmdline/svntest/main.py:873926-874008
-/subversion/trunk/subversion/tests/cmdline/svntest/main.py:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614-876615,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319
 ,877407,877437,877441-877442,877453,877459,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,8
 79201,879271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,907644,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,962377-962378,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,10020
 94,1005446,1022675,1024269,1027957,1028108,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072953,1076759
+/subversion/trunk/subversion/tests/cmdline/svntest/main.py:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614-876615,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319
 ,877407,877437,877441-877442,877453,877459,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,8
 79201,879271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,907644,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,962377-962378,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,10020
 94,1005446,1022675,1024269,1027957,1028108,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1038792,1041438,1051632,1051638,1051744-1051745,1051751,1053185,1053208,1058722,1064839,1068988,1070912,1071239,1071307,1072084,1072953,1076759
 /subversion/trunk/subversion/tests/cmdline/svntest/sandbox.py:991972



Mime
View raw message