svn commit: r1151015 - /subversion/trunk/subversion/tests/cmdline/info_tests.py

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 08:24:17 2011
New Revision: 1151015

URL: http://svn.apache.org/viewvc?rev=1151015&view=rev
Log:
* subversion/tests/cmdline/info_tests.py
  (info_show_exclude): Fix indentation and put the expected error string
into a variable instead of spelling it out twice. No functional change.

Patch by: Noorul Islam K M 

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

Modified: subversion/trunk/subversion/tests/cmdline/info_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/info_tests.py?rev=1151015&r1=1151014&r2=1151015&view=diff
==
--- subversion/trunk/subversion/tests/cmdline/info_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/info_tests.py Tue Jul 26 08:24:17 
2011
@@ -449,8 +449,8 @@ def info_show_exclude(sbox):
 
   expected_info = [{
   'Path' : '.*%siota' % re.escape(os.sep),
- 'Repository Root' : sbox.repo_url,
- 'Repository UUID' : wc_uuid,
+  'Repository Root' : sbox.repo_url,
+  'Repository UUID' : wc_uuid,
   }]
   svntest.main.run_svn(None, 'up', '--set-depth', 'exclude', iota)
   svntest.actions.run_and_verify_info(expected_info, iota)
@@ -469,19 +469,16 @@ def info_show_exclude(sbox):
 
   sbox.simple_rm('iota')
   sbox.simple_commit()
+  
+  expected_error = 'svn: E29: Could not display info for all targets.*'
 
   # Expect error on iota (status = not-present)
-  svntest.actions.run_and_verify_svn(None, [],
-   'svn: E29: Could not display info for all targets.*',
-'info', iota)
+  svntest.actions.run_and_verify_svn(None, [], expected_error, 'info', iota)
 
   sbox.simple_update()
 
   # Expect error on iota (unversioned)
-  svntest.actions.run_and_verify_svn(None, [],
-   'svn: E29: Could not display info for all targets.*',
-'info', iota)
-
+  svntest.actions.run_and_verify_svn(None, [], expected_error, 'info', iota)
 
 
 # Run the tests




svn commit: r1151020 - /subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py

2011-07-26 Thread philip
Author: philip
Date: Tue Jul 26 08:46:58 2011
New Revision: 1151020

URL: http://svn.apache.org/viewvc?rev=1151020&view=rev
Log:
New test for 'svnadmin lslocks' and 'svnadmin rmlocks'.

* subversion/tests/cmdline/svnadmin_tests.py
  (test_lslocks_and_rmlocks): New test.
  (test_list): Add new test.

Patch by: Noorul Islam K M 

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

Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py?rev=1151020&r1=1151019&r2=1151020&view=diff
==
--- subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Tue Jul 26 
08:46:58 2011
@@ -26,6 +26,7 @@
 
 # General modules
 import os
+import re
 import shutil
 import sys
 
@@ -33,6 +34,7 @@ import sys
 import svntest
 from svntest.verify import SVNExpectedStdout, SVNExpectedStderr
 from svntest.verify import SVNUnexpectedStderr
+from svntest.verify import UnorderedOutput
 from svntest.main import SVN_PROP_MERGEINFO
 
 # (abbreviation)
@@ -1381,6 +1383,86 @@ def verify_non_utf8_paths(sbox):
 'STDERR', expected_stderr, errput):
 raise svntest.Failure
 
+def test_lslocks_and_rmlocks(sbox):
+  "test 'svnadmin lslocks' and 'svnadmin rmlocks'"
+  
+  sbox.build(create_wc=False)
+  iota_url = sbox.repo_url + '/iota'
+  lambda_url = sbox.repo_url + '/A/B/lambda'
+
+  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
+sbox.repo_dir)
+
+  if exit_code or errput or output:
+raise svntest.Failure("Error: 'lslocks' failed")
+
+  expected_output = UnorderedOutput(
+["'A/B/lambda' locked by user 'jrandom'.\n",
+ "'iota' locked by user 'jrandom'.\n"])
+  
+  # Lock iota and A/B/lambda using svn client
+  svntest.actions.run_and_verify_svn(None, expected_output,
+ [], "lock", "-m", "Locking files",
+ iota_url, lambda_url)
+
+  expected_output = svntest.verify.UnorderedRegexOutput([
+  "Path: /A/B/lambda",
+  "UUID Token: opaquelocktoken",
+  "Owner: jrandom",
+  "Created:",
+  "Expires:",
+  "Comment \(1 line\):",
+  "Locking files",
+  "Path: /iota",
+  "UUID Token: opaquelocktoken.*",  
+  "\n", # empty line
+  ])
+
+  # List all locks
+  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
+sbox.repo_dir)
+  
+  if errput:
+raise SVNUnexpectedStderr(errput)
+
+  svntest.verify.compare_and_display_lines('message', 'label',
+   expected_output, output)
+  svntest.verify.verify_exit_code(None, exit_code, 0)
+
+  # List lock in path /A
+  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
+sbox.repo_dir,
+"A")
+  if errput:
+raise SVNUnexpectedStderr(errput)
+
+  expected_output = svntest.verify.UnorderedRegexOutput([
+"Path: /A/B/lambda",
+"UUID Token: opaquelocktoken",
+"Owner: jrandom",
+"Created:",
+"Expires:",
+"Comment \(1 line\):",
+"Locking files",
+"\n", # empty line
+])
+
+  svntest.verify.compare_and_display_lines('message', 'label',
+   expected_output, output)
+  svntest.verify.verify_exit_code(None, exit_code, 0)
+
+  # Remove locks
+  exit_code, output, errput = svntest.main.run_svnadmin("rmlocks",
+sbox.repo_dir,
+"iota",
+"A/B/lambda")
+  expected_output = UnorderedOutput(["Removed lock on '/iota'.\n",
+ "Removed lock on '/A/B/lambda'.\n"])
+  
+  svntest.verify.verify_outputs(
+"Unexpected output while running 'svnadmin rmlocks'.",
+output, [], expected_output, None)
+
 
 # Run the tests
 
@@ -1410,6 +1492,7 @@ test_list = [ None,
   hotcopy_symlink,
   load_bad_props,
   verify_non_utf8_paths,
+  test_lslocks_and_rmlocks,
  ]
 
 if __name__ == '__main__':




svn commit: r1151028 - /subversion/site/publish/docs/release-notes/1.7.html

2011-07-26 Thread danielsh
Author: danielsh
Date: Tue Jul 26 09:04:10 2011
New Revision: 1151028

URL: http://svn.apache.org/viewvc?rev=1151028&view=rev
Log:
* docs/release-notes/1.7.html
  (revprop-packing): Update a link.

Modified:
subversion/site/publish/docs/release-notes/1.7.html

Modified: subversion/site/publish/docs/release-notes/1.7.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.7.html?rev=1151028&r1=1151027&r2=1151028&view=diff
==
--- subversion/site/publish/docs/release-notes/1.7.html (original)
+++ subversion/site/publish/docs/release-notes/1.7.html Tue Jul 26 09:04:10 2011
@@ -360,7 +360,7 @@ svnadmin: E160043: Found format '5', onl
 
 
 We reiterate that this lack of upgrade path is within the latitude of
-our policy for pre-releases.  We may
+our policy for pre-releases.  We may
 provide in the future a script to downgrade a repository in-place to the
 format supported by both 1.6 and 1.7.  (We will welcome contributions of such a script.)




svn commit: r1151036 - /subversion/trunk/subversion/po/de.po

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 09:26:41 2011
New Revision: 1151036

URL: http://svn.apache.org/viewvc?rev=1151036&view=rev
Log:
* subversion/po/de.po: Fix an error in the German translation of the help
   text of 'svn export'. The text was implying that unversioned files
   were exported under some condititions, which isn't a proper translation
   of the original meaning (such files are never exported).

Found by: Ulrich Eckhardt
http://svn.haxx.se/users/archive-2011-07/0403.shtml

Modified:
subversion/trunk/subversion/po/de.po

Modified: subversion/trunk/subversion/po/de.po
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/po/de.po?rev=1151036&r1=1151035&r2=1151036&view=diff
==
--- subversion/trunk/subversion/po/de.po [UTF-8] (original)
+++ subversion/trunk/subversion/po/de.po [UTF-8] Tue Jul 26 09:26:41 2011
@@ -8506,7 +8506,7 @@ msgstr ""
 " sonst REV. Ohne Angabe von PFAD2 wird der letzte Abschnitt von PFAD1\n"
 " als lokaler Verzeichnisname verwendet. Ohne Angabe von REV werden alle\n"
 " lokalen Ă„nderungen beibehalten. Objekte, die sich nicht unter\n"
-" Versionskontrolle befinden, werden in diesem Fall auch nicht kopiert.\n"
+" Versionskontrolle befinden, werden nicht kopiert.\n"
 "\n"
 "  PEGREV gibt an, in welcher Revision das Ziel zuerst gesucht wird.\n"
 




svn commit: r1151037 - in /subversion/branches/1.7.x: ./ subversion/po/de.po

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 09:28:37 2011
New Revision: 1151037

URL: http://svn.apache.org/viewvc?rev=1151037&view=rev
Log:
On the 1.7.x branch, merge r1151036 from trunk (obvious fix).

Modified:
subversion/branches/1.7.x/   (props changed)
subversion/branches/1.7.x/subversion/po/de.po

Propchange: subversion/branches/1.7.x/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 26 09:28:37 2011
@@ -54,4 +54,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1148071,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149572,1149675
+/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1148071,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149572,1149675,1151036

Modified: subversion/branches/1.7.x/subversion/po/de.po
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/po/de.po?rev=1151037&r1=1151036&r2=1151037&view=diff
==
--- subversion/branches/1.7.x/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/1.7.x/subversion/po/de.po [UTF-8] Tue Jul 26 09:28:37 
2011
@@ -8506,7 +8506,7 @@ msgstr ""
 " sonst REV. Ohne Angabe von PFAD2 wird der letzte Abschnitt von PFAD1\n"
 " als lokaler Verzeichnisname verwendet. Ohne Angabe von REV werden alle\n"
 " lokalen Ă„nderungen beibehalten. Objekte, die sich nicht unter\n"
-" Versionskontrolle befinden, werden in diesem Fall auch nicht kopiert.\n"
+" Versionskontrolle befinden, werden nicht kopiert.\n"
 "\n"
 "  PEGREV gibt an, in welcher Revision das Ziel zuerst gesucht wird.\n"
 




svn commit: r1151038 - in /subversion/branches/1.6.x: ./ subversion/po/de.po

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 09:29:47 2011
New Revision: 1151038

URL: http://svn.apache.org/viewvc?rev=1151038&view=rev
Log:
On the 1.6.x branch, merge r1151036 from trunk (obvious fix).

Modified:
subversion/branches/1.6.x/   (props changed)
subversion/branches/1.6.x/subversion/po/de.po

Propchange: subversion/branches/1.6.x/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 26 09:29:47 2011
@@ -119,4 +119,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,878590,878595,878607,878625-878627,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,880027,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,917523,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939000,939002,939375-939376,944635,945350,946355,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,992114,996884,997026,997070,997457,997466,997471,997474,138,1
 
60,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,1028084,1028108,1028125,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036429,1036534,1036978,1037762,1038792,1039040,1041438,1041638,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1053984,1058269,1058722,1063572-1063573,1063592,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1074572,1076730,1076759,1076826,1078954,1081255,1084575,1084581,1084764,1084962,1084978,1086222,1094692,1095654,1098608,1102803,1103665,1104309,1125983,1125998,1126007,1126810,1130303,1130448
+/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-

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

2011-07-26 Thread philip
Author: philip
Date: Tue Jul 26 09:31:48 2011
New Revision: 1151039

URL: http://svn.apache.org/viewvc?rev=1151039&view=rev
Log:
* STATUS: Propose issue 3972.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151039&r1=1151038&r2=1151039&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 09:31:48 2011
@@ -191,6 +191,13 @@ Candidate changes:
Votes:
  +1: rhuijben, danielsh
 
+ * r1150812
+   Issue 3972, spurious revert notification on symlinks
+   Justification:
+ A regression from 1.6.
+   Votes:
+ +1: philip
+
 Veto-blocked changes:
 =
 




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

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 09:37:27 2011
New Revision: 1151041

URL: http://svn.apache.org/viewvc?rev=1151041&view=rev
Log:
* STATUS: Vote for r1150812.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151041&r1=1151040&r2=1151041&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 09:37:27 2011
@@ -196,7 +196,7 @@ Candidate changes:
Justification:
  A regression from 1.6.
Votes:
- +1: philip
+ +1: philip, stsp
 
 Veto-blocked changes:
 =




svn commit: r1151044 - /subversion/trunk/subversion/libsvn_wc/info.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 09:45:40 2011
New Revision: 1151044

URL: http://svn.apache.org/viewvc?rev=1151044&view=rev
Log:
* subversion/libsvn_wc/info.c
  (build_info_for_entry): Remove obsolete comment line. The code
pertaining to this was removed in r1132455.

Patch by: Noorul Islam K M 

Modified:
subversion/trunk/subversion/libsvn_wc/info.c

Modified: subversion/trunk/subversion/libsvn_wc/info.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/info.c?rev=1151044&r1=1151043&r2=1151044&view=diff
==
--- subversion/trunk/subversion/libsvn_wc/info.c (original)
+++ subversion/trunk/subversion/libsvn_wc/info.c Tue Jul 26 09:45:40 2011
@@ -285,8 +285,6 @@ build_info_for_node(svn_wc__info2_t **in
   tmpinfo->lock->creation_date = lock->date;
 }
 
-  /* ### Temporary hacks to keep our test suite happy: */
-
   *info = tmpinfo;
   return SVN_NO_ERROR;
 }




svn commit: r1151053 - in /subversion/trunk/subversion/libsvn_subr: auth.c gpg_agent.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 10:19:55 2011
New Revision: 1151053

URL: http://svn.apache.org/viewvc?rev=1151053&view=rev
Log:
* subversion/libsvn_subr/auth.c,
  subversion/libsvn_subr/gpg_agent.c: As per our coding style guidelines,
   change "space-before-paren" formatting to "no-space-before-paren".
   No functional change.

Modified:
subversion/trunk/subversion/libsvn_subr/auth.c
subversion/trunk/subversion/libsvn_subr/gpg_agent.c

Modified: subversion/trunk/subversion/libsvn_subr/auth.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/auth.c?rev=1151053&r1=1151052&r2=1151053&view=diff
==
--- subversion/trunk/subversion/libsvn_subr/auth.c (original)
+++ subversion/trunk/subversion/libsvn_subr/auth.c Tue Jul 26 10:19:55 2011
@@ -382,11 +382,10 @@ svn_auth_ssl_server_cert_info_dup
 }
 
 svn_error_t *
-svn_auth_get_platform_specific_provider
-  (svn_auth_provider_object_t **provider,
-   const char *provider_name,
-   const char *provider_type,
-   apr_pool_t *pool)
+svn_auth_get_platform_specific_provider(svn_auth_provider_object_t **provider,
+const char *provider_name,
+const char *provider_type,
+apr_pool_t *pool)
 {
   *provider = NULL;
 
@@ -490,10 +489,9 @@ svn_auth_get_platform_specific_provider
 }
 
 svn_error_t *
-svn_auth_get_platform_specific_client_providers
-  (apr_array_header_t **providers,
-   svn_config_t *config,
-   apr_pool_t *pool)
+svn_auth_get_platform_specific_client_providers(apr_array_header_t **providers,
+svn_config_t *config,
+apr_pool_t *pool)
 {
   svn_auth_provider_object_t *provider;
   const char *password_stores_config_option;

Modified: subversion/trunk/subversion/libsvn_subr/gpg_agent.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/gpg_agent.c?rev=1151053&r1=1151052&r2=1151053&view=diff
==
--- subversion/trunk/subversion/libsvn_subr/gpg_agent.c (original)
+++ subversion/trunk/subversion/libsvn_subr/gpg_agent.c Tue Jul 26 10:19:55 2011
@@ -371,13 +371,12 @@ simple_gpg_agent_first_creds(void **cred
  const char *realmstring,
  apr_pool_t *pool)
 {
-  return svn_auth__simple_first_creds_helper
-   (credentials,
-iter_baton, provider_baton,
-parameters, realmstring,
-password_get_gpg_agent,
-SVN_AUTH__GPG_AGENT_PASSWORD_TYPE,
-pool);
+  return svn_auth__simple_first_creds_helper(credentials,
+ iter_baton, provider_baton,
+ parameters, realmstring,
+ password_get_gpg_agent,
+ SVN_AUTH__GPG_AGENT_PASSWORD_TYPE,
+ pool);
 }
 
 
@@ -390,13 +389,12 @@ simple_gpg_agent_save_creds(svn_boolean_
 const char *realmstring,
 apr_pool_t *pool)
 {
-  return svn_auth__simple_save_creds_helper
-   (saved, credentials,
-provider_baton, parameters,
-realmstring,
-password_set_gpg_agent,
-SVN_AUTH__GPG_AGENT_PASSWORD_TYPE,
-pool);
+  return svn_auth__simple_save_creds_helper(saved, credentials,
+provider_baton, parameters,
+realmstring,
+password_set_gpg_agent,
+SVN_AUTH__GPG_AGENT_PASSWORD_TYPE,
+pool);
 }
 
 
@@ -410,9 +408,8 @@ static const svn_auth_provider_t gpg_age
 
 /* Public API */
 void
-svn_auth_get_gpg_agent_simple_provider
-  (svn_auth_provider_object_t **provider,
-   apr_pool_t *pool)
+svn_auth_get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider,
+   apr_pool_t *pool)
 {
   svn_auth_provider_object_t *po = apr_pcalloc(pool, sizeof(*po));
 




svn commit: r1151055 - /subversion/trunk/build/generator/gen_win.py

2011-07-26 Thread rhuijben
Author: rhuijben
Date: Tue Jul 26 10:21:39 2011
New Revision: 1151055

URL: http://svn.apache.org/viewvc?rev=1151055&view=rev
Log:
* build/generator/gen_win.py
  (get_win_libs, write_serf_project_file): Following up on r1148043 (and a fix
in serf) dynamically generate serf library names based on the serf version.

Modified:
subversion/trunk/build/generator/gen_win.py

Modified: subversion/trunk/build/generator/gen_win.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_win.py?rev=1151055&r1=1151054&r2=1151055&view=diff
==
--- subversion/trunk/build/generator/gen_win.py (original)
+++ subversion/trunk/build/generator/gen_win.py Tue Jul 26 10:21:39 2011
@@ -1022,7 +1022,7 @@ class WinGeneratorBase(GeneratorBase):
 
 if self.serf_lib:
   if self.serf_ver_maj != 0:
-serflib = 'serf-1.lib'
+serflib = 'serf-%d.lib' % self.serf_ver_maj
   else:
 serflib = 'serf.lib'
 
@@ -1182,7 +1182,7 @@ class WinGeneratorBase(GeneratorBase):
 
 serf_path = os.path.abspath(self.serf_path)
 if self.serf_ver_maj != 0:
-  serflib = 'serf-1.lib'
+  serflib = 'serf-%d.lib' % self.serf_ver_maj
 else:
   serflib = 'serf.lib'
 




svn commit: r1151068 - /subversion/trunk/subversion/libsvn_subr/cmdline.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 12:09:32 2011
New Revision: 1151068

URL: http://svn.apache.org/viewvc?rev=1151068&view=rev
Log:
* subversion/libsvn_subr/cmdline.c
  (svn_cmdline_create_auth_baton): Convert 'space-before-paren' formatting
to 'no-space-before-paren' as per our coding style guidelines.

Modified:
subversion/trunk/subversion/libsvn_subr/cmdline.c

Modified: subversion/trunk/subversion/libsvn_subr/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cmdline.c?rev=1151068&r1=1151067&r2=1151068&view=diff
==
--- subversion/trunk/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cmdline.c Tue Jul 26 12:09:32 2011
@@ -459,8 +459,8 @@ svn_cmdline_create_auth_baton(svn_auth_b
   apr_array_header_t *providers;
 
   /* Populate the registered providers with the platform-specific providers */
-  SVN_ERR(svn_auth_get_platform_specific_client_providers
-(&providers, cfg, pool));
+  SVN_ERR(svn_auth_get_platform_specific_client_providers(&providers,
+  cfg, pool));
 
   /* If we have a cancellation function, cram it and the stuff it
  needs into the prompt baton. */




svn commit: r1151069 - /subversion/trunk/subversion/libsvn_subr/gpg_agent.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 12:11:05 2011
New Revision: 1151069

URL: http://svn.apache.org/viewvc?rev=1151069&view=rev
Log:
* subversion/libsvn_subr/gpg_agent.c: Add a comment that explains how this
   auth cache provider operates, including security considerations.

Modified:
subversion/trunk/subversion/libsvn_subr/gpg_agent.c

Modified: subversion/trunk/subversion/libsvn_subr/gpg_agent.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/gpg_agent.c?rev=1151069&r1=1151068&r2=1151069&view=diff
==
--- subversion/trunk/subversion/libsvn_subr/gpg_agent.c (original)
+++ subversion/trunk/subversion/libsvn_subr/gpg_agent.c Tue Jul 26 12:11:05 2011
@@ -23,6 +23,36 @@
 
 /*  */
 
+/* This auth provider stores a plaintext password in memory managed by
+ * a running gpg-agent. In contrast to other password store providers
+ * it does not save the password to disk.
+ *
+ * Prompting is performed by the gpg-agent using a "pinentry" program
+ * which needs to be installed separately. There are several pinentry
+ * implementations with different front-ends (e.g. qt, gtk, ncurses).
+ *
+ * The gpg-agent will let the password time out after a while,
+ * or immediately when it receives the SIGHUP signal.
+ * When the password has timed out it will automatically prompt the
+ * user for the password again. This is transparent to Subversion.
+ *
+ * SECURITY CONSIDERATIONS:
+ *
+ * Communication to the agent happens over a UNIX socket, which is located
+ * in a directory which only the user running Subversion can access.
+ * However, any program the user runs could access this socket and get
+ * the Subversion password if the program knows the "cache ID" Subversion
+ * uses for the password.
+ * The cache ID is very easy to obtain for programs running as the same user.
+ * Subversion uses the MD5 of the realmstring as cache ID, and these checksums
+ * are also used as filenames within ~/.subversion/auth/svn.simple.
+ * Unlike GNOME Keyring or KDE Wallet, the user is not prompted for
+ * permission if another program attempts to access the password.
+ *
+ * Therefore, while the gpg-agent is running and has the password cached,
+ * this provider is no more secure than a file storing the password in
+ * plaintext.
+ */
 
 
 /*** Includes. ***/




svn commit: r1151073 - /subversion/trunk/subversion/libsvn_subr/gpg_agent.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 12:25:27 2011
New Revision: 1151073

URL: http://svn.apache.org/viewvc?rev=1151073&view=rev
Log:
* subversion/libsvn_subr/gpg_agent.c
  (password_set_gpg_agent): Fix typo in comment.
  (simple_gpg_agent_first_creds): Add docstring.
   simple_gpg_agent_save_creds): Change docstring. The old docstring
was wrong because this provider does not encrypt anything.

Modified:
subversion/trunk/subversion/libsvn_subr/gpg_agent.c

Modified: subversion/trunk/subversion/libsvn_subr/gpg_agent.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/gpg_agent.c?rev=1151073&r1=1151072&r2=1151073&view=diff
==
--- subversion/trunk/subversion/libsvn_subr/gpg_agent.c (original)
+++ subversion/trunk/subversion/libsvn_subr/gpg_agent.c Tue Jul 26 12:25:27 2011
@@ -254,7 +254,7 @@ password_get_gpg_agent(const char **pass
   close(sd);
   return FALSE;
 }
-  /* The agent will terminate its reponse with "OK". */
+  /* The agent will terminate its response with "OK". */
   if (!receive_from_gpg_agent(sd, buffer, BUFFER_SIZE))
 {
   close(sd);
@@ -393,6 +393,7 @@ password_set_gpg_agent(apr_hash_t *creds
 }
 
 
+/* An implementation of svn_auth_provider_t::first_credentials() */
 static svn_error_t *
 simple_gpg_agent_first_creds(void **credentials,
  void **iter_baton,
@@ -410,7 +411,7 @@ simple_gpg_agent_first_creds(void **cred
 }
 
 
-/* Save encrypted credentials to the simple provider's cache. */
+/* An implementation of svn_auth_provider_t::save_credentials() */
 static svn_error_t *
 simple_gpg_agent_save_creds(svn_boolean_t *saved,
 void *credentials,




svn propchange: r1150870 - svn:log

2011-07-26 Thread stsp
Author: stsp
Revision: 1150870
Modified property: svn:log

Modified: svn:log at Tue Jul 26 12:30:13 2011
--
--- svn:log (original)
+++ svn:log Tue Jul 26 12:30:13 2011
@@ -1,5 +1,5 @@
 * subversion/libsvn_auth_gpg_agent/gpg_agent.c
   (password_get_gpg_agent): Write the correct number of bytes to the
socket when sending the GET_PASSPHRASE command. We used to send one
-   (random) byte too much, which the agent will interpret as the first
+   byte too much (a '\0'), which the agent will interpret as the first
byte of the next command we send.



svn propchange: r1150728 - svn:log

2011-07-26 Thread stsp
Author: stsp
Revision: 1150728
Modified property: svn:log

Modified: svn:log at Tue Jul 26 12:31:33 2011
--
--- svn:log (original)
+++ svn:log Tue Jul 26 12:31:33 2011
@@ -5,9 +5,9 @@ Change the password prompt to match the 
 command line client and allow it to be internationalised.
 
 Also make the pinentry program ask for the password twice.
-It is not easy for users to get rid of an invalid password once it is
-in the agent's cache (the easiest way is probably to kill the agent).
-Asking for the password twice makes such mistakes less likely.
+Users must send SIGHUP to the agent to get rid of an invalid password once
+it is in the agent's cache, which also invalidates any other chached
+passphrases. Asking for the password twice makes such mistakes less likely.
 
 * subversion/libsvn_auth_gpg_agent/gpg_agent.c
   (escape_blanks): New helper functions to escape blanks in GPG-Agent



svn propchange: r1150841 - svn:log

2011-07-26 Thread stsp
Author: stsp
Revision: 1150841
Modified property: svn:log

Modified: svn:log at Tue Jul 26 12:34:58 2011
--
--- svn:log (original)
+++ svn:log Tue Jul 26 12:34:58 2011
@@ -1,7 +1,7 @@
 * subversion/libsvn_auth_gpg_agent/gpg_agent.c
   (password_get_gpg_agent): We can pass the full BUFFER_SIZE to
receive_from_gpg_agent() and send_option() because they will
-   NUL-terminate. (Historically these were arguments to recv() and
-   send() which do not.)
+   NUL-terminate. (Historically these were arguments to recv() which
+   which does not NUL-terminate.)
 
 Found by: danielsh



svn commit: r1151100 - /subversion/site/publish/packages.html

2011-07-26 Thread cmpilato
Author: cmpilato
Date: Tue Jul 26 14:00:13 2011
New Revision: 1151100

URL: http://svn.apache.org/viewvc?rev=1151100&view=rev
Log:
* site/publish/packages.html
  Add a reverse link to the Download Source Code page.

Modified:
subversion/site/publish/packages.html

Modified: subversion/site/publish/packages.html
URL: 
http://svn.apache.org/viewvc/subversion/site/publish/packages.html?rev=1151100&r1=1151099&r2=1151100&view=diff
==
--- subversion/site/publish/packages.html (original)
+++ subversion/site/publish/packages.html Tue Jul 26 14:00:13 2011
@@ -51,10 +51,11 @@
mailing list.
 
 Note that binary packages usually come out about a week after the
-   corresponding source release.  Please don't post to the mailing
-   lists asking when a binary package for a given platform will be
-   ready.  The packagers already know when new source releases come
-   out, and work as fast as they can to make binaries available.
+   corresponding source release.  Please
+   don't post to the mailing lists asking when a binary package for a
+   given platform will be ready.  The packagers already know when new
+   source releases come out, and work as fast as they can to make
+   binaries available.
 
 
 AIX




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

2011-07-26 Thread cmpilato
Author: cmpilato
Date: Tue Jul 26 16:23:23 2011
New Revision: 1151157

URL: http://svn.apache.org/viewvc?rev=1151157&view=rev
Log:
Vote for the r1147882 group, and clarify Bert's vote (per IRC).

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151157&r1=1151156&r2=1151157&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 16:23:23 2011
@@ -42,27 +42,6 @@ Candidate changes:
Votes:
  +0: danielsh
 
- * r1147882, r1149343, r1149371, r1149372, r1149377, r1149398, r1149701, 
r1149713
-   Validate consumer-supplied tokens in libsvn_fs.  (This specifically applies
-   to the output of pre-lock hook scripts.)
-   Justification:
- Input validations are good; arbitrary lock tokens are bad, and can result
- in user-visible errors.
-   Notes:
- r1147882 is reverted by r1149343.
- r1149343 reverts r1147882 and adds new code, which r1149371 rewrites.
- r1149371 is the change.
- r1149372 improves an error message.
- r1149377 is a typo fix.
- r1149398 fixes the bindings.
- r1149701 marks the test XFail for serf
- r1149713 correctly reports lock warnings and removes the XFail
-   Votes:
- +1: danielsh
- +1: cmpilato (without r1149701, r1149713)
- +1: rhuijben (Without r1149701, r1149713 the behavior differs between the
-   different ra layers and the tests fail on serf)
-
  * r1147540, r1147541
Remove unused variables in build system.
Justification:
@@ -212,3 +191,22 @@ Veto-blocked changes:
 
 Approved changes:
 =
+
+ * r1147882, r1149343, r1149371, r1149372, r1149377, r1149398, r1149701, 
r1149713
+   Validate consumer-supplied tokens in libsvn_fs.  (This specifically applies
+   to the output of pre-lock hook scripts.)
+   Justification:
+ Input validations are good; arbitrary lock tokens are bad, and can result
+ in user-visible errors.
+   Notes:
+ r1147882 is reverted by r1149343.
+ r1149343 reverts r1147882 and adds new code, which r1149371 rewrites.
+ r1149371 is the change.
+ r1149372 improves an error message.
+ r1149377 is a typo fix.
+ r1149398 fixes the bindings.
+ r1149701 marks the test XFail for serf
+ r1149713 correctly reports lock warnings and removes the XFail
+   Votes:
+ +1: danielsh, cmpilato, rhuijben
+




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

2011-07-26 Thread cmpilato
Author: cmpilato
Date: Tue Jul 26 16:29:02 2011
New Revision: 1151160

URL: http://svn.apache.org/viewvc?rev=1151160&view=rev
Log:
Vote for the r1150302, approving.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151160&r1=1151159&r2=1151160&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 16:29:02 2011
@@ -106,15 +106,6 @@ Candidate changes:
Votes:
  +1: rhuijben
  
- * r1150302
-   Avoid closing fs txns multiple times.
-   Justification:
- We should follow our own api documentation.
-   Notes:
- This error is invisible to users without the r1150254 group.
-   Votes:
- +1: rhuijben, danielsh
-
  * r1150327
Report not finding txn roots produce a 404 error in mod_dav_svn.
Justification:
@@ -210,3 +201,11 @@ Approved changes:
Votes:
  +1: danielsh, cmpilato, rhuijben
 
+ * r1150302
+   Avoid closing fs txns multiple times.
+   Justification:
+ We should follow our own api documentation.
+   Notes:
+ This error is invisible to users without the r1150254 group.
+   Votes:
+ +1: rhuijben, danielsh, cmpilato




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

2011-07-26 Thread cmpilato
Author: cmpilato
Date: Tue Jul 26 16:38:20 2011
New Revision: 1151161

URL: http://svn.apache.org/viewvc?rev=1151161&view=rev
Log:
Shorten a long line.  Yawn.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151161&r1=1151160&r2=1151161&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 16:38:20 2011
@@ -138,7 +138,7 @@ Candidate changes:
  on a server. And locks (the needle file) should be released as soon as
  possible.
Notes:
- rhuijben: This problem triggered my weekend search for locked files.  
problems
+ rhuijben: This bug triggered my weekend search for locked files problems.
Votes:
  +1: rhuijben
  +0: danielsh (we shouldn't depend on libsvn_client fixes to avoid




svn commit: r1151165 - in /subversion/branches/1.7.x: ./ STATUS subversion/bindings/swig/perl/native/t/8lock.t subversion/include/svn_error.h subversion/libsvn_fs/fs-loader.c subversion/libsvn_repos/h

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 16:48:50 2011
New Revision: 1151165

URL: http://svn.apache.org/viewvc?rev=1151165&view=rev
Log:
Merge r1147882, r1149343, r1149371, r1149372, r1149377, r1149398, r1149701,
r1149713 from trunk:

 * r1147882, r1149343, r1149371, r1149372, r1149377, r1149398, r1149701, 
r1149713
   Validate consumer-supplied tokens in libsvn_fs.  (This specifically applies
   to the output of pre-lock hook scripts.)
   Justification:
 Input validations are good; arbitrary lock tokens are bad, and can result
 in user-visible errors.
   Notes:
 r1147882 is reverted by r1149343.
 r1149343 reverts r1147882 and adds new code, which r1149371 rewrites.
 r1149371 is the change.
 r1149372 improves an error message.
 r1149377 is a typo fix.
 r1149398 fixes the bindings.
 r1149701 marks the test XFail for serf
 r1149713 correctly reports lock warnings and removes the XFail
   Votes:
 +1: danielsh, cmpilato, rhuijben

Modified:
subversion/branches/1.7.x/   (props changed)
subversion/branches/1.7.x/STATUS
subversion/branches/1.7.x/subversion/bindings/swig/perl/native/t/8lock.t
subversion/branches/1.7.x/subversion/include/svn_error.h
subversion/branches/1.7.x/subversion/libsvn_fs/fs-loader.c
subversion/branches/1.7.x/subversion/libsvn_repos/hooks.c
subversion/branches/1.7.x/subversion/tests/cmdline/lock_tests.py

Propchange: subversion/branches/1.7.x/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 26 16:48:50 2011
@@ -54,4 +54,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1148071,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149572,1149675,1151036
+/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1147882,1148071,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149343,1149371-1149372,1149377,1149398,1149572,1149675,1149701,1149713,1151036

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151165&r1=1151164&r2=1151165&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 16:48:50 2011
@@ -183,24 +183,6 @@ Veto-blocked changes:
 Approved changes:
 =
 
- * r1147882, r1149343, r1149371, r1149372, r1149377, r1149398, r1149701, 
r1149713
-   Validate consumer-supplied tokens in libsvn_fs.  (This specifically applies
-   to the output of pre-lock hook scripts.)
-   Justification:
- Input validations are good; arbitrary lock tokens are bad, and can result
- in user-visible errors.
-   Notes:
- r1147882 is reverted by r1149343.
- r1149343 reverts r1147882 and adds new code, which r1149371 rewrites.
- r1149371 is the change.
- r1149372 improves an error message.
- r1149377 is a typo fix.
- r1149398 fixes the bindings.
- r1149701 marks the test XFail for serf
- r1149713 correctly reports lock warnings and removes the XFail
-   Votes:
- +1: danielsh, cmpilato, rhuijben
-
  * r1150302
Avoid closing fs txns multiple times.
Justification:

Modified: 
subversion/branches/1.7.x/subversion/bindings/swig/perl/native/t/8lock.t
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/bindings/swig/perl/native/t/8lock.t?rev=1151165&r1=1151164&r2=1151165&view=diff
==
--- subversion/branches/1.7.x/subversion/bindings/swig/perl/native/t/8lock.t 
(original)
+++ subversion/branches/1.7.x/subversion/bindings/swig/perl/native/t/8lock.t 
Tue Jul 26 16:48:50 2011
@@ -54,10 +54,12 @@ print $stream 'orz';
 }
 $txn->commit;
 
-$fs->lock('/testfile', 'hate software', 'we hate software', 0, 0, 
$fs->youngest_rev, 0);
+my $token = "opaquelocktoken:notauuid-$$";
+
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 
 ok(my $lock = $fs->get_lock('/testfile'));
-is($lock->token, 'hate software');
+is($lock->token, $token);
 is($lock->owner, 'foo');
 
 $acc = SVN::Fs::create_access('fnord');
@@ -65,7 +67,7 @@ is($acc->get_username, 'fnord');
 $fs->set_access($acc);
 
 eval {
-$fs->lock('/testfile', 'hate software', 'we hate software', 0, 0, 
$fs->youngest_rev, 0);
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 };
 
 like($@, qr/already locked/);

Modified: subver

svn commit: r1151166 - in /subversion/trunk/subversion: include/private/svn_wc_private.h libsvn_wc/adm_ops.c libsvn_wc/copy.c libsvn_wc/update_editor.c libsvn_wc/wc-queries.sql libsvn_wc/wc_db.c libsv

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 16:51:23 2011
New Revision: 1151166

URL: http://svn.apache.org/viewvc?rev=1151166&view=rev
Log:
Record moved-to information at the delete-half of a move.

* subversion/include/private/svn_wc_private.h
  (svn_wc__delete_internal): Declare.
  
* subversion/libsvn_wc/adm_ops.c
  (svn_wc__delete_internal): New. This is like svn_wc_delete4() but has
   one additional parameter MOVED_TO_ABSPATH. If not NULL, this indicates
   that the delete is the delete-half of a move.
  (svn_wc_delete4): Reimplement as a wrapper around svn_wc__delete_internal().

* subversion/libsvn_wc/wc-queries.sql
  (STMT_INSERT_DELETE_FROM_NODE_RECURSIVE): Adjust to only insert children
   of the node being deleted.
  (STMT_INSERT_DELETE_NODE): New. This statement deletes a single node,
   and allows populating the moved_to column in NODES.

* subversion/libsvn_wc/copy.c
  (svn_wc_move): Call svn_wc__delete_internal() with a MOVED_TO_ABSPATH
   instead of calling svn_wc_delete4().

* subversion/libsvn_wc/wc_db.c
  (op_delete_baton_t): Add new field MOVED_TO_RELPATH.
  (op_delete_txn): Use STMT_INSERT_DELETE_NODE to delete LOCAL_ABSPATH
   itself, and possibly mark LOCAL_ABSPATH has having been moved elsewhere.
   Use STMT_INSERT_DELETE_FROM_NODE_RECURSIVE to delete children of
   LOCAL_ABSPATH (before, this statement was also used to delete LOCAL_ABSPATH
   itself).
  (svn_wc__db_op_delete): New parameter MOVED_TO_ABSPATH. Convert this to
   a relpath and put that into the op_delete baton.
  (scan_deletion_txn): Update a comment that referred to the BASE_NODE table.
   This is now called NODES_BASE in the query this code is evaluating.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_op_delete): Add MOVED_TO_ABSPATH parameter and update docstring.

* subversion/tests/libsvn_wc/op-depth-test.c,
  subversion/libsvn_wc/update_editor.c
  (do_delete, add_directory): Adjust calls to svn_wc__db_op_delete().

Modified:
subversion/trunk/subversion/include/private/svn_wc_private.h
subversion/trunk/subversion/libsvn_wc/adm_ops.c
subversion/trunk/subversion/libsvn_wc/copy.c
subversion/trunk/subversion/libsvn_wc/update_editor.c
subversion/trunk/subversion/libsvn_wc/wc-queries.sql
subversion/trunk/subversion/libsvn_wc/wc_db.c
subversion/trunk/subversion/libsvn_wc/wc_db.h
subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c

Modified: subversion/trunk/subversion/include/private/svn_wc_private.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_wc_private.h?rev=1151166&r1=1151165&r2=1151166&view=diff
==
--- subversion/trunk/subversion/include/private/svn_wc_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_wc_private.h Tue Jul 26 
16:51:23 2011
@@ -1096,6 +1096,21 @@ svn_wc__get_info(svn_wc_context_t *wc_ct
  void *cancel_baton,
  apr_pool_t *scratch_pool);
 
+/* Internal version of svn_wc_delete4(). It has one additional parameter,
+ * MOVED_TO_ABSPATH. If not NULL, this parameter indicates that the
+ * delete operation is the delete-half of a move. */
+svn_error_t *
+svn_wc__delete_internal(svn_wc_context_t *wc_ctx,
+const char *local_abspath,
+svn_boolean_t keep_local,
+svn_boolean_t delete_unversioned_target,
+const char *moved_to_abspath,
+svn_cancel_func_t cancel_func,
+void *cancel_baton,
+svn_wc_notify_func2_t notify_func,
+void *notify_baton,
+apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=1151166&r1=1151165&r2=1151166&view=diff
==
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Tue Jul 26 16:51:23 2011
@@ -595,15 +595,16 @@ erase_unversioned_from_wc(const char *pa
 
 
 svn_error_t *
-svn_wc_delete4(svn_wc_context_t *wc_ctx,
-   const char *local_abspath,
-   svn_boolean_t keep_local,
-   svn_boolean_t delete_unversioned_target,
-   svn_cancel_func_t cancel_func,
-   void *cancel_baton,
-   svn_wc_notify_func2_t notify_func,
-   void *notify_baton,
-   apr_pool_t *scratch_pool)
+svn_wc__delete_internal(svn_wc_context_t *wc_ctx,
+const char *local_abspath,
+svn_boolean_t keep_local,
+svn_boolean_t delete_unversioned_target,
+const char *moved_to_abspath,
+svn_cancel_func_t cancel_fu

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

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 16:53:18 2011
New Revision: 1151169

URL: http://svn.apache.org/viewvc?rev=1151169&view=rev
Log:
* STATUS: Add a note to the r1150302 group.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151169&r1=1151168&r2=1151169&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 16:53:18 2011
@@ -188,6 +188,7 @@ Approved changes:
Justification:
  We should follow our own api documentation.
Notes:
- This error is invisible to users without the r1150254 group.
+ This error is invisible to users without the r1150254 group (upon which
+ this revision depends for a clean merge).
Votes:
  +1: rhuijben, danielsh, cmpilato




svn commit: r1151177 - in /subversion/trunk/subversion/libsvn_ra_serf: ra_serf.h serf.c update.c util.c

2011-07-26 Thread ivan
Author: ivan
Date: Tue Jul 26 17:14:10 2011
New Revision: 1151177

URL: http://svn.apache.org/viewvc?rev=1151177&view=rev
Log:
Fix two bugs in ra_serf when connecting to HTTPS repository hosted on 
non-standard port.
1. ra_serf complains that server certificate doesn't match hostname.
2. XML parsing failed: (400 Bad Request) error when working with SNI 
   enabled server.
   http://svn.haxx.se/users/archive-2011-07/0404.shtml

* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__connection_t): Rename HOSTINFO to HOSTNAME.
* subversion/libsvn_ra_serf/serf.c
  (svn_ra_serf__open): Store hostname in connection object, not hostinfo.
* subversion/libsvn_ra_serf/update.c
  (open_connection_if_needed): Update to reflect rename.
* subversion/libsvn_ra_serf/util.c
  (ssl_server_cert): Use  hostname for validating SSL certificate.
  (conn_setup): Pass hostname to serf_ssl_set_hostname().

Modified:
subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
subversion/trunk/subversion/libsvn_ra_serf/serf.c
subversion/trunk/subversion/libsvn_ra_serf/update.c
subversion/trunk/subversion/libsvn_ra_serf/util.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1151177&r1=1151176&r2=1151177&view=diff
==
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Tue Jul 26 17:14:10 
2011
@@ -74,7 +74,7 @@ typedef struct svn_ra_serf__connection_t
   serf_bucket_alloc_t *bkt_alloc;
 
   /* Host name */
-  const char *hostinfo;
+  const char *hostname;
 
   /* Are we using ssl */
   svn_boolean_t using_ssl;

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1151177&r1=1151176&r2=1151177&view=diff
==
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Tue Jul 26 17:14:10 2011
@@ -402,7 +402,7 @@ svn_ra_serf__open(svn_ra_session_t *sess
 
   serf_sess->conns[0]->using_ssl = serf_sess->using_ssl;
   serf_sess->conns[0]->using_compression = serf_sess->using_compression;
-  serf_sess->conns[0]->hostinfo = url.hostinfo;
+  serf_sess->conns[0]->hostname = url.hostname;
   serf_sess->conns[0]->useragent = NULL;
 
   /* create the user agent string */

Modified: subversion/trunk/subversion/libsvn_ra_serf/update.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/update.c?rev=1151177&r1=1151176&r2=1151177&view=diff
==
--- subversion/trunk/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/update.c Tue Jul 26 17:14:10 2011
@@ -2214,7 +2214,7 @@ open_connection_if_needed(svn_ra_serf__s
   sess->conns[cur] = apr_palloc(sess->pool, sizeof(*sess->conns[cur]));
   sess->conns[cur]->bkt_alloc = serf_bucket_allocator_create(sess->pool,
  NULL, NULL);
-  sess->conns[cur]->hostinfo = sess->conns[0]->hostinfo;
+  sess->conns[cur]->hostname  = sess->conns[0]->hostname;
   sess->conns[cur]->using_ssl = sess->conns[0]->using_ssl;
   sess->conns[cur]->using_compression = sess->conns[0]->using_compression;
   sess->conns[cur]->useragent = sess->conns[0]->useragent;

Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1151177&r1=1151176&r2=1151177&view=diff
==
--- subversion/trunk/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/util.c Tue Jul 26 17:14:10 2011
@@ -302,7 +302,7 @@ ssl_server_cert(void *baton, int failure
   int i;
   for (i = 0; i < san->nelts; i++) {
   char *s = APR_ARRAY_IDX(san, i, char*);
-  if (apr_fnmatch(s, conn->hostinfo,
+  if (apr_fnmatch(s, conn->hostname,
   APR_FNM_PERIOD) == APR_SUCCESS) {
   found_matching_hostname = 1;
   cert_info.hostname = s;
@@ -314,7 +314,7 @@ ssl_server_cert(void *baton, int failure
   /* Match server certificate CN with the hostname of the server */
   if (!found_matching_hostname && cert_info.hostname)
 {
-  if (apr_fnmatch(cert_info.hostname, conn->hostinfo,
+  if (apr_fnmatch(cert_info.hostname, conn->hostname,
   APR_FNM_PERIOD) == APR_FNM_NOMATCH)
 {
   svn_failures |= SVN_AUTH_SSL_CNMISMATCH;
@@ -428,7 +428,7 @@ conn_setup(apr_socket_t *sock,
   conn->ssl_context = serf_bucket_ssl_encrypt_context_get(*read_bkt);
 
 #if SER

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

2011-07-26 Thread ivan
Author: ivan
Date: Tue Jul 26 17:21:27 2011
New Revision: 1151179

URL: http://svn.apache.org/viewvc?rev=1151179&view=rev
Log:
* STATUS: Nominate r1151177.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151179&r1=1151178&r2=1151179&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 17:21:27 2011
@@ -168,6 +168,19 @@ Candidate changes:
Votes:
  +1: philip, stsp
 
+* r1151177
+  Fix two bugs in ra_serf when connecting to HTTPS repository hosted on
+  non-standard port.
+  1. ra_serf complains that server certificate doesn't match hostname.
+  2. XML parsing failed: (400 Bad Request) error when working with SNI 
+ enabled server.
+ http://svn.haxx.se/users/archive-2011-07/0404.shtml
+   Justification:
+ Users are unable to use repositories over HTTPS protocol hosted on
+ non-standard TCP port.
+   Votes:
+ +1: ivan
+
 Veto-blocked changes:
 =
 




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

2011-07-26 Thread rhuijben
Author: rhuijben
Date: Tue Jul 26 17:28:58 2011
New Revision: 1151183

URL: http://svn.apache.org/viewvc?rev=1151183&view=rev
Log:
* STATUS: Cast vote.

Modified:
subversion/branches/1.7.x/STATUS

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1151183&r1=1151182&r2=1151183&view=diff
==
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Jul 26 17:28:58 2011
@@ -179,7 +179,7 @@ Candidate changes:
  Users are unable to use repositories over HTTPS protocol hosted on
  non-standard TCP port.
Votes:
- +1: ivan
+ +1: ivan, rhuijben
 
 Veto-blocked changes:
 =




svn commit: r1151239 - /subversion/trunk/tools/dist/collect_sigs.py

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 20:51:14 2011
New Revision: 1151239

URL: http://svn.apache.org/viewvc?rev=1151239&view=rev
Log:
* tools/dist/collect_sigs.py
  (save_valid_sig): Due to security concerns on the target box, don't 
attempt to autocopy the signatures as they are collected.

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

Modified: subversion/trunk/tools/dist/collect_sigs.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/collect_sigs.py?rev=1151239&r1=1151238&r2=1151239&view=diff
==
--- subversion/trunk/tools/dist/collect_sigs.py (original)
+++ subversion/trunk/tools/dist/collect_sigs.py Tue Jul 26 20:51:14 2011
@@ -199,24 +199,6 @@ def save_valid_sig(db, filename, keyid, 
 
   generate_asc_files(config.sigdir)
 
-  # Attempt to copy the results to a remote location
-  try:
-import paramiko
-
-client = paramiko.SSHClient()
-client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-client.connect(config.ssh['host'], username = config.ssh['user'],
-   key_filename = config.ssh['key'])
-sftp = client.open_sftp()
-
-sftp.put(os.path.join(config.sigdir, filename + '.asc'),
- os.path.join(config.ssh['dir'], config.version, 'deploy',
-  filename + '.asc'))
-client.close()
-  except:
-# Ignore any errors
-pass
-
 def verify_sig_for_file(signature, filename):
   args = ['gpg', '--logger-fd', '1', '--no-tty',
   '--status-fd', '2', '--verify', '-',




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

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 21:04:41 2011
New Revision: 1151244

URL: http://svn.apache.org/viewvc?rev=1151244&view=rev
Log:
release.py: Add a couple of defaults in the parser, rather than a
subcommand handler.

* tools/dist/release.py
  (post_candidates): Use the provided args directly.
  (main): Provide default values for a couple of arguments here.

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

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1151244&r1=1151243&r2=1151244&view=diff
==
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Tue Jul 26 21:04:41 2011
@@ -442,19 +442,8 @@ def roll_tarballs(args):
 
 def post_candidates(args):
 'Post the generated tarballs to web-accessible directory.'
-if args.target:
-target = args.target
-else:
-target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
-  str(args.version))
-
-if args.code_name:
-dirname = args.code_name
-else:
-dirname = 'deploy'
-
-if not os.path.exists(target):
-os.makedirs(target)
+if not os.path.exists(args.target):
+os.makedirs(args.target)
 
 data = { 'version'  : str(args.version),
  'revnum'   : args.revnum,
@@ -472,12 +461,13 @@ def post_candidates(args):
 
 template = ezt.Template()
 template.parse(get_tmplfile(template_filename).read())
-template.generate(open(os.path.join(target, 'index.html'), 'w'), data)
+template.generate(open(os.path.join(args.target, 'index.html'), 'w'), data)
 
-logging.info('Moving tarballs to %s' % os.path.join(target, dirname))
-if os.path.exists(os.path.join(target, dirname)):
-shutil.rmtree(os.path.join(target, dirname))
-shutil.copytree(get_deploydir(args.base_dir), os.path.join(target, 
dirname))
+logging.info('Moving tarballs to %s' % os.path.join(args.target, dirname))
+if os.path.exists(os.path.join(args.target, dirname)):
+shutil.rmtree(os.path.join(args.target, dirname))
+shutil.copytree(get_deploydir(args.base_dir),
+os.path.join(args.target, dirname))
 
 
 #--
@@ -624,10 +614,13 @@ def main():
 subparser.add_argument('revnum', type=int,
 help='''The revision number to base the release on.''')
 subparser.add_argument('--target',
-help='''The full path to the destination.''')
+help='''The full path to the destination.''',
+default=os.path.join(os.getenv('HOME'), 'public_html',
+ 'svn', str(args.version)))
 subparser.add_argument('--code-name',
 help='''A whimsical name for the release, used only for
-naming the download directory.''')
+naming the download directory.''',
+default='deploy')
 
 # The clean-dist subcommand
 subparser = subparsers.add_parser('clean-dist',




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

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 21:07:53 2011
New Revision: 1151247

URL: http://svn.apache.org/viewvc?rev=1151247&view=rev
Log:
* sigh *

Revert r1151244.

(One of the defaults used the value of another param, which causes problems.)

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

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1151247&r1=1151246&r2=1151247&view=diff
==
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Tue Jul 26 21:07:53 2011
@@ -442,8 +442,19 @@ def roll_tarballs(args):
 
 def post_candidates(args):
 'Post the generated tarballs to web-accessible directory.'
-if not os.path.exists(args.target):
-os.makedirs(args.target)
+if args.target:
+target = args.target
+else:
+target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
+  str(args.version))
+
+if args.code_name:
+dirname = args.code_name
+else:
+dirname = 'deploy'
+
+if not os.path.exists(target):
+os.makedirs(target)
 
 data = { 'version'  : str(args.version),
  'revnum'   : args.revnum,
@@ -461,13 +472,12 @@ def post_candidates(args):
 
 template = ezt.Template()
 template.parse(get_tmplfile(template_filename).read())
-template.generate(open(os.path.join(args.target, 'index.html'), 'w'), data)
+template.generate(open(os.path.join(target, 'index.html'), 'w'), data)
 
-logging.info('Moving tarballs to %s' % os.path.join(args.target, dirname))
-if os.path.exists(os.path.join(args.target, dirname)):
-shutil.rmtree(os.path.join(args.target, dirname))
-shutil.copytree(get_deploydir(args.base_dir),
-os.path.join(args.target, dirname))
+logging.info('Moving tarballs to %s' % os.path.join(target, dirname))
+if os.path.exists(os.path.join(target, dirname)):
+shutil.rmtree(os.path.join(target, dirname))
+shutil.copytree(get_deploydir(args.base_dir), os.path.join(target, 
dirname))
 
 
 #--
@@ -614,13 +624,10 @@ def main():
 subparser.add_argument('revnum', type=int,
 help='''The revision number to base the release on.''')
 subparser.add_argument('--target',
-help='''The full path to the destination.''',
-default=os.path.join(os.getenv('HOME'), 'public_html',
- 'svn', str(args.version)))
+help='''The full path to the destination.''')
 subparser.add_argument('--code-name',
 help='''A whimsical name for the release, used only for
-naming the download directory.''',
-default='deploy')
+naming the download directory.''')
 
 # The clean-dist subcommand
 subparser = subparsers.add_parser('clean-dist',




svn propchange: r1151244 - svn:log

2011-07-26 Thread hwright
Author: hwright
Revision: 1151244
Modified property: svn:log

Modified: svn:log at Tue Jul 26 21:08:16 2011
--
--- svn:log (original)
+++ svn:log Tue Jul 26 21:08:16 2011
@@ -4,3 +4,5 @@ subcommand handler.
 * tools/dist/release.py
   (post_candidates): Use the provided args directly.
   (main): Provide default values for a couple of arguments here.
+
+[ reverted in r1151247 ]



svn commit: r1151254 - in /subversion/trunk/tools/dist: getsigs.py release.py

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 21:18:17 2011
New Revision: 1151254

URL: http://svn.apache.org/viewvc?rev=1151254&view=rev
Log:
release.py: Move the signature checking capability into release.py.  This
will be revamped shortly.

* tools/dist/release.py
  (grab_sig_ids, generate_output, check_sigs): New.
  (main): Add a parser for the check-sigs target.

* tools/dist/getsigs.py:
  Remove.

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

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1151254&r1=1151253&r2=1151254&view=diff
==
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Tue Jul 26 21:18:17 2011
@@ -571,6 +571,77 @@ def write_announcement(args):
 
 
 #--
+# Validate the signatures for a release
+
+key_start = '-BEGIN PGP SIGNATURE-\n'
+sig_pattern = re.compile(r'^gpg: Signature made .*? using \w+ key ID (\w+)')
+fp_pattern = 
re.compile(r'^pub\s+(\w+\/\w+)[^\n]*\n\s+Key\sfingerprint\s=((\s+[0-9A-F]{4}){10})\nuid\s+([^<\(]+)\s')
+
+def grab_sig_ids(args):
+if args.target:
+target = args.target
+else:
+target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
+  str(args.version), 'deploy')
+
+good_sigs = {}
+
+for filename in glob.glob(os.path.join(target, 'subversion-*.asc')):
+shutil.copyfile(filename, '%s.bak' % filename)
+text = open(filename).read()
+keys = text.split(key_start)
+
+for key in keys[1:]:
+open(filename, 'w').write(key_start + key)
+gpg = subprocess.Popen(['gpg', '--logger-fd', '1',
+'--verify', filename],
+   stdout=subprocess.PIPE,
+   stderr=subprocess.STDOUT)
+
+rc = gpg.wait()
+output = gpg.stdout.read()
+if rc:
+# gpg choked, die with an error
+print(output)
+sys.stderr.write("BAD SIGNATURE in %s\n" % filename)
+shutil.move('%s.bak' % filename, filename)
+sys.exit(1)
+
+for line in output.split('\n'):
+match = sig_pattern.match(line)
+if match:
+key_id = match.groups()[0]
+good_sigs[key_id] = True
+
+shutil.move('%s.bak' % filename, filename)
+
+return good_sigs
+
+def generate_output(good_sigs):
+for id in good_sigs.keys():
+gpg = subprocess.Popen(['gpg', '--fingerprint', id],
+   stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT)
+rc = gpg.wait()
+gpg_output = gpg.stdout.read()
+if rc:
+print(gpg_output)
+sys.stderr.write("UNABLE TO GET FINGERPRINT FOR %s" % id)
+sys.exit(1)
+
+gpg_output = "\n".join([ l for l in gpg_output.splitlines()
+ if l[0:7] != 'Warning' ])
+
+fp = fp_pattern.match(gpg_output).groups()
+print("   %s [%s] with fingerprint:" % (fp[3], fp[0]))
+print("   %s" % fp[1])
+
+def check_sigs(args):
+'Check the signatures for the release.'
+
+generate_output(grab_sig_ids(args))
+
+
+#--
 # Main entry point for argument parsing and handling
 
 def main():
@@ -654,6 +725,17 @@ def main():
 subparser.add_argument('version', type=Version,
 help='''The release label, such as '1.7.0-alpha1'.''')
 
+# The check sigs subcommand
+subparser = subparsers.add_parser('check-sigs',
+help='''Output to stdout the signatures collected for this
+release''')
+subparser.set_defaults(func=check_sigs)
+subparser.add_argument('version', type=Version,
+help='''The release label, such as '1.7.0-alpha1'.''')
+subparser.add_argument('--target',
+help='''The full path to the destination used in
+'post-candiates'..''')
+
 # A meta-target
 subparser = subparsers.add_parser('clean',
 help='''The same as the '--clean' switch, but as a




svn commit: r1151260 - /subversion/trunk/subversion/libsvn_wc/adm_ops.c

2011-07-26 Thread stsp
Author: stsp
Date: Tue Jul 26 21:45:36 2011
New Revision: 1151260

URL: http://svn.apache.org/viewvc?rev=1151260&view=rev
Log:
Rename the new_revert_* functions to just revert_*. It is confusing
to have functions called new_something when the old implementation
is already obsolete (as of r1088811).

* subversion/libsvn_wc/adm_ops.c
  (new_revert_internal, new_revert_changelist,
   new_revert_partial): Rename to ...
  (revert_internal, revert_changelist, revert_partial): ... these, respectively.
  (svn_wc_revert4): Update caller.

Modified:
subversion/trunk/subversion/libsvn_wc/adm_ops.c

Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=1151260&r1=1151259&r2=1151260&view=diff
==
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Tue Jul 26 21:45:36 2011
@@ -1602,15 +1602,15 @@ revert_restore(svn_wc__db_t *db,
 /* Revert tree LOCAL_ABSPATH to depth DEPTH and notify for all
reverts. */
 static svn_error_t *
-new_revert_internal(svn_wc__db_t *db,
-const char *local_abspath,
-svn_depth_t depth,
-svn_boolean_t use_commit_times,
-svn_cancel_func_t cancel_func,
-void *cancel_baton,
-svn_wc_notify_func2_t notify_func,
-void *notify_baton,
-apr_pool_t *scratch_pool)
+revert_internal(svn_wc__db_t *db,
+const char *local_abspath,
+svn_depth_t depth,
+svn_boolean_t use_commit_times,
+svn_cancel_func_t cancel_func,
+void *cancel_baton,
+svn_wc_notify_func2_t notify_func,
+void *notify_baton,
+apr_pool_t *scratch_pool)
 {
   svn_error_t *err;
 
@@ -1652,16 +1652,16 @@ new_revert_internal(svn_wc__db_t *db,
 /* Revert files in LOCAL_ABSPATH to depth DEPTH that match
CHANGELIST_HASH and notify for all reverts. */
 static svn_error_t *
-new_revert_changelist(svn_wc__db_t *db,
-  const char *local_abspath,
-  svn_depth_t depth,
-  svn_boolean_t use_commit_times,
-  apr_hash_t *changelist_hash,
-  svn_cancel_func_t cancel_func,
-  void *cancel_baton,
-  svn_wc_notify_func2_t notify_func,
-  void *notify_baton,
-  apr_pool_t *scratch_pool)
+revert_changelist(svn_wc__db_t *db,
+  const char *local_abspath,
+  svn_depth_t depth,
+  svn_boolean_t use_commit_times,
+  apr_hash_t *changelist_hash,
+  svn_cancel_func_t cancel_func,
+  void *cancel_baton,
+  svn_wc_notify_func2_t notify_func,
+  void *notify_baton,
+  apr_pool_t *scratch_pool)
 {
   apr_pool_t *iterpool;
   const apr_array_header_t *children;
@@ -1673,11 +1673,11 @@ new_revert_changelist(svn_wc__db_t *db,
   /* Revert this node (depth=empty) if it matches one of the changelists.  */
   if (svn_wc__internal_changelist_match(db, local_abspath, changelist_hash,
 scratch_pool))
-SVN_ERR(new_revert_internal(db, local_abspath,
-svn_depth_empty, use_commit_times,
-cancel_func, cancel_baton,
-notify_func, notify_baton,
-scratch_pool));
+SVN_ERR(revert_internal(db, local_abspath,
+svn_depth_empty, use_commit_times,
+cancel_func, cancel_baton,
+notify_func, notify_baton,
+scratch_pool));
 
   if (depth == svn_depth_empty)
 return SVN_NO_ERROR;
@@ -1707,11 +1707,11 @@ new_revert_changelist(svn_wc__db_t *db,
 const char *),
   iterpool);
 
-  SVN_ERR(new_revert_changelist(db, child_abspath, depth,
-use_commit_times, changelist_hash,
-cancel_func, cancel_baton,
-notify_func, notify_baton,
-iterpool));
+  SVN_ERR(revert_changelist(db, child_abspath, depth,
+use_commit_times, changelist_hash,
+cancel_func, cancel_baton,
+notify_func, notify_baton,
+iterpool));
 }
 
   svn_pool_destroy(iterpool);
@@ -1729,15 +1729,15 @@ new_revert_changelist(svn_wc__db_t *db,
### the non-recursive reve

svn commit: r1151270 - in /subversion/trunk/tools/dist: gnupg.py release.py

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 22:08:03 2011
New Revision: 1151270

URL: http://svn.apache.org/viewvc?rev=1151270&view=rev
Log:
Use gnugp.py module to interact with gpg in verifying signatures.

The gpupg.py module is available under the New BSD license from the Google
Code page:
http://code.google.com/p/python-gnupg/

* tools/dist/release.py
  (grab_sig_ids): Use the module, rather than shelling out to the subprocess
module.

* tools/dist/gnupg.py:
  New.  Added from http://code.google.com/p/python-gnupg/

Added:
subversion/trunk/tools/dist/gnupg.py   (with props)
Modified:
subversion/trunk/tools/dist/release.py

Added: subversion/trunk/tools/dist/gnupg.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/gnupg.py?rev=1151270&view=auto
==
--- subversion/trunk/tools/dist/gnupg.py (added)
+++ subversion/trunk/tools/dist/gnupg.py Tue Jul 26 22:08:03 2011
@@ -0,0 +1,983 @@
+""" A wrapper for the 'gpg' command::
+
+Portions of this module are derived from A.M. Kuchling's well-designed
+GPG.py, using Richard Jones' updated version 1.3, which can be found
+in the pycrypto CVS repository on Sourceforge:
+
+http://pycrypto.cvs.sourceforge.net/viewvc/pycrypto/gpg/GPG.py
+
+This module is *not* forward-compatible with amk's; some of the
+old interface has changed.  For instance, since I've added decrypt
+functionality, I elected to initialize with a 'gnupghome' argument
+instead of 'keyring', so that gpg can find both the public and secret
+keyrings.  I've also altered some of the returned objects in order for
+the caller to not have to know as much about the internals of the
+result classes.
+
+While the rest of ISconf is released under the GPL, I am releasing
+this single file under the same terms that A.M. Kuchling used for
+pycrypto.
+
+Steve Traugott, stev...@terraluna.org
+Thu Jun 23 21:27:20 PDT 2005
+
+This version of the module has been modified from Steve Traugott's version
+(see http://trac.t7a.org/isconf/browser/trunk/lib/python/isconf/GPG.py) by
+Vinay Sajip to make use of the subprocess module (Steve's version uses 
os.fork()
+and so does not work on Windows). Renamed to gnupg.py to avoid confusion with
+the previous versions.
+
+Modifications Copyright (C) 2008-2011 Vinay Sajip. All rights reserved.
+
+A unittest harness (test_gnupg.py) has also been added.
+"""
+import locale
+
+__author__ = "Vinay Sajip"
+__date__  = "$10-Apr-2011 11:40:48$"
+
+try:
+from io import StringIO
+except ImportError:
+from cStringIO import StringIO
+
+import codecs
+import locale
+import logging
+import os
+import socket
+from subprocess import Popen
+from subprocess import PIPE
+import sys
+import threading
+
+try:
+import logging.NullHandler as NullHandler
+except ImportError:
+class NullHandler(logging.Handler):
+def handle(self, record):
+pass
+try:
+unicode
+_py3k = False
+except NameError:
+_py3k = True
+
+logger = logging.getLogger(__name__)
+if not logger.handlers:
+logger.addHandler(NullHandler())
+
+def _copy_data(instream, outstream):
+# Copy one stream to another
+sent = 0
+if hasattr(sys.stdin, 'encoding'):
+enc = sys.stdin.encoding
+else:
+enc = 'ascii'
+while True:
+data = instream.read(1024)
+if len(data) == 0:
+break
+sent += len(data)
+logger.debug("sending chunk (%d): %r", sent, data[:256])
+try:
+outstream.write(data)
+except UnicodeError:
+outstream.write(data.encode(enc))
+except:
+# Can sometimes get 'broken pipe' errors even when the data has all
+# been sent
+logger.exception('Error sending data')
+break
+try:
+outstream.close()
+except IOError:
+logger.warning('Exception occurred while closing: ignored', exc_info=1)
+logger.debug("closed output, %d bytes sent", sent)
+
+def _threaded_copy_data(instream, outstream):
+wr = threading.Thread(target=_copy_data, args=(instream, outstream))
+wr.setDaemon(True)
+logger.debug('data copier: %r, %r, %r', wr, instream, outstream)
+wr.start()
+return wr
+
+def _write_passphrase(stream, passphrase, encoding):
+passphrase = '%s\n' % passphrase
+passphrase = passphrase.encode(encoding)
+stream.write(passphrase)
+logger.debug("Wrote passphrase: %r", passphrase)
+
+def _is_sequence(instance):
+return isinstance(instance,list) or isinstance(instance,tuple)
+
+def _make_binary_stream(s, encoding):
+try:
+if _py3k:
+if isinstance(s, str):
+s = s.encode(encoding)
+else:
+if type(s) is not str:
+s = s.encode(encoding)
+from io import BytesIO
+rv = BytesIO(s)
+except ImportError:
+rv = StringIO(s)
+return rv
+
+class GPG(object):
+"Encapsulate access to the gpg executa

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

2011-07-26 Thread hwright
Author: hwright
Date: Tue Jul 26 23:40:20 2011
New Revision: 1151296

URL: http://svn.apache.org/viewvc?rev=1151296&view=rev
Log:
release.py: General cleanup.

* tools/dist/release.py
  (sig_pattern): Remove.
  (grab_sig_ids, generate_output): Remove.
  (check_sigs): Fold functionality from above into this function.

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

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1151296&r1=1151295&r2=1151296&view=diff
==
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Tue Jul 26 23:40:20 2011
@@ -575,10 +575,11 @@ def write_announcement(args):
 # Validate the signatures for a release
 
 key_start = '-BEGIN PGP SIGNATURE-\n'
-sig_pattern = re.compile(r'^gpg: Signature made .*? using \w+ key ID (\w+)')
 fp_pattern = 
re.compile(r'^pub\s+(\w+\/\w+)[^\n]*\n\s+Key\sfingerprint\s=((\s+[0-9A-F]{4}){10})\nuid\s+([^<\(]+)\s')
 
-def grab_sig_ids(args):
+def check_sigs(args):
+'Check the signatures for the release.'
+
 import gnupg
 gpg = gnupg.GPG()
 
@@ -607,9 +608,6 @@ def grab_sig_ids(args):
 sys.stderr.write("BAD SIGNATURE for %s\n" % filename)
 sys.exit(1)
 
-return good_sigs
-
-def generate_output(good_sigs):
 for id in good_sigs.keys():
 gpg = subprocess.Popen(['gpg', '--fingerprint', id],
stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT)
@@ -627,11 +625,6 @@ def generate_output(good_sigs):
 print("   %s [%s] with fingerprint:" % (fp[3], fp[0]))
 print("   %s" % fp[1])
 
-def check_sigs(args):
-'Check the signatures for the release.'
-
-generate_output(grab_sig_ids(args))
-
 
 #--
 # Main entry point for argument parsing and handling