Re: Some tips on profiling

2010-10-01 Thread Stefan Fuhrmann


 On 30.09.2010 04:28, Ramkumar Ramachandra wrote:

Hi Stefan,

Stefan Fuhrmann writes:

My measurements seem to support what Philip wrote:
The expensive part is run on the server. Even with my
optimized server, the svnrdump CPU usage is less than
the time taken by the server. Some numbers (hot file
cache):

svnadmin dump
 1.7 trunk 70s real  66s user 4s system
 perf-branch 30s real 28s user 2s system

1.7 trunk svnrdump
 ra-local 88s real 81s user 7s system
 svn: (1.7 trunk) 99s real 6s user 4s system
 svn: (perf-branch, cold)  72s real 5s user 6s system
 svn: (perf-branch, hot)  17s real 5s user 5s system

Thus, svnrdump is slower only for ra-local where it is
of no particular use in the first place. To really speed
things up, the caching infrastructure from the performance
branch should be merged into /trunk.

Wow, that looks awesome. Yeah, Daniel suggested that I run svnrdump
against your perf branch yesterday, but I wasn't able to get your
branch to build:
subversion/libsvn_subr/svn_file_handle_cache.c:890: error: 
'svn_file_handle_cache_t' has no member named 'mutex'

You obviously don't have APR threads enabled.
Thanks for finding this. Fixed in r1003430.

What exactly are the changes that hot introduces- can you point me
to the specific revision numbers that we intend to merge?

The server caches almost everything. So, the
first (cold) run demonstrates the worst-case,
the second run (hot) the best case. Real
world performance depends on server memory
and load.

For the merge part: please review the integrate-membuffer
branch (only 3 patches). You may also review and
merge any of the patches listed in /branches/performance/STATUS.


@Stefan: Thoughts on hacking APR hashtables directly?


Are you sure?! Which operation is the most expensive one
and how often is it called? Who calls it and why?

My bad. I got muddled up when using ra_local: when I saw lots of MD5
functions, I assumed it had to do something with the hashtable since
the checksum was caculated by server-side. The profiler profiled both
server-side and client-side. Over svn://, I got a much cleaner
output. The new results indicate:
1. Server-client IO is the major bottleneck, as Philip and you pointed
out.
2. On the client side, the major bottlneck is the IO during textdelta
application. David (CC'ed now) and I are trying some experiments
with a single temporary file. Thoughts?

For the MD5 stuff, try r986459 (performance branch).
It should eliminate 1 of the 3 MD5 calculations.

As for the temp files, there are some improvements
listed in /branches/performance/STATUS. These would
also reduce your system CPU time.

-- Stefan^2.


Re: [PATCH] extend svn_subst_translate_string() to record whether re-encoding and/or line ending translation were performed

2010-10-01 Thread Julian Foad
Daniel Trebbien wrote:
 Following Daniel Shahaf's suggestion of splitting the allow svnsync
 to translate non-UTF-8 log messages to UTF-8 work into two patches, I
 have revised my changes, prepared one of the two patches, and have
 attached the one patch and suggested log message to this e-mail.

[[[

 Adds a public API function, svn_subst_translate_string2(), an extension of
 svn_subst_translate_string(), that has two, additional output parameters for
 determining whether re-encoding and/or line ending translation were performed.

If we're going to add this functionality to _translate_string(),
shouldn't we also add it to the other variants - _detranslate_string,
_translate_cstring2, _stream_translated, _copy_and_translate4?

I see you're adding the infrastructure into the (new) bodies of
_translate_cstring2 and _stream_translated, just not (yey) exposing it
in their APIs.

I'm not sure.  The set of 'translation' functions is already messy and
it's not clear to me how useful this new functionality will be.

I wonder if any of the current users of these functions need to know
whether any change was made, and currently find out by executing a full
text comparison of the result.  If so, then this enhancement should
allow us to simplify those callers.


 As discussed at:
   http://thread.gmane.org/gmane.comp.version-control.subversion.user/100020
   http://thread.gmane.org/gmane.comp.version-control.subversion.devel/122518
   http://thread.gmane.org/gmane.comp.version-control.subversion.devel/122550
 
 
 * subversion/include/svn_subst.h
   (svn_subst_translate_string2): New function.
   (svn_subst_translate_string): Deprecated in favor of
 svn_subst_translate_string2().
 
 * subversion/libsvn_subr/subst.c
   (translate_newline): Added the new parameter EOL_TRANSLATED, the value at
 which is set to TRUE if translate_newline() wrote out the line ending in
 NEWLINE_BUF with a different line ending in EOL_STR.
   (translation_baton): Added the TRANSLATED_EOL field.
   (create_translation_baton): Added a new parameter TRANSLATED_EOL that is
 passed to the resulting translation_baton.
   (translate_chunk): Modified the three calls to translate_newline() to pass
 the TRANSLATED_EOL pointer from the translation baton.
   (stream_translated): New static function. Its implementation is the old
 implementation of svn_subst_stream_translated(), but accepting another
 parameter, TRANSLATED_EOL, that is passed to the in/out translation batons
 that it creates.
   (svn_subst_stream_translated): Now a wrapper for stream_translated().
   (translate_cstring2): New static function. Its implementation is the old
 implementation of svn_subst_translate_cstring2(), but modified to accept
 another parameter, TRANSLATED_EOL, that is passed to stream_translated().
   (svn_subst_translate_cstring2): Now a wrapper for translate_cstring2().
   (svn_subst_translate_string2): New function. The task of recording whether
 it translated a line ending is delegated to translate_cstring2().
]]]

 Index: subversion/libsvn_subr/subst.c
 ===
 --- subversion/libsvn_subr/subst.c  (revision 1003341)
 +++ subversion/libsvn_subr/subst.c  (working copy)
 @@ -628,7 +628,8 @@ translate_newline(const char *eol_str,
char *newline_buf,
apr_size_t newline_len,
svn_stream_t *dst,
 -  svn_boolean_t repair)
 +  svn_boolean_t repair,
 +  svn_boolean_t *eol_translated)
  {

Please update the doc string of this function to mention the new
parameter, or write a partial doc string if it doesn't have one.  (Hmm,
I see it does have one but it's quite inaccurate.  I will update the
current version now.)

 @@ -650,7 +651,13 @@ translate_newline(const char *eol_str,
*src_format_len = newline_len;
  }
/* Translate the newline */
 -  return translate_write(dst, eol_str, eol_str_len);
 +  svn_error_t *err = translate_write(dst, eol_str, eol_str_len);

No declarations mixed in with statements - we stick to C'89 rules.  But
I don't think there is any need to insert this new code *after* the
write - it can just as well go before the write, leaving the 'return'
how it was.

 +  if (eol_translated) {
 +if (newline_len != eol_str_len ||
 +strncmp(newline_buf, eol_str, newline_len))
 +  *eol_translated = TRUE;
 +  }
 +  return err;
  }

At first I was concerned that this is a lot of processing overhead, but
then I realised that the only real-world case that would execute the
'strncmp' every time would be translating files from the old Mac format
'\r' to '\n', which I imagine is extremely uncommon these days.

 @@ -765,6 +772,7 @@ svn_subst_keywords_differ2(apr_hash_t *a,
  struct translation_baton
  {
const char *eol_str;
 +  svn_boolean_t *translated_eol;
svn_boolean_t repair;

Let's use the same name in each place: 

RE: [PATCH] extend svn_subst_translate_string() to record whether re-encoding and/or line ending translation were performed

2010-10-01 Thread Bert Huijben
 -Original Message-
 From: Julian Foad [mailto:julian.f...@wandisco.com]
 Sent: vrijdag 1 oktober 2010 12:58
 To: Daniel Trebbien
 Cc: Subversion Development; Daniel Shahaf; Gavin Beau Baumanis
 Subject: Re: [PATCH] extend svn_subst_translate_string() to record
 whether re-encoding and/or line ending translation were performed

[Copying from this mail, as it already quotes the sources that are separate 
attachments for me]


 Please update the doc string of this function to mention the new
 parameter, or write a partial doc string if it doesn't have one.  (Hmm,
 I see it does have one but it's quite inaccurate.  I will update the
 current version now.)
 
  @@ -650,7 +651,13 @@ translate_newline(const char *eol_str,
 *src_format_len = newline_len;
   }
 /* Translate the newline */
  -  return translate_write(dst, eol_str, eol_str_len);
  +  svn_error_t *err = translate_write(dst, eol_str, eol_str_len);
 
 No declarations mixed in with statements - we stick to C'89 rules.  But
 I don't think there is any need to insert this new code *after* the
 write - it can just as well go before the write, leaving the 'return'
 how it was.

The code can just use SVN_ERR() here, as you can't be sure the output is 
available in error conditions anyway, so the extra check can be avoided on 
errors.
 
  +  if (eol_translated) {
  +if (newline_len != eol_str_len ||
  +strncmp(newline_buf, eol_str, newline_len))
  +  *eol_translated = TRUE;
  +  }
  +  return err;

And this can be a return SVN_NO_ERROR;

   }

Bert



Re: disallow merges into mixed-rev WCs by default?

2010-10-01 Thread Julian Foad
Stefan Sperling wrote:
 I'd like to propose that we disallow merges into mixed-revision working
 copies by default for 1.7, and only allow such merges if a special command
 line option has been passed.
 
 The reason for this is that merges into mixed-rev WCs can easily create
 conflicts which are tedious to resolve. Even if you know about the problem
 and try to run svn update before every merge, it's quite easy to forget
 about running svn update.
 
 Also, we've been advertising this as best practice for some time.
 Quoting the book on the matter:
   Never merge into working copies with a mixture of working revision
   numbers, or with “switched” subdirectories (as described next in the
   section called “Traversing Branches”). A merge target should be a
   working copy which represents a single location in the repository at a
   single point in time.
 
 Note that while the book recommends not to merge into working copies
 with switched subtrees, I don't intend to enforce this by default.
 
 I've talked about this with Paul on IRC and he had no objections.
 See http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-09-30#l468
 for the full discussion.
 
 Below is a work-in-progress diff that starts making this change.
 Tests fail with it. I've only checked the merge tests for now.
 
 Before continuing with this, fixing up tests, bumping APIs, and eventually
 adding the command line option that allows merges into mixed-rev WCs,
 I'd like to ask whether anyone has concerns about this idea.

The proposal sounds good to me.

To be more specific about what the proposal is:

  * It does not apply to re-integrate merges. (They always enforce this
anyway?)

  * It applies to merge-tracking merges.

  * It [applies/does not appy] to non-merge-tracking merges?


As for the tests: I think it would be best to keep some or all of the
tests doing merges into a mixed-rev WC as they do now, partly so as not
to lose test coverage of this condition, but more importantly to
preserve the purpose of any regression tests that happen to be testing
for bugs which only showed up in mixed-rev mode.

In other words, fix most of them by adding the bypass flag rather than
by adding an svn update command.

- Julian


 Below is the list of currently failing merge tests, and the
 work-in-progress diff.
 
 Thanks,
 Stefan
 
 FAIL:  merge_tests.py 1: performing a merge, with mixed results
 FAIL:  merge_tests.py 9: merge change into unchanged binary file
 FAIL:  merge_tests.py 15: merge should skip over unversioned obstructions
 FAIL:  merge_tests.py 16: merge into missing must not break working copy
 FAIL:  merge_tests.py 23: merge between branches (Issue #)
 FAIL:  merge_tests.py 31: merge a replacement of a file to mixed rev wc
 FAIL:  merge_tests.py 32: ignore whitespace when merging
 FAIL:  merge_tests.py 33: ignore eolstyle when merging
 FAIL:  merge_tests.py 44: merge to path with switched children
 FAIL:  merge_tests.py 69: subtrees added after start of merge range are ok
 FAIL:  merge_tests.py 70: cyclic merges don't add mergeinfo from own history
 FAIL:  merge_tests.py 77: merges that remove all mergeinfo work
 FAIL:  merge_tests.py 89: target and subtrees need nonintersecting revs
 FAIL:  merge_tests.py 90: merge two successive edits to the same property
 FAIL:  merge_tests.py 91: merge an EOL unification and set svn:eol-style
 FAIL:  merge_tests.py 103: automatic conflict resolutions work with merge
 FAIL:  merge_tests.py 105: committed case only move causes revert to fail
 FAIL:  merge_tests.py 107: merge del and ps variants from a foreign repos
 FAIL:  merge_tests.py 111: merge into locally added file
 FAIL:  merge_tests.py 112: merge into locally added directory
 
 
 Index: subversion/libsvn_client/merge.c
 ===
 --- subversion/libsvn_client/merge.c  (revision 1003282)
 +++ subversion/libsvn_client/merge.c  (working copy)
 @@ -8815,6 +8815,54 @@ merge_cousins_and_supplement_mergeinfo(const char
return SVN_NO_ERROR;
  }
  
 +/* Perform checks to determine whether of the working copy at TARGET_ABSPATH
 + * can safely be used as a merge target. Checks are performed according to
 + * the FORBID_MIXED_REV, FORBID_LOCAL_MODS, and FORBID_SWITCHED_SUBTREES
 + * parameters. If any checks fail, raise SVN_ERR_CLIENT_NOT_READY_TO_MERGE.
 + *
 + * E.g. if all the FORBID_* parameters are TRUE, TARGET_ABSPATH must
 + * be a single-revision, pristine, unswitched working copy.
 + * In other words, it must reflect a subtree of the repostiory as found
 + * at single revision -- although sparse checkouts are permitted. */
 +static svn_error_t *
 +ensure_wc_is_suitable_merge_target(const char *target_abspath,
 +   svn_client_ctx_t *ctx,
 +   svn_boolean_t forbid_mixed_rev,
 +   svn_boolean_t forbid_local_mods,
 +   svn_boolean_t 

Re: disallow merges into mixed-rev WCs by default?

2010-10-01 Thread Paul Burba
On Fri, Oct 1, 2010 at 7:25 AM, Julian Foad julian.f...@wandisco.com wrote:
 Stefan Sperling wrote:
 I'd like to propose that we disallow merges into mixed-revision working
 copies by default for 1.7, and only allow such merges if a special command
 line option has been passed.

What will the behavior be during --dry-run merges?

A) No change

B) Warn that your target is mixed-rev, but proceed as we always did

C) Fail unless the new option is used.

What about --record-only merges?  I think here it makes sense to
mirror whatever behavior we decide upon for a real merge-tracking
aware merge.

 The reason for this is that merges into mixed-rev WCs can easily create
 conflicts which are tedious to resolve. Even if you know about the problem
 and try to run svn update before every merge, it's quite easy to forget
 about running svn update.

 Also, we've been advertising this as best practice for some time.
 Quoting the book on the matter:
   Never merge into working copies with a mixture of working revision
   numbers, or with “switched” subdirectories (as described next in the
   section called “Traversing Branches”). A merge target should be a
   working copy which represents a single location in the repository at a
   single point in time.

 Note that while the book recommends not to merge into working copies
 with switched subtrees, I don't intend to enforce this by default.

 I've talked about this with Paul on IRC and he had no objections.
 See http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-09-30#l468
 for the full discussion.

 Below is a work-in-progress diff that starts making this change.
 Tests fail with it. I've only checked the merge tests for now.

 Before continuing with this, fixing up tests, bumping APIs, and eventually
 adding the command line option that allows merges into mixed-rev WCs,
 I'd like to ask whether anyone has concerns about this idea.

 The proposal sounds good to me.

 To be more specific about what the proposal is:

  * It does not apply to re-integrate merges. (They always enforce this
 anyway?)

Right, there should be *no* override on reintegrate's requirement for
a uniform rev target.

  * It applies to merge-tracking merges.

  * It [applies/does not appy] to non-merge-tracking merges?

Stefan and I didn't discuss these last two. I'm inclined to think that
this warning should apply only to merge-tracking aware merges.

 As for the tests: I think it would be best to keep some or all of the
 tests doing merges into a mixed-rev WC as they do now, partly so as not
 to lose test coverage of this condition, but more importantly to
 preserve the purpose of any regression tests that happen to be testing
 for bugs which only showed up in mixed-rev mode.

 In other words, fix most of them by adding the bypass flag rather than
 by adding an svn update command.

Good point, that makes more sense.

Paul


Re: 1.6.13 up for signing/testing

2010-10-01 Thread Senthil Kumaran S
Hyrum K. Wright wrote:
 1.6.13 tarballs are up for testing and signing.  The magic revision is 
 r1002816:
 http://people.apache.org/~hwright/svn/1.6.13/

Summary:

   +1 to release (Unix)

Tested:

   1.6.13 tarball with local dependencies (nothing from deps tarball)
   [ra_local, ra_svn, ra_serf, ra_neon] x [fsfs, bdb]

Dependencies:

  APR 1.3.9
  APR-UTIL 1.3.9
  Apache httpd 2.2.14
  Neon 0.29.3
  Serf 0.3.0
  BDB 4.7.25
  OpenSSL 0.9.8g
  SunJDK 1.6.0_12
  SQLite 3.6.19
  JUnit 3.8.2
  Perl 5.10.0
  Python 2.5.2
  Ruby 1.8.7
  Swig 1.3.36
  ctypesgen trunk

Environment:

  Debian 5.0.6 (Lenny)
  Linux 2.6.26-2-686 #1 SMP i686 GNU/Linux

Results:

  All tests PASSED!

Bindings results:

  javahl Time: 259.061 OK (50 tests)
  perl All tests successful, 7 subtests skipped.
  python Ran 106 tests in 62.608s
  ruby 219 tests, 1494 assertions, 0 failures, 0 errors
  ctypes-python ...Ran 26 tests in 30.600s (OK)

md5sums (tested):

  7ae1c827689f21cf975804005be30aeb  subversion-1.6.13.tar.bz2
  8451f5d771edc0a0302bd9a52d54e150  subversion-1.6.13.tar.gz

Verfied md5sums (nothing more):

  2a7d662bac872c61a5e11c89263d7f07  subversion-deps-1.6.13.tar.bz2
  688bdb107731f9db2f3b6297b663a68d  subversion-deps-1.6.13.tar.gz
  88dc208617bf8ed4abbe46953cd0d387  svn_version.h.dist

GPG Signatures:

subversion-1.6.13.tar.bz2.asc
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylqIkACgkQ9o1G+2zNQDh/oQCcCK7wSFSGZcjANEGg2tmThFom
b0sAn1bZIFjRY/+JUmJ5LFuCZwL/rtdd
=rJdy
-END PGP SIGNATURE-

subversion-1.6.13.tar.gz.asc
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylqJAACgkQ9o1G+2zNQDgF8ACgiWCHM7Hyc5xhguaknPAsNerQ
n/4An2E9ASkvd8nHWjgyj1fnJ0P7FfGt
=8Qpx
-END PGP SIGNATURE-

subversion-deps-1.6.13.tar.bz2.asc
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylqJkACgkQ9o1G+2zNQDidwACgh0y6L4UYa6/I8ZpcdmpetIBp
Y7QAnA5DL6mO0LrYCNEFqUu+Ft5YDo9F
=U9h9
-END PGP SIGNATURE-

subversion-deps-1.6.13.tar.gz.asc
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylqJ0ACgkQ9o1G+2zNQDh/dwCgmtWchpQu7ywVffbGtR3H041R
eSsAn2T0NLqdf2xPmqLQxaXLrnZIsu7F
=Mo7K
-END PGP SIGNATURE-

Thank You.
-- 
Senthil Kumaran S
http://www.stylesen.org/


Re: trunk failing tests on Windows XP (32 bit): prop-tests.py 33, stat-tests.py 5, upgrade-tests.py 11

2010-10-01 Thread Paul Burba
On Thu, Sep 30, 2010 at 8:10 PM, Bert Huijben b...@qqmail.nl wrote:
 -Original Message-
 From: Johan Corveleyn [mailto:jcor...@gmail.com]
 Sent: vrijdag 1 oktober 2010 1:51
 To: Subversion Development
 Subject: trunk failing tests on Windows XP (32 bit): prop-tests.py 33,
 stat-tests.py 5, upgrade-tests.py 11

 Hi devs,

 The following tests fail on my machine (Windows XP 32-bit, built with
 VCE 2008, ra_local):

 - prop-tests.py 33: test properties of obstructed subdirectories
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\prop_tests-33\A\C':
 The directory name is invalid.

 - stat-tests.py 5: status on versioned items whose type has changed
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\stat_tests-5\A':
 The directory name is invalid.

 - upgrade_tests.py 11: missing directories and obstructing files
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\upgrade_tests-11\A\D':
 The directory name is invalid.

 They all seem to try to open some path as a directory, but it isn't a
 directory (but an empty file or something).

 Am I the only one seeing this? Is this known/normal?

 This seems to be related to the APR version you use. (Paul Burba reported
 this same problem earlier this week).

Hi Johan,

Bert is correct, I saw these failure earlier this week while using APR
1.3.12.  All the failures occur when a file unexpectedly obstructs a
directory.  The APR macro APR_STATUS_IS_ENOTDIR in 1.3.x does not
handle the ERROR_DIRECTORY 267 The directory name is invalid that
Windows raises in this case.  This was fixed in APR in
http://svn.apache.org/viewvc?view=revisionrevision=821306 and is in
APR 1.4.2.

Paul


Re: Some tips on profiling

2010-10-01 Thread Ramkumar Ramachandra
Hi Stefan,

Stefan Fuhrmann writes:
 You obviously don't have APR threads enabled.
 Thanks for finding this. Fixed in r1003430.

I enabled it, but there's still some issue:
subversion/svnadmin/main.c:1892: undefined reference to 
`svn_fs_get_cache_config'

 The server caches almost everything. So, the
 first (cold) run demonstrates the worst-case,
 the second run (hot) the best case. Real
 world performance depends on server memory
 and load.

Ah. Thanks for the clarification.

 For the merge part: please review the integrate-membuffer
 branch (only 3 patches). You may also review and
 merge any of the patches listed in /branches/performance/STATUS.

integrate-cache-membuffer, you mean? Thanks! Your emails contains
references exactly to the patches I'm looking for :)

 For the MD5 stuff, try r986459 (performance branch).
 It should eliminate 1 of the 3 MD5 calculations.

Why doesn't STATUS document this and everything else consistently?

 As for the temp files, there are some improvements
 listed in /branches/performance/STATUS. These would
 also reduce your system CPU time.

I had the chance to check them out and apply them just now. They work
as expected. I'll submit some (uneducated) patch reviews to the list
and request a merge. I don't have access to the areas your patches
touch.

-- Ram


[Merge request] Merge r985477 from performance branch

2010-10-01 Thread Ramkumar Ramachandra
Hi,

I would like to get r985477 merged into trunk. I've applied and used
it successfully and checked that all tests pass.

Warning: I have no background knowledge. I'm just reviewing the patch
as-it-is, because Stefan asked me to.

 [[[
 r985477 | stefan2 | 2010-08-14 18:02:04 +0530 (Sat, 14 Aug 2010) | 9 lines
 
 Eliminate all file system access in get_default_file_perms() for all but the 
 first execution.
 
 The only downside is that we don't detect FS permission changes made while 
 the 
 (client) process runs. Because such changes would cause race conditions and 
 file I/O
 errors anyway, we are not make things worse by omitting those tests.
 
 * subversion/libsvn_subr/io.c
   (get_default_file_perms): store result in a singleton in the first run and 
 bypass
   the FS access in all later runs

I looked at this after reading the patch, and I must admit that I
didn't get the idea from the log message: how about using static
variable instead of singleton.

 ]]]
 
 Index: subversion/libsvn_subr/io.c
 ===
 --- subversion/libsvn_subr/io.c   (revision 985476)
 +++ subversion/libsvn_subr/io.c   (revision 985477)
 @@ -1297,30 +1297,47 @@ reown_file(const char *path,
  static svn_error_t *
  get_default_file_perms(apr_fileperms_t *perms, apr_pool_t *scratch_pool)
  {
 -  apr_finfo_t finfo;
 -  apr_file_t *fd;
 +  /* the default permissions as read from the temp folder */
 +  static apr_fileperms_t default_perms = 0;

From the APR documentation, this is just an int32. Hm, you've got rid
of the file description and finfo -- let's see how this works out.

 -  /* Get the perms for a newly created file to find out what bits
 - should be set.
 +  /* 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;

Ah, so you didn't remove them.

 - 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.
 +  /* Get the perms for a newly created file to find out what bits
 +should be set.
  
 - NOTE: not so fast, shorty. if some other thread forks off a child,
 -   then the APR cleanups run, and the file will disappear. sigh.
 +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.

Bogus diff due to re-indent. The only real addition is Get the perms
for a newly created file to find out what bits should be set.

 - 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));
 +NOTE: not so fast, shorty. if some other thread forks off a child,
 +  then the APR cleanups run, and the file will disappear. sigh.

Ok. You've moved this comment down to say why the del_on_close idea in
the previous comment is a bad idea.

 +  *perms = finfo.protection;
 +  default_perms = finfo.protection;

Very simple patch. Basically, if the permissions were found in the
last function call, simply return the found value, using a static
variable for remembering it. Otherwise, re-calculate permissions.

-- Ram


Re: 1.6.13 up for signing/testing

2010-10-01 Thread Julian Foad
On Wed, 2010-09-29, Hyrum K. Wright wrote:
 1.6.13 tarballs are up for testing and signing.  [...]

Summary:

  +1 to release (Unix).

Tested:

  [ bdb | fsfs ] x [ ra_local | ra_svn | ra_neon | ra_serf ]
  swig-pl
  swig-py
  swig-rb
  ctypes-python

Environment:

  OS/Platform:
Ubuntu 9.10, 2.6.31-22-generic i686 GNU/Linux

  Using in-tree build of subversion-deps-1.6.13 packages:
(none)

  Using Ubuntu distribution-supplied packages:
libapr1 1.3.8-1
libaprutil1 1.3.9+dfsg-1ubuntu1
libdb-dev 4.7.25.3
openssl 0.9.8g-16ubuntu3.2
perl 5.10.0-24ubuntu4
python 2.6.4
ruby 1.8.7
python-ctypes 1.0.2-6ubuntu1
zlib1g 1:1.2.3.3.dfsg-13ubuntu3
neon 0.28.6

Results:

  make check ... (8 ways): No failures.
  make check-swig-pl: All tests successful, 7 subtests skipped.
  make check-swig-py: Ran 106 tests [...] OK.
  make check-swig-rb: 219 tests, 1494 assertions, 0 failures, 0 errors
  make check-ctypes-python: Ran 26 tests [...] OK.

Paranoia:

  Verified that all 6 distribution packages match their md5sums,
  sha1sums and to-tigris copies.

  Verified that *.bz2 vs *.gz uncompress to exactly the same tarball,
  for both deps and non-deps.

Signatures:

::: subversion-1.6.13.tar.bz2 :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylnb8ACgkQNR8z5DU+Jbzm3gCfUGZ35xVQVnxayCa6meyhJkea
1dgAn0vYuIXMKN5IGAAx6jAoVBbKrt6z
=LPkD
-END PGP SIGNATURE-

::: subversion-1.6.13.tar.gz :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkylnb8ACgkQNR8z5DU+JbwDWACfXPaYXKdzH1j67G3SaWwrqFIl
IbAAn3k2TVGzIpElHJiv7z/uI6f8TmaL
=i5fp
-END PGP SIGNATURE-


- Julian










Re: disallow merges into mixed-rev WCs by default?

2010-10-01 Thread Julian Foad
On Fri, 2010-10-01 at 09:16 -0400, Paul Burba wrote:
 On Fri, Oct 1, 2010 at 7:25 AM, Julian Foad julian.f...@wandisco.com wrote:
  Stefan Sperling wrote:
  I'd like to propose that we disallow merges into mixed-revision working
  copies by default for 1.7, and only allow such merges if a special command
  line option has been passed.
 
 What will the behavior be during --dry-run merges?
 
 A) No change
 
 B) Warn that your target is mixed-rev, but proceed as we always did
 
 C) Fail unless the new option is used.

It should be (C): a dry-run should be as close as possible to the real
behaviour.  I can't see any benefit in making a dry-run merge behave
differently from a non-dry-run merge in this respect.

 What about --record-only merges?  I think here it makes sense to
 mirror whatever behavior we decide upon for a real merge-tracking
 aware merge.

Agreed.


  The reason for this is that merges into mixed-rev WCs can easily create
  conflicts which are tedious to resolve. Even if you know about the problem
  and try to run svn update before every merge, it's quite easy to forget
  about running svn update.
 
  Also, we've been advertising this as best practice for some time.
  Quoting the book on the matter:
Never merge into working copies with a mixture of working revision
numbers, or with “switched” subdirectories (as described next in the
section called “Traversing Branches”). A merge target should be a
working copy which represents a single location in the repository at a
single point in time.
 
  Note that while the book recommends not to merge into working copies
  with switched subtrees, I don't intend to enforce this by default.
 
  I've talked about this with Paul on IRC and he had no objections.
  See http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-09-30#l468
  for the full discussion.
 
  Below is a work-in-progress diff that starts making this change.
  Tests fail with it. I've only checked the merge tests for now.
 
  Before continuing with this, fixing up tests, bumping APIs, and eventually
  adding the command line option that allows merges into mixed-rev WCs,
  I'd like to ask whether anyone has concerns about this idea.
 
  The proposal sounds good to me.
 
  To be more specific about what the proposal is:
 
   * It does not apply to re-integrate merges. (They always enforce this
  anyway?)
 
 Right, there should be *no* override on reintegrate's requirement for
 a uniform rev target.
 
   * It applies to merge-tracking merges.
 
   * It [applies/does not appy] to non-merge-tracking merges?
 
 Stefan and I didn't discuss these last two. I'm inclined to think that
 this warning should apply only to merge-tracking aware merges.

I have no opinion on that.


  As for the tests: I think it would be best to keep some or all of the
  tests doing merges into a mixed-rev WC as they do now, partly so as not
  to lose test coverage of this condition, but more importantly to
  preserve the purpose of any regression tests that happen to be testing
  for bugs which only showed up in mixed-rev mode.
 
  In other words, fix most of them by adding the bypass flag rather than
  by adding an svn update command.
 
 Good point, that makes more sense.
 
 Paul


- Julian




Re: [Merge request] Merge r985477 from performance branch

2010-10-01 Thread Julian Foad
Ramkumar Ramachandra wrote:
 I would like to get r985477 merged into trunk. I've applied and used
 it successfully and checked that all tests pass.
 
 Warning: I have no background knowledge. I'm just reviewing the patch
 as-it-is, because Stefan asked me to.
 
  [[[
  r985477 | stefan2 | 2010-08-14 18:02:04 +0530 (Sat, 14 Aug 2010) | 9 lines
  
  Eliminate all file system access in get_default_file_perms() for all but 
  the first execution.
  
  The only downside is that we don't detect FS permission changes made while 
  the 
  (client) process runs. Because such changes would cause race conditions and 
  file I/O
  errors anyway, we are not make things worse by omitting those tests.

Looks good to me.

I wondered if it is safe in a long-running Subversion process, like
TortoiseSvn or a Linux equivalent.

It seems to me that it won't really matter much in practice.  If someone
changes their umask and finds that Subversion carries on creating files
with the 'old' permissions that were in effect when Subversion was
started... that's fine, as far as I'm concerned.

To make it easier for others to see, here's the patch, ignoring
indentation changes:

[[[
$ svn diff -x -upw -c985477 http://svn.apache.org/repos/asf/subversion
Index: branches/performance/subversion/libsvn_subr/io.c
===
--- branches/performance/subversion/libsvn_subr/io.c(revision 985476)
+++ branches/performance/subversion/libsvn_subr/io.c(revision 985477)
@@ -1297,6 +1297,16 @@
 static svn_error_t *
 get_default_file_perms(apr_fileperms_t *perms, apr_pool_t *scratch_pool)
 {
+  /* the default permissions as read from the temp folder */
+  static apr_fileperms_t default_perms = 0;
+
+  /* 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;
 
@@ -1321,6 +1331,13 @@ get_default_file_perms(apr_fileperms_t *
   SVN_ERR(svn_io_file_close(fd, scratch_pool));
 
   *perms = finfo.protection;
+  default_perms = finfo.protection;
+}
+  else
+{
+  *perms = default_perms;
+}
+
   return SVN_NO_ERROR;
 }

]]]

- Julian





RE: 1.6.13 up for signing/testing

2010-10-01 Thread Bert Huijben

 -Original Message-
 From: Julian Foad [mailto:julian.f...@wandisco.com]
 Sent: vrijdag 1 oktober 2010 16:51
 To: Hyrum K. Wright
 Cc: Subversion Development
 Subject: Re: 1.6.13 up for signing/testing
 
 On Wed, 2010-09-29, Hyrum K. Wright wrote:
  1.6.13 tarballs are up for testing and signing.  [...]
 
 Summary:

+1 to release (Windows)

Tested:
[ bdb | fsfs ] x [ ra_local | ra_svn | ra_neon | ra_serf ]

Environment:
Windows 7 X64, 32 bit tests. VS 2008 SP1
(Same dependencies as last time, except for serf 0.7.0)

Bert

== subversion-1.6.13.tar.bz2.asc ==
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iEYEABECAAYFAkymCjwACgkQ/P1jBZgh97IWVQCfUImkKsGhhtn9tt974/Q18vuR
tuEAmwQ8LgFDvgzP1/hJinqXTCKkoQ3v
=fxOQ
-END PGP SIGNATURE-


== subversion-1.6.13.tar.gz.asc ==
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iEYEABECAAYFAkymCkEACgkQ/P1jBZgh97JltQCffZ+C77+GGpeie4mZmd1PkLaZ
WI8An2MbKty0PgpOkbkQkFeM7PZa/P/f
=Qf5L
-END PGP SIGNATURE-


== subversion-1.6.13.zip.asc ==
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iEYEABECAAYFAkymCkUACgkQ/P1jBZgh97KknQCgqP/jucRamuT8cjDKbpqdGeyI
EpsAn3Y74JUCqWBUDN7d0yvzQqqHaoyw
=TO4A
-END PGP SIGNATURE-


== svn_version.h.dist.asc ==
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iEYEABECAAYFAkymCkoACgkQ/P1jBZgh97JMFgCfYHP+OoUQllvEuvGaecOvsr4b
IPAAoMnPEoX6aQWgDPsocsudZcUsOz3H
=0GM+
-END PGP SIGNATURE-





Subversion 1.6.13 Released

2010-10-01 Thread Hyrum K. Wright
I'm happy to announce Subversion 1.6.13, available from:

http://subversion.tigris.org/downloads/subversion-1.6.13.tar.bz2
http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz
http://subversion.tigris.org/downloads/subversion-1.6.13.zip
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.bz2
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.zip

This is a bugfix release, part of the 1.6.x release series.  Of note, this
release includes a fix which addresses CVE-2010-3313, a security issue when
using 'SVNPathAuthz short_circuit'.  More information can be found here:
http://subversion.apache.org/security/CVE-2010-3313-advisory.txt

The MD5 checksums are:

7ae1c827689f21cf975804005be30aeb  subversion-1.6.13.tar.bz2
8451f5d771edc0a0302bd9a52d54e150  subversion-1.6.13.tar.gz
dd4009b239a5354b434e5f66cddde145  subversion-1.6.13.zip
2a7d662bac872c61a5e11c89263d7f07  subversion-deps-1.6.13.tar.bz2
688bdb107731f9db2f3b6297b663a68d  subversion-deps-1.6.13.tar.gz
bb960d37f835e5e556e23e4eb85a9b08  subversion-deps-1.6.13.zip

The SHA1 checksums are:

185efd129c3c4b04f1544d62bb9a3fcd0f58ba29  subversion-1.6.13.tar.bz2
06d3afc49182c80ea712c13409c008d27a4e889b  subversion-1.6.13.tar.gz
6530528fae0335cd8495ebf1f2072e2dd9df2e31  subversion-1.6.13.zip
e51bffda416a3a9abe068aab6f90d174dedef352  subversion-deps-1.6.13.tar.bz2
1faa5ba0c87210f534ed445d061e4955396524d4  subversion-deps-1.6.13.tar.gz
945ef9f68998aedf320af50d220e47a470684a06  subversion-deps-1.6.13.zip

PGP Signatures are available at:

http://subversion.tigris.org/downloads/subversion-1.6.13.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-1.6.13.zip.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.zip.asc

For this release, the following people have provided PGP signatures:

   Senthil Kumaran S [1024D/6CCD4038] with fingerprint:
8035 16A5 1D6E 50E2 1ECD  DE56 F68D 46FB 6CCD 4038
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Paul T. Burba [1024D/53FCDC55] with fingerprint:
E630 CF54 792C F913 B13C  32C5 D916 8930 53FC DC55
   Julian Foad [1024D/353E25BC] with fingerprint:
6604 5A4B 43BC F994   5728 351F 33E4 353E 25BC
   Bert Huijben [1024D/9821F7B2] with fingerprint:
2017 F51A 2572 0E78 8827  5329 FCFD 6305 9821 F7B2
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C
   Stefan Sperling [1024D/F59D25F0] with fingerprint:
B1CF 1060 A1E9 34D1 9E86  D6D6 E5D3 0273 F59D 25F0
   Mark Phippard [1024D/035A96A9] with fingerprint:
D315 89DB E1C1 E9BA D218  39FD 265D F8A0 035A 96A9

Release notes for the 1.6.x release series may be found at:

http://subversion.apache.org/docs/release-notes/1.6.html

You can find the list of changes between 1.6.13 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.6.13/CHANGES

Questions, comments, and bug reports to us...@subversion.apache.org.

Thanks,
- The Subversion Team


Re: svn commit: r1002898 - in /subversion/trunk: ./ subversion/include/svn_string.h subversion/libsvn_subr/svn_string.c

2010-10-01 Thread Blair Zajac

On 10/01/2010 01:36 AM, Stefan Fuhrmann wrote:


On 30.09.2010 02:12, Blair Zajac wrote:

On 09/29/2010 05:01 PM, stef...@apache.org wrote:

Author: stefan2
Date: Thu Sep 30 00:01:45 2010
New Revision: 1002898

URL: http://svn.apache.org/viewvc?rev=1002898view=rev
Log:
Merge r1001413 from the perform struct




-- Stefan^2.


ance branch.


Improve documentation on svn_stringbuf_appendbyte.

Approved by: Hyrum K. Wrighthyrum_wright_at_mail.utexas.edu




/** Append a single character @a byte onto @a targetstr.
+ * This is an optimized version of @ref svn_stringbuf_appendbytes
+ * that is much faster to call and execute. Gains vary with the ABI.


When you say ABI, you actually mean the C calling convention ABI, not
the Subversion ABI? I think this would be a good distinction to
document here, since Subversion has its own ABI that we strictly
maintain.


I mean calling convention. Where is the Subversion ABI defined?


By ABI, I mean everything in subversion/include.  We can't change 
function definitions or modify structures in such a way that breaks the ABI.


Blair



Subversion 1.6.13 Released

2010-10-01 Thread Hyrum K. Wright
[ Please note: I prior version of this mail referred to the incorrect
CVE number. ]

I'm happy to announce Subversion 1.6.13, available from:

http://subversion.tigris.org/downloads/subversion-1.6.13.tar.bz2
http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz
http://subversion.tigris.org/downloads/subversion-1.6.13.zip
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.bz2
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.zip

This is a bugfix release, part of the 1.6.x release series.  Of note, this
release includes a fix which addresses CVE-2010-3315, a security issue when
using 'SVNPathAuthz short_circuit'.  More information can be found here:
http://subversion.apache.org/security/CVE-2010-3315-advisory.txt

The MD5 checksums are:

7ae1c827689f21cf975804005be30aeb  subversion-1.6.13.tar.bz2
8451f5d771edc0a0302bd9a52d54e150  subversion-1.6.13.tar.gz
dd4009b239a5354b434e5f66cddde145  subversion-1.6.13.zip
2a7d662bac872c61a5e11c89263d7f07  subversion-deps-1.6.13.tar.bz2
688bdb107731f9db2f3b6297b663a68d  subversion-deps-1.6.13.tar.gz
bb960d37f835e5e556e23e4eb85a9b08  subversion-deps-1.6.13.zip

The SHA1 checksums are:

185efd129c3c4b04f1544d62bb9a3fcd0f58ba29  subversion-1.6.13.tar.bz2
06d3afc49182c80ea712c13409c008d27a4e889b  subversion-1.6.13.tar.gz
6530528fae0335cd8495ebf1f2072e2dd9df2e31  subversion-1.6.13.zip
e51bffda416a3a9abe068aab6f90d174dedef352  subversion-deps-1.6.13.tar.bz2
1faa5ba0c87210f534ed445d061e4955396524d4  subversion-deps-1.6.13.tar.gz
945ef9f68998aedf320af50d220e47a470684a06  subversion-deps-1.6.13.zip

PGP Signatures are available at:

http://subversion.tigris.org/downloads/subversion-1.6.13.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-1.6.13.zip.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.13.zip.asc

For this release, the following people have provided PGP signatures:

   Senthil Kumaran S [1024D/6CCD4038] with fingerprint:
8035 16A5 1D6E 50E2 1ECD  DE56 F68D 46FB 6CCD 4038
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Paul T. Burba [1024D/53FCDC55] with fingerprint:
E630 CF54 792C F913 B13C  32C5 D916 8930 53FC DC55
   Julian Foad [1024D/353E25BC] with fingerprint:
6604 5A4B 43BC F994   5728 351F 33E4 353E 25BC
   Bert Huijben [1024D/9821F7B2] with fingerprint:
2017 F51A 2572 0E78 8827  5329 FCFD 6305 9821 F7B2
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C
   Stefan Sperling [1024D/F59D25F0] with fingerprint:
B1CF 1060 A1E9 34D1 9E86  D6D6 E5D3 0273 F59D 25F0
   Mark Phippard [1024D/035A96A9] with fingerprint:
D315 89DB E1C1 E9BA D218  39FD 265D F8A0 035A 96A9

Release notes for the 1.6.x release series may be found at:

http://subversion.apache.org/docs/release-notes/1.6.html

You can find the list of changes between 1.6.13 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.6.13/CHANGES

Questions, comments, and bug reports to us...@subversion.apache.org.

Thanks,
- The Subversion Team


Re: svn commit: r1003585 - in /subversion/site/publish: index.html news.html

2010-10-01 Thread Blair Zajac

On 10/01/2010 10:03 AM, hwri...@apache.org wrote:

Author: hwright
Date: Fri Oct  1 17:03:11 2010
New Revision: 1003585

URL: http://svn.apache.org/viewvc?rev=1003585view=rev
Log:
Announce Subversion 1.6.12.


You mean 1.6.13?

Blair


Re: svn commit: r1003585 - in /subversion/site/publish: index.html news.html

2010-10-01 Thread Hyrum Wright
On Fri, Oct 1, 2010 at 12:10 PM, Blair Zajac bl...@orcaware.com wrote:
 On 10/01/2010 10:03 AM, hwri...@apache.org wrote:

 Author: hwright
 Date: Fri Oct  1 17:03:11 2010
 New Revision: 1003585

 URL: http://svn.apache.org/viewvc?rev=1003585view=rev
 Log:
 Announce Subversion 1.6.12.

 You mean 1.6.13?

Yep.  Fixed.

-Hyrum


Re: 1.6.13 up for signing/testing

2010-10-01 Thread Hyrum K. Wright
The release is now public, and I've published the CVE advisory (and
linked to it from the release announcement).

Thanks to everybody who tested and signed this release (or just kicked
the tires a bit :) )

A very tired,
-Hyrum

On Wed, Sep 29, 2010 at 3:08 PM, Hyrum K. Wright
hyrum_wri...@mail.utexas.edu wrote:
 1.6.13 tarballs are up for testing and signing.  The magic revision is 
 r1002816:
 http://people.apache.org/~hwright/svn/1.6.13/

 As usual, signatures from full committers please send back to me.
 Testing by enthusiastic users is also welcomed (but remember that this
 is not yet a blessed release, with all that that implies).  If you are
 a package maintainer, please do not included this release in your
 distribution until after it has been formally released.

 I'd like to collect all the signatures in time to do a release by October 1.



Re: svn commit: r1002898 - in /subversion/trunk: ./ subversion/include/svn_string.h subversion/libsvn_subr/svn_string.c

2010-10-01 Thread Greg Stein
On Fri, Oct 1, 2010 at 04:36, Stefan Fuhrmann
stefanfuhrm...@alice-dsl.de wrote:
...
 I mean calling convention. Where is the Subversion ABI defined?

subversion/include/

It follows guidelines from:
  http://apr.apache.org/versioning.html

With some additional clarifications/notes at:
  
http://subversion.apache.org/docs/community-guide/releasing.html#release-numbering


Cheers,
-g


Re: trunk failing tests on Windows XP (32 bit): prop-tests.py 33, stat-tests.py 5, upgrade-tests.py 11

2010-10-01 Thread Johan Corveleyn
On Fri, Oct 1, 2010 at 3:45 PM, Paul Burba ptbu...@gmail.com wrote:
 On Thu, Sep 30, 2010 at 8:10 PM, Bert Huijben b...@qqmail.nl wrote:
 -Original Message-
 From: Johan Corveleyn [mailto:jcor...@gmail.com]
 Sent: vrijdag 1 oktober 2010 1:51
 To: Subversion Development
 Subject: trunk failing tests on Windows XP (32 bit): prop-tests.py 33,
 stat-tests.py 5, upgrade-tests.py 11

 Hi devs,

 The following tests fail on my machine (Windows XP 32-bit, built with
 VCE 2008, ra_local):

 - prop-tests.py 33: test properties of obstructed subdirectories
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\prop_tests-33\A\C':
 The directory name is invalid.

 - stat-tests.py 5: status on versioned items whose type has changed
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\stat_tests-5\A':
 The directory name is invalid.

 - upgrade_tests.py 11: missing directories and obstructing files
 svn: Can't open directory
 'C:\research\svn\client_build\svn_trunk\Release\subversion\tests\cmdlin
 e\svn-test-work\working_copies\upgrade_tests-11\A\D':
 The directory name is invalid.

 They all seem to try to open some path as a directory, but it isn't a
 directory (but an empty file or something).

 Am I the only one seeing this? Is this known/normal?

 This seems to be related to the APR version you use. (Paul Burba reported
 this same problem earlier this week).

 Hi Johan,

 Bert is correct, I saw these failure earlier this week while using APR
 1.3.12.  All the failures occur when a file unexpectedly obstructs a
 directory.  The APR macro APR_STATUS_IS_ENOTDIR in 1.3.x does not
 handle the ERROR_DIRECTORY 267 The directory name is invalid that
 Windows raises in this case.  This was fixed in APR in
 http://svn.apache.org/viewvc?view=revisionrevision=821306 and is in
 APR 1.4.2.

Thanks for the info. I was/am still building against APR 1.3.8, so
that explains it.

So, will 1.4.2 become the minimum supported APR version for SVN? Or
maybe a future 1.3.x release that fixes the same issue?

Or will SVN trunk be changed/fixed to cope with this? Since this
problem only appeared a week ago, it must be that something in svn
code changed to provoke this problem, right? It used  to work ...

Cheers,
-- 
Johan