Re: svn commit: r1417252 - /subversion/trunk/subversion/libsvn_client/export.c

2012-12-04 Thread Hyrum Wright
On Tue, Dec 4, 2012 at 7:49 PM, hwri...@apache.org wrote:

 Author: hwright
 Date: Wed Dec  5 00:49:22 2012
 New Revision: 1417252

 URL: http://svn.apache.org/viewvc?rev=1417252view=rev
 Log:
 Manually migrate the Ev2 export implementation (in the case of recursive
 directory exports) from the ev2-export branch to trunk, guarded by the
 --enable-ev2-impl configure flag.

 * subversion/libsvn_client/export.c
   (fetch_kind_func): Remove.
   (get_editor): Rename to...
   (get_editor_ev1): ...this.
   (add_file_ev2, add_directory_ev2, target_revision_func, get_editor_ev2):
 New.
   (svn_client_export5): Optionally use the Ev2 implementation for directory
 exports.

 Modified:
 subversion/trunk/subversion/libsvn_client/export.c

 Modified: subversion/trunk/subversion/libsvn_client/export.c
 URL:
 http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/export.c?rev=1417252r1=1417251r2=1417252view=diff

 ==
 --- subversion/trunk/subversion/libsvn_client/export.c (original)
 +++ subversion/trunk/subversion/libsvn_client/export.c Wed Dec  5 00:49:22
 2012
 @@ -43,8 +43,13 @@

  #include svn_private_config.h
  #include private/svn_subr_private.h
 +#include private/svn_delta_private.h
  #include private/svn_wc_private.h

 +#ifndef ENABLE_EV2_IMPL
 +#define ENABLE_EV2_IMPL 0
 +#endif


For the record, I'm not really happy with this little kludge, but it's the
best I could come up with to get both versions of the editor compiling, but
have the runtime choice made at configure-time.  If folks have other
suggestions, I'd appreciate them.

...

-Hyrum


Re: svn commit: r1401901 - in /subversion/trunk/subversion: include/private/svn_ra_private.h libsvn_ra/editor.c libsvn_ra/ra_loader.c libsvn_ra/ra_loader.h

2012-10-24 Thread Hyrum Wright
On Wed, Oct 24, 2012 at 6:06 PM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Wed Oct 24 22:06:33 2012
 New Revision: 1401901

 URL: http://svn.apache.org/viewvc?rev=1401901view=rev
 Log:
 First cut at an RA-layer function which returns an Ev2-capable editor for use
 in replay range consumers, such as svnrdump and svnsync.

 Note:  This code isn't yet called anywhere or tested, so use at own risk!

...

For those wondering, the Grand Plan here goes something like this:
1) Merge these changes to the ev2-export branch (already done in r1401904)
2) On the ev2-export branch, implement the svnrdump editor as an Ev2
provider, using the APIs introduced in this revision.
3) Tie the new RA API into the svn_repos Ev2 replay ranges API for ra_local.
4) Fix bugs.

I'm sure profit is in there somewhere, but I'm not sure where it fits. :)

This *should* address issue 4116, but still has a couple of problems,
namely that the RA method will still be using the shims for ra_serf
and ra_svn.  In order to remove that dependency, we'd need a bunch of
protocol work to define a mechanism to punch Ev2 through on both serf
and ra_svn.  While this is probably a sizable task, it can be done in
parallel with (2) above, and will also be useful for things like blame
and update.  Left to my own devices, it will quite some time before
all this gets done, so coconspirators would be appreciated.

-Hyrum


Re: svn commit: r1343456 - in /subversion/branches/javahl-ra/subversion/bindings/javahl/native: RevpropTable.cpp RevpropTable.h

2012-05-29 Thread Hyrum Wright
Vladimir,
I haven't forgotten your patches or the other thread about the editor, but I 
also haven't had a chance to review them.  My connectivity will be spotty over 
the next few days, so it may be later this week before I have meaningful 
feedback.  (Hopefully others can chime in before that, though.)

-Hyrum


On May 28, 2012, at 10:34 PM, Vladimir Berezniker vladi...@berezniker.com 
wrote:

 Hi Hyrum,
 
 I committed JavaHL re-factoring changes in r1343452 and r1343456 thinking that
 while they are generally applicable to JavaHL code, they won't be used by any 
 other JavaHL code, so they should go on the branch. But on a second thought
 they are not tied to the new RA code, it just happens to be the only user at
 the moment.  Should I submit changes like these as patches against trunk to
 @dev or continue committing them to javahl-ra branch?
 
 Thank you in advance,
 
 Vladimir
 
 
 On Mon, May 28, 2012 at 11:22 PM, commits-h...@subversion.apache.org wrote:
 
 Author: vmpn
 Date: Tue May 29 02:57:05 2012
 New Revision: 1343456
 
 URL: http://svn.apache.org/viewvc?rev=1343456view=rev
 Log:
 On the javahl-ra branch:
 
 JavaHL: Support returning non const, empty rather than NULL hash as required
 by (svn_ra_get_commit_editor3) apr_hash_t *revprop_table parameter
 
 [ in subversion/bindings/javahl/native ]
 
 * RevpropTable.cpp,
  RevpropTable.h
  (hash): Removed const qualifier and added bool nullIfEmpty parameter to
specify whether empty hash or NULL should be returned
 
 Modified:

 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.cpp

 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.h
 
 Modified: 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.cpp
 URL: 
 http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.cpp?rev=1343456r1=1343455r2=1343456view=diff
 ==
 --- 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.cpp
  (original)
 +++ 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.cpp
  Tue May 29 02:57:05 2012
 @@ -41,9 +41,9 @@ RevpropTable::~RevpropTable()
 JNIUtil::getEnv()-DeleteLocalRef(m_revpropTable);
  }
 
 -const apr_hash_t *RevpropTable::hash(const SVN::Pool pool)
 +apr_hash_t *RevpropTable::hash(const SVN::Pool pool, bool nullIfEmpty)
  {
 -  if (m_revprops.size() == 0)
 +  if (m_revprops.size() == 0  nullIfEmpty)
 return NULL;
 
   apr_hash_t *revprop_table = apr_hash_make(pool.getPool());
 
 Modified: 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.h
 URL: 
 http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.h?rev=1343456r1=1343455r2=1343456view=diff
 ==
 --- 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.h
  (original)
 +++ 
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/RevpropTable.h
  Tue May 29 02:57:05 2012
 @@ -44,7 +44,7 @@ class RevpropTable
  public:
   RevpropTable(jobject jrevpropTable);
   ~RevpropTable();
 -  const apr_hash_t *hash(const SVN::Pool pool);
 +  apr_hash_t *hash(const SVN::Pool pool, bool nullIfEmpty = true);
  };
 
  #endif // REVPROPTABLE_H
 
 
 
 
 


Apache Subversion 1.7.3 Released

2012-02-13 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.3.  This
release is the best available release of Subversion, and we encourage
all users to upgrade as soon as practical.  Subversion 1.7.3 fixes a
number of crashes and improves error handling in several cases (please
see CHANGES for details).

This release also includes a correctness for for mod_dav_svn
responses.  Unfortunately, this same fix highlights several bugs
already existant in svnrdump when it is run over ra_serf.  For this
reason, we continue to recommend that users use ra_neon--the default
for the 1.7.x series--when running svnrdump.

To download the latest release of Subversion, please choose the mirror
closest to you by visiting:

http://subversion.apache.org/download/#recommended-release

The SHA1 checksums are:

eebeb77f1a8d352adcd8fe684b52e66be9fdcbce subversion-1.7.3.zip
624d4070361c0e8d7cf4f5c667629e72459b122d subversion-1.7.3.tar.bz2
0b97f7a3ebef31f3fc96f73eda2974eedee7aaf7 subversion-1.7.3.tar.gz

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.3.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.3.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.3.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   Paul T. Burba [1024D/53FCDC55] with fingerprint:
E630 CF54 792C F913 B13C  32C5 D916 8930 53FC DC55
   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
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   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.7.x release series may be found at:

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

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

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

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.2 Released

2011-12-05 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.2.
Please choose the mirror closest to you by visiting:

    http://subversion.apache.org/download/#recommended-release

The SHA1 checksums are:

    8c0824aeb7f42da1ff4f7cd296877af7f59812bb subversion-1.7.2.tar.bz2
    c485b72b316c3bd08e29fe0e73c5cc537f871cf8 subversion-1.7.2.tar.gz
    c51b7db58adc68178e0702b7b3c5da817bfd91d3 subversion-1.7.2.zip

PGP Signatures are available at:

    http://www.apache.org/dist/subversion/subversion-1.7.2.tar.bz2.asc
    http://www.apache.org/dist/subversion/subversion-1.7.2.tar.gz.asc
    http://www.apache.org/dist/subversion/subversion-1.7.2.zip.asc

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

   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
   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
   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
    20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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.7.x release series may be found at:

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

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

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

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.1 Released

2011-10-22 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.1.  This
release addresses a number of user-reported issues in the 1.7.0
release.
To download Subversion 1.7.1, please choose the mirror closest to you
by visiting:

http://subversion.apache.org/download/#recommended-release

The SHA1 checksums are:

8a723e953fcee0bea759141d64648ea8d6a77b1d subversion-1.7.1.zip
4bfaa8e33e9eaf26a504117cd91b23805518071a subversion-1.7.1.tar.bz2
54b28c1356c796e3a1dfa4e7bc561e5f7e9fb5ee subversion-1.7.1.tar.gz

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.1.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.1.zip.asc

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

   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
   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
   Ivan Zhakov [1024D/C4F3A281] with fingerprint:
9D3C 5860 6A64 74BF 591D  F3A1 F60D 1980 C4F3 A281

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

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

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

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

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0 Released

2011-10-11 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0.  This is
a major new feature release of Subversion, containing many new
features, bugfixes and general usability improvements.  The full
extent of the changes is too large to enumerate here, and I encourage
you to read the release notes (linked to below).

To download the release, please choose the mirror closest to you by visiting:

http://subversion.apache.org/download/#recommended-release

The SHA1 checksums are:

81f75275f5fe6b71b42384718a4aa5aba8764911 subversion-1.7.0.zip
19384ec6d2bf8dfdd4d435775f7627721413e1a8 subversion-1.7.0.tar.gz
3e514e0fba9c864d2d13763c22896d31496d7b0d subversion-1.7.0.tar.bz2

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0.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
   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Johan Corveleyn [4096R/010C8AAD] with fingerprint:
8AA2 C10E EAAD 44F9 6972  7AEA B59C E6D6 010C 8AAD
   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.7.x release series may be found at:

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

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

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

We are eager to hear your feedback about this release.  Please send
questions, comments, and bug reports to us...@subversion.apache.org.

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-rc4 Released

2011-09-28 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-rc4.
Please choose the mirror closest to you by visiting:

http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

181324f85926570b4923bb79df7ef8fe3764b9be subversion-1.7.0-rc4.tar.bz2
d7beaed69dccaf23dd30eb68d7c91f7f9d7b8202 subversion-1.7.0-rc4.zip
e5118c3f9b1585fa89209a174193189856a57cb2 subversion-1.7.0-rc4.tar.gz

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-rc4.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc4.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc4.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Johan Corveleyn [4096R/010C8AAD] with fingerprint:
8AA2 C10E EAAD 44F9 6972  7AEA B59C E6D6 010C 8AAD
   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

We anticipate this to be the last pre-release prior to the the release
of Subversion 1.7.0.  It is free of known serious issues, and barring
any critical issues found before then, we anticipate the final
Subversion 1.7.0 release to happen on Oct. 11.

As a note to operating system distro packagers: while we wish to have
this release candidate widely tested, we do not feel that it is ready
for packaging and providing to end-users through a distro package
system.  Packaging a release candidate poses many problems, the
biggest being that our policy lets us break compatibility between the
release candidate and the final release, if we find something serious
enough.  Having many users depending on a release candidate through
their distro would cause no end of pain and frustration that we do not
want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken
software, and explicitly destined to consenting developers and
integrators only, then we're okay with packaging the release candidate
there.  Just don't let it near the end users please.

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

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

You can find the list of changes between 1.7.0-rc4 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-rc4/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-rc3 Released

2011-09-14 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-rc3.
Please choose the mirror closest to you by visiting:

    http://subversion.apache.org/download/#pre-releases

(Note: It may take up to 24 hours for all mirrors to sync the release.)

The SHA1 checksums are:

0a1e80426720233bfdb8aaab1d97e3e8bd3ae82c subversion-1.7.0-rc3.zip
37c44ac69b132749deece46f853fdbfbe4d8b417 subversion-1.7.0-rc3.tar.bz2
6c62df9f66a9eb71df055ad8794e887716cd04a6 subversion-1.7.0-rc3.tar.gz

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-rc3.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc3.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc3.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Johan Corveleyn [4096R/010C8AAD] with fingerprint:
8AA2 C10E EAAD 44F9 6972  7AEA B59C E6D6 010C 8AAD
   Mark Phippard [1024D/035A96A9] with fingerprint:
D315 89DB E1C1 E9BA D218  39FD 265D F8A0 035A 96A9

This is a release candidate for what will eventually become Apache
Subversion 1.7.0. It is thought to be free of blocking issues, and if
none are found will become the final release. For this reason, we
encourage thorough testing in as many environments as possible. This
release candidate continues the four-week soak period to allow for
further testing, and barring show-stopping bugs, the final 1.7.0
release can be expected on or near Sept. 28.

Even though we feel that this release is ready for widespread testing
by the community, some things may still change before the final
release. Of particular note, please remember than persistent data,
such as the working copy or repository formats may change before the
final release, and there may not be an upgrade path from the
pre-releases to the final.

As a note to operating system distro packagers: while we wish to have
this release candidate widely tested, we do not feel that it is ready
for packaging
and providing to end-users through a distro package system.  Packaging
a release candidate poses many problems, the biggest being that our
policy lets us break compatibility between the release candidate and
the final release, if we find something serious enough.  Having many
users depending on a release candidate through their distro would
cause no end of pain and frustration that we do not want to have to
deal with.  However, if your distro has a branch that is clearly
labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only,
then we're okay with packaging the release candidate there.  Just
don't let it near the end users please.

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

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

You can find the list of changes between 1.7.0-rc3 and earlier versions at:

    http://svn.apache.org/repos/asf/subversion/tags/1.7.0-rc3/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-rc2 Released

2011-08-31 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-rc2, the
first public release candidate of Subversion 1.7.0.  Please choose the
mirror closest to you by visiting:

http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

691fd19a88908b10f4a96cbbd930ed359543d18b subversion-1.7.0-rc2.tar.bz2
261ae261bebce283ec3f4941641a536c7ffe7df2 subversion-1.7.0-rc2.tar.gz
e2b3d54b5aafc0414657d88646df8575801ee158 subversion-1.7.0-rc2.zip

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-rc2.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc2.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-rc2.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   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

This is a release candidate for what will eventually become Apache
Subversion 1.7.0.  It is thought to be free of blocking issues, and if
none are found will become the final release.  For this reason, we
encourage thorough testing in as many environments as possible.  This
release candidate begins the four-week soak period to allow for
further testing, and barring show-stopping bugs, the final 1.7.0
release can be expected on or near Sept. 28.

Even though we feel that this release is ready for widespread testing
by the community, some things may still change before the final
release. Of particular note, please remember than persistent data,
such as the working copy or repository formats may change before the
final release, and there may not be an upgrade path from the
pre-releases to the final.

As a note to operating system distro packagers: while we wish to have this
release candidate widely tested, we do not feel that it is ready for packaging
and providing to end-users through a distro package system.  Packaging a
release candidate poses many problems, the biggest being that our policy lets
us break compatibility between the release candidate and the final release, if
we find something serious enough.  Having many users depending on a release
candidate through their distro would cause no end of pain and frustration that
we do not want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only, then we're
okay with packaging the release candidate there.  Just don't let it near the
end users please.


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

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

You can find the list of changes between 1.7.0-rc2 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-rc2/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-beta3 Released

2011-08-11 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-beta3.
Please choose the mirror closest to you by visiting:

http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

fdd22605c83ad601810e9cd980116ebcde45ef20 subversion-1.7.0-beta3.tar.gz
65c2d68522e3aac8870a81d942d9962bb5399ed3 subversion-1.7.0-beta3.tar.bz2
e4a9b4c97db74cb2931466a14311db10a6220039 subversion-1.7.0-beta3.zip

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-beta3.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   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

This is a pre-release for what will eventually become Apache
Subversion 1.7.0.  There may still be minor issues, but all known
blocking issues have been fixed.

A pre-release means the Subversion developers feel that this release
is ready for widespread testing by the community.  Please use it at
your own risk, though we do encourage people to test this release
thoroughly.  Of particular note, please remember than persistent data,
such as the working copy or repository formats may change before the
final release, and there may not be an upgrade path from the
pre-releases to the final.

As a note to operating system distro packagers: while we wish to have this
release candidate widely tested, we do not feel that it is ready for packaging
and providing to end-users through a distro package system.  Packaging a
release candidate poses many problems, the biggest being that our policy lets
us break compatibility between the release candidate and the final release, if
we find something serious enough.  Having many users depending on a release
candidate through their distro would cause no end of pain and frustration that
we do not want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only, then we're
okay with packaging the release candidate there.  Just don't let it near the
end users please.


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

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

You can find the list of changes between 1.7.0-beta3 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-beta3/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-beta2 Released

2011-07-23 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-beta2.
Please choose the mirror closest to you by visiting:

http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

02ee27ce1158f987fd6507839d96775c63b94ff2 subversion-1.7.0-beta2.zip
0d6c5605eb369156aaa0329a2c7e8e92bffc79bf subversion-1.7.0-beta2.tar.gz
96d9a3ca607dda3e7889061d8276822f92b2b078 subversion-1.7.0-beta2.tar.bz2

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-beta2.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Mark Phippard [1024D/035A96A9] with fingerprint:
D315 89DB E1C1 E9BA D218  39FD 265D F8A0 035A 96A9

This is a pre-release for what will eventually become Apache
Subversion 1.7.0.  There may still be minor issues, but all known
blocking issues have been fixed.

A pre-release means the Subversion developers feel that this release
is ready for widespread testing by the community.  Please use it at
your own risk, though we do encourage people to test this release
thoroughly.  Of particular note, please remember than persistent data,
such as the working copy or repository formats may change before the
final release, and there may not be an upgrade path from the
pre-releases to the final.

As a note to operating system distro packagers: while we wish to have this
release candidate widely tested, we do not feel that it is ready for packaging
and providing to end-users through a distro package system.  Packaging a
release candidate poses many problems, the biggest being that our policy lets
us break compatibility between the release candidate and the final release, if
we find something serious enough.  Having many users depending on a release
candidate through their distro would cause no end of pain and frustration that
we do not want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only, then we're
okay with packaging the release candidate there.  Just don't let it near the
end users please.

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

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

You can find the list of changes between 1.7.0-beta2 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-beta2/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-alpha3 Released

2011-07-11 Thread Hyrum Wright
I'm happy to announce the release of Apache Subversion 1.7.0-alpha3.
Please choose the mirror closest to you by visiting:

http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

a13c576ce83758ddd1238ca7dbbdb99ade797d1c subversion-1.7.0-alpha3.tar.gz
c6e2832167bdce6d10bbb9974dff2c1b9b185701 subversion-1.7.0-alpha3.zip
886dcc0a98cd37f5c66a2fca11cd53463af68163 subversion-1.7.0-alpha3.tar.bz2

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-alpha3.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-alpha3.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-alpha3.zip.asc

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

   Paul T. Burba [1024D/53FCDC55] with fingerprint:
E630 CF54 792C F913 B13C  32C5 D916 8930 53FC DC55
   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Stefan Sperling [1024D/F59D25F0] with fingerprint:
B1CF 1060 A1E9 34D1 9E86  D6D6 E5D3 0273 F59D 25F0
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C

This is a pre-release for what will eventually become Apache Subversion
1.7.0.  It may contain known issues, a complete list of
1.7.0-blocking issues can be found here:


http://subversion.tigris.org/issues/buglist.cgi?component=subversionissue_status=NEWissue_status=STARTEDissue_status=REOPENEDtarget_milestone=1.7.0

A pre-release means the Subversion developers feel that this release
is ready for widespread testing by the community.  There are known issues
(and unknown ones!), so please use it at your own risk, though we do
encourage people to test this release thoroughly.  Of particular note, please
remember than persistent data, such as the working copy or repository
formats may change before the final release, and there may not be an
upgrade path from the pre-releases to the final.

As a note to operating system distro packagers: while we wish to have this
release candidate widely tested, we do not feel that it is ready for packaging
and providing to end-users through a distro package system.  Packaging a
release candidate poses many problems, the biggest being that our policy lets
us break compatibility between the release candidate and the final release, if
we find something serious enough.  Having many users depending on a release
candidate through their distro would cause no end of pain and frustration that
we do not want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only, then we're
okay with packaging the release candidate there.  Just don't let it near the
end users please.

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

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

You can find the list of changes between 1.7.0-alpha3 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-alpha3/CHANGES

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

Thanks,
- The Subversion Team


Apache Subversion 1.7.0-alpha2 Released

2011-06-23 Thread Hyrum Wright
I'm happy to announce Apache Subversion 1.7.0-alpha2, the next public
pre-release of the 1.7.x series, is now available.  Please choose the closest
mirror to you by visiting:

   http://subversion.apache.org/download/#pre-releases

The SHA1 checksums are:

05cebe1817e171e20dcf5ffa6dce96122175254e  subversion-1.7.0-alpha2.tar.gz
2c82a7247d3c86df3ac0671982e8853388ccc92b  subversion-1.7.0-alpha2.tar.bz2
4e5886bb02b34eb13bb9e1c64084538efcc671d9  subversion-1.7.0-alpha2.zip

PGP Signatures are available at:

http://www.apache.org/dist/subversion/subversion-1.7.0-alpha2.tar.bz2.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-alpha2.tar.gz.asc
http://www.apache.org/dist/subversion/subversion-1.7.0-alpha2.zip.asc

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Stefan Sperling [1024D/F59D25F0] with fingerprint:
B1CF 1060 A1E9 34D1 9E86  D6D6 E5D3 0273 F59D 25F0
   Hyrum K. Wright [1024D/4E24517C] with fingerprint:
3324 80DA 0F8C A37D AEE6  D084 0B03 AE6E 4E24 517C

This is a pre-release for what will eventually become Apache
Subversion 1.7.0.  It contains several known issues, a complete
list of 1.7.0-blocking issues can be found here:

   
http://subversion.tigris.org/issues/buglist.cgi?component=subversionissue_status=NEWissue_status=STARTEDissue_status=REOPENEDtarget_milestone=1.7.0

The term 'alpha' means the Subversion developers feel that this release
is ready for widespread testing by the community.  There are known issues
(and unknown ones!), so please use it at your own risk, though we do
encourage people to test this release thoroughly.  Of particular note, please
remember than persistent data, such as the working copy or repository
formats may change between the alpha and the final release, and there may
not be an upgrade path from the pre-releases to the final.

As a note to operating system distro packagers: while we wish to have this
release candidate widely tested, we do not feel that it is ready for packaging
and providing to end-users through a distro package system.  Packaging a
release candidate poses many problems, the biggest being that our policy lets
us break compatibility between the release candidate and the final release, if
we find something serious enough.  Having many users depending on a release
candidate through their distro would cause no end of pain and frustration that
we do not want to have to deal with.  However, if your distro has a branch that
is clearly labeled as containing experimental and often broken software, and
explicitly destined to consenting developers and integrators only, then we're
okay with packaging the release candidate there.  Just don't let it near the
end users please.

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

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

You can find the list of changes between 1.7.0-alpha2 and earlier versions at:

http://svn.apache.org/repos/asf/subversion/tags/1.7.0-alpha2/CHANGES

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

Thanks,
- The Subversion Team


Subversion 1.6.17 Released

2011-06-01 Thread Hyrum Wright
I'm happy to announce Subversion 1.6.17, available from:

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

This release addesses three security issues:
CVE-2011-1752: Server NULL-pointer dereference
CVE-2011-1783: Server memory exhaustion
CVE-2011-1921: mod_dav_svn exposure of unreadable paths

More information on these vulnerabilities, including the relevent advisories
and potential attack vectors and workarounds, can be found on the Subversion
security website:
http://subversion.apache.org/security/

The MD5 checksums are:

81e5dc5beee4b3fc025ac70c0b6caa14  subversion-1.6.17.tar.bz2
aa0f54aacac21bf5c84079e551357c15  subversion-1.6.17.tar.gz
a3a4dedd9ec782d3da4465694ce012d4  subversion-1.6.17.zip
1f01f237498555091269f2432ae1e140  subversion-deps-1.6.17.tar.bz2
1d99a1b4d56b5922ed1644a22c42c9e4  subversion-deps-1.6.17.tar.gz
7ec846c284e3d6e1689dfcbca06958ab  subversion-deps-1.6.17.zip

The SHA1 checksums are:

6e3ed7c87d98fdf5f0a999050ab601dcec6155a1  subversion-1.6.17.tar.bz2
2ddf55622f0a742d8474feaa69596b2f7c4f1084  subversion-1.6.17.tar.gz
ec9c3980150242129783529e7db6f5a04936d49a  subversion-1.6.17.zip
ebfda3416c09a91dbcf744a22ea83ed827ad3495  subversion-deps-1.6.17.tar.bz2
878fb197243435bfe44d45abff8875d4d98cd196  subversion-deps-1.6.17.tar.gz
a14f6abc14d38c2ce0e637edf83bce4534e19717  subversion-deps-1.6.17.zip

PGP Signatures are available at:

http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-1.6.17.zip.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.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
   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
   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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.17 and earlier versions at:

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

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

Thanks,
- The Subversion Team


Re: svn commit: r1096619 - in /subversion/trunk/subversion/libsvn_wc: translate.c translate.h workqueue.c

2011-04-25 Thread Hyrum Wright
FYI: This has a slight alteration in the post-commit work queue item
skel.  If you've got un-cleaned up working copies laying around, this
may negatively impact them. :)

(I went ahead with the commit, without a format bump, since work queue
items are short lived, and we don't make any promises of upgrading
them anyway.)

-Hyrum

On Mon, Apr 25, 2011 at 4:58 PM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Mon Apr 25 21:58:43 2011
 New Revision: 1096619

 URL: http://svn.apache.org/viewvc?rev=1096619view=rev
 Log:
 Create a single unified function to sync file permissions with those indicated
 by locks and various properties.  Use it in post-commit and other processing.

 Note: this removes a couple of optimizations in the post-commit work queue
 handler.  However, in doing so, we greatly simplify the code, and actually
 *reduce* the number of overall database accesses, which should actually speed
 things up.

 * subversion/libsvn_wc/translate.c
  (svn_wc__maybe_set_executable, svn_wc__maybe_set_read_only): Remove.
  (svn_wc__sync_flags_with_props): New.

 * subversion/libsvn_wc/translate.h
  (svn_wc__maybe_set_executable, svn_wc__maybe_set_read_only): Remove.
  (svn_wc__sync_flags_with_props): New.

 * subversion/libsvn_wc/workqueue.c
  (sync_file_flags): Make a simple wrapper around
    svn_wc__sync_flags_with_props().
  (install_committed_file): Remove extra parameters, and simply use the new
    function to do our dirty work.
  (process_commit_file_install): Remove extra params, and update a caller.
  (run_file_commit): Don't bother parsing the remove_executable and
    set_read_write flags.
  (svn_wc__wq_build_file_commit): Don't compute the internal propdiff.

 Modified:
    subversion/trunk/subversion/libsvn_wc/translate.c
    subversion/trunk/subversion/libsvn_wc/translate.h
    subversion/trunk/subversion/libsvn_wc/workqueue.c

 Modified: subversion/trunk/subversion/libsvn_wc/translate.c
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/translate.c?rev=1096619r1=1096618r2=1096619view=diff
 ==
 --- subversion/trunk/subversion/libsvn_wc/translate.c (original)
 +++ subversion/trunk/subversion/libsvn_wc/translate.c Mon Apr 25 21:58:43 2011
 @@ -342,89 +342,71 @@ svn_wc__expand_keywords(apr_hash_t **key
  }

  svn_error_t *
 -svn_wc__maybe_set_executable(svn_boolean_t *did_set,
 -                             svn_wc__db_t *db,
 -                             const char *local_abspath,
 -                             apr_pool_t *scratch_pool)
 +svn_wc__sync_flags_with_props(svn_boolean_t *did_set,
 +                              svn_wc__db_t *db,
 +                              const char *local_abspath,
 +                              apr_pool_t *scratch_pool)
  {
 -#ifndef WIN32
   svn_wc__db_status_t status;
   svn_wc__db_kind_t kind;
 -  apr_hash_t *props;
 +  svn_wc__db_lock_t *lock;
 +  apr_hash_t *props = NULL;

   if (did_set)
     *did_set = FALSE;

 -  SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
 +  /* ### We'll consolidate these info gathering statements in a future
 +         commit. */

 -  SVN_ERR(svn_wc__db_read_node_install_info(NULL, status, kind, NULL, NULL,
 -                                            NULL,
 -                                            db, local_abspath,
 -                                            scratch_pool, scratch_pool));
 +  SVN_ERR(svn_wc__db_read_info(status, kind, NULL, NULL, NULL, NULL, NULL,
 +                               NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
 NULL,
 +                               NULL, lock, NULL, NULL, NULL, NULL, NULL,
 +                               NULL, NULL, NULL, NULL, NULL,
 +                               db, local_abspath,
 +                               scratch_pool, scratch_pool));

   SVN_ERR(svn_wc__db_read_props(props, db, local_abspath, scratch_pool,
                                 scratch_pool));

 -  if (kind != svn_wc__db_kind_file
 -      || status != svn_wc__db_status_normal
 -      || props == NULL
 -      || ! apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING))
 -    return SVN_NO_ERROR; /* Not executable */
 +  /* We actually only care about the following flags on files, so just
 +     early-out for all other types. */
 +  if (kind != svn_wc__db_kind_file)
 +    return SVN_NO_ERROR;

 -  SVN_ERR(svn_io_set_file_executable(local_abspath, TRUE, FALSE,
 -                                     scratch_pool));
 +  /* If we get this far, we're going to change *something*, so just set
 +     the flag appropriately. */
   if (did_set)
     *did_set = TRUE;
 -#else
 -  if (did_set)
 -    *did_set = FALSE;
 -#endif
 -
 -  return SVN_NO_ERROR;
 -}
 -
 -
 -svn_error_t *
 -svn_wc__maybe_set_read_only(svn_boolean_t *did_set,
 -                            svn_wc__db_t *db,
 -                            const char *local_abspath,
 -                            apr_pool_t *scratch_pool)
 -{
 -  

Re: svn commit: r1091262 - /subversion/trunk/subversion/libsvn_wc/wc_db.c

2011-04-12 Thread Hyrum Wright
On Tue, Apr 12, 2011 at 8:00 AM, C. Michael Pilato cmpil...@collab.net wrote:
 You are looking at changelists as a way to learn how to move operations into
 wc_db properly, but just like that temp table for notifications I don't see
 this as the way to go forward.

 I really don't see why users want to add thousands of nodes to changelists
 while we still don't support changelists on directories. And if it is just a
 handful of nodes the old code worked fine.

 This was one of the wrestling matches that I had with myself when I started
 looking at this very bit of code that Hyrum has changed.  As I *understood*
 it, we had an internal goal of losing the svn_wc__node_walk_children().
 It's slow.  But in some cases -- namely this one -- it just seemed like
 doing so would require adding obnoxious or otherwise unpleasant code.

 Changelist operations are, I would suspect, pretty rare, so if folks don't
 like the approach Hyrum has taken, I would suggest that he just revert the
 whole of his effort in this space, delete notes/wc_node_walkers.txt, add a
 note to the svn_wc__node_walk_children() docstring encouraging developers to
 consider using a more batch-based approach if possible when considering
 additional uses of the function, and then move on.  If we're going to spin
 our wheels somewhere, let's not do it on our arguably lesser-used features,
 please.

The point of this entire exercise was not to make setting changelists
faster (though that is a nifty side effect), but rather to get more
insight into how we are going to deal with them when doing this type
of thing for use cases that do matter, such as recursive propset.
We've got changelists all over the code, and since the database can do
changelist filtering for us, I presumed that learning how to use that
capability would be a fruitful use of time.  I guess the insight is:
we can't do it using current methods.

I'll revert this work sometime today.

-Hyrum


Subversion 1.6.16 Released

2011-03-03 Thread Hyrum Wright
I'm happy to announce Subversion 1.6.16, available from:

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

In addition to the normal collection of bug fixes, and stability enhancements,
this release also addresses CVE-2011-0715, a remotely-triggerable DoS for
httpd-based Subversion servers.  More information can be found in the advisory:

http://subversion.apache.org/security/CVE-2011-0715-advisory.txt

The MD5 checksums are:

32f25a6724559fe8691d1f57a63f636e  subversion-1.6.16.tar.bz2
ead9183361819deab9127a224e5ebca0  subversion-1.6.16.tar.gz
e44805e1e6e28d2c961c59cb7970f3e6  subversion-1.6.16.zip
85255aee26e958fc988e6e56d6d1ac55  subversion-deps-1.6.16.tar.bz2
3790a1c43a83c1f6250e976a75420069  subversion-deps-1.6.16.tar.gz
1356f61e21a632557f65b699b3dd91cd  subversion-deps-1.6.16.zip

The SHA1 checksums are:

c1a050bd8ad2444eb6729b8a7f451960711af2df  subversion-1.6.16.tar.bz2
e957da04252d4d7e0fff72fdcf72c715bfbaa393  subversion-1.6.16.tar.gz
c4be34aaa3bddd8740b6ff692b864dd913e9951a  subversion-1.6.16.zip
7b2f768692f407ef5ba46af4704cb2d1dab440f9  subversion-deps-1.6.16.tar.bz2
549ae8803b0082a6531ee8ba00951037020f7e57  subversion-deps-1.6.16.tar.gz
74e88d2a6be0d3684fc81050b300e0c0db840664  subversion-deps-1.6.16.zip

PGP Signatures are available at:

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

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

   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
   Branko Čibej [2048R/C8628501] with fingerprint:
8769 28CD 4954 EA74 87B6  B96C 29B8 92D0 C862 8501
   Johan Corveleyn [4096R/010C8AAD] with fingerprint:
8AA2 C10E EAAD 44F9 6972  7AEA B59C E6D6 010C 8AAD
   Stefan Sperling [1024D/F59D25F0] with fingerprint:
B1CF 1060 A1E9 34D1 9E86  D6D6 E5D3 0273 F59D 25F0
   Ivan Zhakov [1024D/C4F3A281] with fingerprint:
9D3C 5860 6A64 74BF 591D  F3A1 F60D 1980 C4F3 A281

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.16 and earlier versions at:

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

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

Thanks,
- The Subversion Team


Re: svn commit: r1054701 - in /subversion/trunk/subversion/bindings/javahl/native: CopySources.cpp CreateJ.cpp EnumMapper.cpp ListCallback.cpp Revision.cpp RevisionRange.cpp StatusCallback.cpp org_apa

2011-01-10 Thread Hyrum Wright
On Mon, Jan 10, 2011 at 4:07 PM, Johan Corveleyn jcor...@gmail.com wrote:
 On Mon, Jan 3, 2011 at 7:34 PM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Mon Jan  3 18:34:35 2011
 New Revision: 1054701

 URL: http://svn.apache.org/viewvc?rev=1054701view=rev
 Log:
 Fix JavaHL build and test failures introduced in r1054680.

 * subversion/bindings/javahl/native/CreateJ.cpp,
  subversion/bindings/javahl/native/StatusCallback.cpp,
  subversion/bindings/javahl/native/CopySources.cpp,
  subversion/bindings/javahl/native/Revision.cpp,
  subversion/bindings/javahl/native/RevisionRange.cpp,
  subversion/bindings/javahl/native/EnumMapper.cpp,
  subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp,
  subversion/bindings/javahl/native/ListCallback.cpp:
    Update references to moved classes.

 Modified:
    subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp
    subversion/trunk/subversion/bindings/javahl/native/ListCallback.cpp
    subversion/trunk/subversion/bindings/javahl/native/Revision.cpp
    subversion/trunk/subversion/bindings/javahl/native/RevisionRange.cpp
    subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp
    
 subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

   snip ... 

 Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=1054701r1=1054700r2=1054701view=diff
 ==
 --- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
 +++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Mon Jan  
 3 18:34:35 2011
 @@ -31,7 +31,7 @@
  #include EnumMapper.h
  #include RevisionRange.h
  #include CreateJ.h
 -#include ../include/org_apache_subversion_javahl_Revision.h
 +#include ../include/org_apache_subversion_javahl_types_Revision.h

 Typo/Replace-o? This broke something:

No, but there was an omission.  I updated build.conf in r1057409 to
fix the problem.


    WARNING: ..\include\org_apache_subversion_javahl_types_Revision.h
 header not found, file subversion\bindings\javahl\native\CreateJ.cpp

 The .h file is still named ../include/org_apache_subversion_javahl_Revision.h

This is probably left over from the old package.  Running 'make
clean-javahl' should get rid of it.

-Hyrum


Re: svn commit: r1053915 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/

2010-12-30 Thread Hyrum Wright
On Thu, Dec 30, 2010 at 2:18 PM, Blair Zajac bl...@orcaware.com wrote:
 On 12/30/10 7:24 AM, hwri...@apache.org wrote:

 Author: hwright
 Date: Thu Dec 30 15:24:02 2010
 New Revision: 1053915

 URL: http://svn.apache.org/viewvc?rev=1053915view=rev
 Log:
 Address issue #3670 by providing a byte-array interface for property
 setting and creation in JavaHL.  This does not include a test (I'm hoping
 the bug reporter can provide one).

 This introduces overloaded versions of the propertySet() and
 propertyCreate()
 APIs.  I'm tempted to remove the originals, but didn't want to update the
 tests in this commit.

 [ in subversion/bindings/javahl/ ]
 * native/SVNClient.h,
   native/SVNClient.cpp
   (propertySet): Use a byte array in place of a string to constuct the
 C-API
     inputs.

 * native/org_apache_subversion_javahl_SVNClient.cpp
   (Java_org_apache_subversion_javahl_SVNClient_propertySet): Take a byte
 array
     as input.

 * src/org/apache/subversion/javahl/SVNClient.java
   (propertySet, propertyCreate): Introduce versions of these APIs which
 take
     byte[] values.

 * src/org/apache/subversion/javahl/ISVNClient.java:
   (propertySet, propertyCreate): Same.

 Modified:
     subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
     subversion/trunk/subversion/bindings/javahl/native/SVNClient.h

 subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

 subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java

 subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java

 Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
 URL:
 http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1053915r1=1053914r2=1053915view=diff

 ==
 --- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
 (original)
 +++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Thu
 Dec 30 15:24:02 2010
 @@ -870,7 +870,7 @@ void SVNClient::properties(const char *p
  }

  void SVNClient::propertySet(const char *path, const char *name,
 -                            const char *value, svn_depth_t depth,
 +                            JNIByteArrayvalue, svn_depth_t depth,
                              StringArraychangelists, bool force,
                              RevpropTablerevprops, CommitCallback
 *callback)
  {
 @@ -879,10 +879,11 @@ void SVNClient::propertySet(const char *
      SVN_JNI_NULL_PTR_EX(name, name, );

      svn_string_t *val;
 -    if (value == NULL)
 +    if (value.isNull())
        val = NULL;
      else
 -      val = svn_string_create(value, requestPool.pool());
 +      val = svn_string_ncreate((const char *)value.getBytes(),
 value.getLength(),

 Should this be value.getBytes(UTF-8)?

 +    public void propertySet(String path, String name, String value,
 +                            Depth depth, CollectionString  changelists,
 +                            boolean force,
 +                            MapString, String  revpropTable,
 +                            CommitCallback callback)
 +            throws ClientException
 +    {
 +        propertySet(path, name, value != null ? value.getBytes() : null,
 +                    depth, changelists, force, revpropTable, callback);

 And here?

 According to the Java docs:

 Encodes this String into a sequence of bytes using the platform's default
 charset, storing the result into a new byte array.  The platform's
 default may not be UTF-8.

Thanks for the review, but both of these instances have been removed
in subsequent commits.

-Hyrum


Subversion 1.5.9 Released

2010-12-22 Thread Hyrum Wright
I'm happy to announce the release of Subversion 1.5.9.  This release
is intended for users who are still running the 1.5 release line, and
contains a number of stability and performance fixes to previous 1.5.x
releases.  This release does *not* contain all the bug fixes and
features which are found in the most current release of Subversion,
1.6.15.  Subversion 1.5.9 is available from:

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

The MD5 checksums are:

d8de4f33decb9e608c8cfd43288ebe89  subversion-1.5.9.tar.bz2
973e87cd8aa64f44ed6b4e569c635abc  subversion-1.5.9.tar.gz
77c879a1b78e26a521618659ec4798c4  subversion-1.5.9.zip
50b4559ad6cef3caa810b80f1c18679c  subversion-deps-1.5.9.tar.bz2
1154485516cfb59db0f009b2d1a5c0cc  subversion-deps-1.5.9.tar.gz
5c75a3209507ec9e2f4edce73003fb85  subversion-deps-1.5.9.zip

The SHA1 checksums are:

f2299e41be933cf0376a4c32e8c2807b9f3e709e  subversion-1.5.9.tar.bz2
d755f97f82035add644495309c15d7ab9711c019  subversion-1.5.9.tar.gz
874235a6b79bfdb9a83fcb6f2066da7b1d9c0e4a  subversion-1.5.9.zip
9a89bba0da49d73949d5182375901abb80408429  subversion-deps-1.5.9.tar.bz2
2948f4611c43a2f7c070da4ad868e02d36d111e1  subversion-deps-1.5.9.tar.gz
fe8b20f2d94fc6d7f0892e334e9007b22a10cf22  subversion-deps-1.5.9.zip

PGP Signatures are available at:

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

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

   C. Michael Pilato [1024D/1706FD6E] with fingerprint:
20BF 14DC F02F 2730 7EA4  C7BB A241 06A9 1706 FD6E
   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
   Philip Martin [2048R/ED1A599C] with fingerprint:
A844 790F B574 3606 EE95  9207 76D7 88E1 ED1A 599C
   Mark Phippard [1024D/035A96A9] with fingerprint:
D315 89DB E1C1 E9BA D218  39FD 265D F8A0 035A 96A9

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

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

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

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

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

Thanks,
- The Subversion Team


Apache Subversion 1.6.15 Released

2010-11-24 Thread Hyrum Wright
I'm happy to announce Apache Subversion 1.6.15.  This release contains
several bug fixes, including two which can cause client-initiated
crashes on the server.  We encourage users to upgrade as soon as
reasonable.  Please note that Subversion 1.6.15 is the next release
after Subversion 1.6.13.  The 1.6.14 release was not published
publicly, due to issues found during testing.

Subversion 1.6.15 is available from:

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

The MD5 checksums are:

113fca1d9e4aa389d7dc2b210010fa69  subversion-1.6.15.tar.bz2
cd7d613d86eb6465fdaf0f34a6cfe9ec  subversion-1.6.15.tar.gz
8471a65812c3e6de86945143ebcf7a4b  subversion-1.6.15.zip
4aeb48233e62cf4afe9f5700ebed9150  subversion-deps-1.6.15.tar.bz2
db555a4c61cf928a99e10c9788a50149  subversion-deps-1.6.15.tar.gz
1d8c2d7f0e3d0cd8c8c79e7240effb1a  subversion-deps-1.6.15.zip

The SHA1 checksums are:

b6fadf944a94b86f989f07bc2d781be41df017bf  subversion-1.6.15.tar.bz2
e587227eff1cf86eec69336738a3aa38dae09dec  subversion-1.6.15.tar.gz
61103b1b1a4b753e0cb645b73239f1a9873b0efe  subversion-1.6.15.zip
29572d9d4e4a9bbcf6dab006011f5b1d411798b2  subversion-deps-1.6.15.tar.bz2
a29d2c13ad88272c01dc08bc62f88bc4cc53cd22  subversion-deps-1.6.15.tar.gz
f267d63925408b052b79c90e06b8a8ee9afc7d2c  subversion-deps-1.6.15.zip

PGP Signatures are available at:

http://subversion.tigris.org/downloads/subversion-1.6.15.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-1.6.15.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-1.6.15.zip.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.15.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.15.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.15.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.15 and earlier versions at:

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

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

Thanks,
- The Subversion Team


Re: svn commit: r1035773 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/ src/org/apache/subversion/javahl/type/

2010-11-16 Thread Hyrum Wright
On Tue, Nov 16, 2010 at 2:19 PM, Blair Zajac bl...@orcaware.com wrote:
 On 11/16/10 12:06 PM, hwri...@apache.org wrote:

 Author: hwright
 Date: Tue Nov 16 20:06:56 2010
 New Revision: 1035773

 URL: http://svn.apache.org/viewvc?rev=1035773view=rev
 Log:
 JavaHL: Move the Tristate class into the type package.

 Hyrum,

 Using type as a package name will cause compile failures if the bindingds
 are used in a Scala program as type is a reserved word, so having it
 appear in an import statement will cause problems.

 I suggest renaming type to to types so it's not a keyword in Scala.

Good suggestion.  I'll effect this change RSN.

-Hyrum


Re: svn commit: r1031265 - /subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py

2010-11-04 Thread Hyrum Wright
Bert,
If you get a minute, could you try this branch on Windows and see if
the tests are still broken there?  I've no way of testing this
locally, and would like to get it merged back to trunk at some point.

Thanks,
-Hyrum

On Thu, Nov 4, 2010 at 4:34 PM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Thu Nov  4 21:34:03 2010
 New Revision: 1031265

 URL: http://svn.apache.org/viewvc?rev=1031265view=rev
 Log:
 On the py-tests-as-modules branch:
 Fix running tests in parallel on this branch.

 * subversion/tests/cmdline/svntest/main.py
  (TestSpawningThread.run_one): Fix the path used to run the tests.

 Modified:
    
 subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py

 Modified: 
 subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py
 URL: 
 http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py?rev=1031265r1=1031264r2=1031265view=diff
 ==
 --- 
 subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py
  (original)
 +++ 
 subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py
  Thu Nov  4 21:34:03 2010
 @@ -1114,7 +1114,7 @@ class TestSpawningThread(threading.Threa
       self.run_one(next_index)

   def run_one(self, index):
 -    command = sys.argv[0]
 +    command = os.path.join(os.getcwd(), sys.argv[0])

     args = []
     args.append(str(index))





Re: svn commit: r1001084 - /subversion/branches/object-model/subversion/bindings/c++/include/Types.h

2010-10-04 Thread Hyrum Wright
On Fri, Sep 24, 2010 at 4:30 PM, Blair Zajac bl...@orcaware.com wrote:
 On 9/24/10 2:25 PM, hwri...@apache.org wrote:

 Author: hwright
 Date: Fri Sep 24 21:25:44 2010
 New Revision: 1001084

 URL: http://svn.apache.org/viewvc?rev=1001084view=rev
 Log:
 On the object-model branch:
 * subversion/bindings/c++/include/Types.h:
   (Lock): New wrapper for svn_lock_t.

 Modified:

 subversion/branches/object-model/subversion/bindings/c++/include/Types.h

 Modified:
 subversion/branches/object-model/subversion/bindings/c++/include/Types.h
 URL:
 http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/bindings/c%2B%2B/include/Types.h?rev=1001084r1=1001083r2=1001084view=diff

 ==
 ---
 subversion/branches/object-model/subversion/bindings/c++/include/Types.h
 (original)
 +++
 subversion/branches/object-model/subversion/bindings/c++/include/Types.h Fri
 Sep 24 21:25:44 2010
 @@ -172,6 +172,67 @@ class CommitInfo
      }
  };

 +class Lock
 +{
 +  private:
 +    Private::CStructWrapperLock, const svn_lock_t  m_lock;

 Hi Hryum,

 The Google C++ code style has private sections at the end of the file:

 http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Declaration_Order

 +    inline const std::string
 +    getPath() const
 +    {
 +      return std::string(m_lock-path);
 +    }

 All the methods that return a const std::string can return a non-const
 std::string since the caller will get a copy of the string.  This would also
 prevent callers from modifying the returned string, which is odd.

Thanks for the review.  I've addressed these two items in r1004422 and
r1004423, respectively.

-Hyrum


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: svn commit: r998296 - /subversion/trunk/subversion/include/svn_client.h

2010-09-22 Thread Hyrum Wright
On Wed, Sep 22, 2010 at 11:33 AM, Daniel Shahaf d...@daniel.shahaf.name wrote:
 And another stab:

 /**
  * Checkout a working copy from a repository.
  *
  * @param[out] result_rev
  *              If non-NULL, the value of the revision checked out form
  *              the repository [1].  (Useful when @a revision is of
  *              a kind other than #svn_opt_revision_number.)
  * @param[in] URL           The URL to checkout.
  * @param[in] peg_revision  The revision to look up URL at.
  * @param[in] revision  The revision of (URL,peg) to checkout. [2]
  * @param[in] path      Where to create the new working copy.
  * @param[in] depth
  *              Controls how many levels of file hierarchy to populate
  *              in the new working copy. If #svn_depth_unknown,
  *              then behave as for #svn_depth_infinity, except in the case
  *              of resuming a previous checkout of @a path (i.e., updating),
  *              in which case use the depth of the existing working copy.
  * @param[in] ignore_externals
  *              If @c TRUE, don't process externals definitions as part
  *              of this operation.
  *             �...@see SVN_PROP_EXTERNALS
  * @param[in] allow_unver_obstructions
  *              If @c TRUE, then tolerate existing
  *              unversioned items that obstruct incoming paths.  Only
  *              obstructions of the same type (file or dir) as the added
  *              item are tolerated.  The text of obstructing files is left
  *              as-is, effectively treating it as a user modification after
  *              the checkout.  Working properties of obstructing items are
  *              set equal to the base properties. br
 (huh? working props? base props? come again?)

This is copied directly from the previous docstring.  My hope is that
the new format helps us highlight (and fix) deficiencies such as this
one.

  *              If @c FALSE, then raise an error if there are any unversioned
  *              obstructing items.
  * @param[in] ctx
  *              The standard client context, used for authentication and
  *              notification.
  *
  * @return A pointer to an #svn_error_t of the type (this list is not
  *         exhaustive): br
  *         #SVN_ERR_UNSUPPORTED_FEATURE if @a URL refers to a file rather
  *           than a directory; br
  *         #SVN_ERR_RA_ILLEGAL_URL if @a URL does not exist; br
  *         #SVN_ERR_CLIENT_BAD_REVISION if @a revision is not one of
  *           #svn_opt_revision_number, #svn_opt_revision_head, or
  *           #svn_opt_revision_date. br
  *         If no error occurred, return #SVN_NO_ERROR.
  *
  * @since New in 1.5.
  *
  * @see #svn_depth_t br #svn_client_ctx_t br @ref clnt_revisions for
  *      a discussion of operative and peg revisions.
  */
 svn_error_t *
 svn_client_checkout3(svn_revnum_t *result_rev,
                     const char *URL,
                     const char *path,
                     const svn_opt_revision_t *peg_revision,
                     const svn_opt_revision_t *revision,
                     svn_depth_t depth,
                     svn_boolean_t ignore_externals,
                     svn_boolean_t allow_unver_obstructions,
                     svn_client_ctx_t *ctx,
                     apr_pool_t *scratch_pool);

 [1] For the [out] parameter, can we have @param[out,optional] and
 @param[out,mandatory] notations, or do we have to say may be NULL
 in the prose?)

@param[out] is part of the doxygen markup (not just some arbitrary
notation).  I don't know what it would do in the face of extra values
(see http://www.stack.nl/~dimitri/doxygen/commands.html#cmdparam)


 [2] How about introducing:

  struct svn_ra_node_t {
    const char *repos_relpath;
    svn_revnum_t peg;
  };

  struct svn_client_node_t {
    const char *path_or_URL;
    svn_opt_revision_t *peg;
  };

 (that will also help make the docstrings clearer)

You'd probably want to the revision in there too, much like we do for
svn_client_copy_source_t.  Both the peg revision and the operative
revision are used to specify a node (though in the absence of one, the
default is generally the other, I think).

-Hyrum


Re: svn commit: r998296 - /subversion/trunk/subversion/include/svn_client.h

2010-09-22 Thread Hyrum Wright
On Wed, Sep 22, 2010 at 8:40 PM, Daniel Shahaf d...@daniel.shahaf.name wrote:
 Hyrum Wright wrote on Wed, Sep 22, 2010 at 12:08:41 +0100:
 On Wed, Sep 22, 2010 at 11:33 AM, Daniel Shahaf d...@daniel.shahaf.name 
 wrote:
  [1] For the [out] parameter, can we have @param[out,optional] and
  @param[out,mandatory] notations, or do we have to say may be NULL
  in the prose?)

 @param[out] is part of the doxygen markup (not just some arbitrary
 notation).  I don't know what it would do in the face of extra values
 (see http://www.stack.nl/~dimitri/doxygen/commands.html#cmdparam)


 Well, the [mandatory] and [optional] could be a nice extension to that
 syntax.

Agreed, though I'm not sure the doxygen parser would handle it.

  [2] How about introducing:
 
   struct svn_ra_node_t {
     const char *repos_relpath;
     svn_revnum_t peg;
   };
 
   struct svn_client_node_t {
     const char *path_or_URL;
     svn_opt_revision_t *peg;
   };
 
  (that will also help make the docstrings clearer)

 You'd probably want to the revision in there too, much like we do for
 svn_client_copy_source_t.  Both the peg revision and the operative
 revision are used to specify a node (though in the absence of one, the
 default is generally the other, I think).


 Yeah, I can argue to have those structs both with/without the operative
 revision in them.

 Either way, what I had in mind was using these structs in APIs instead
 of having separate 'path' and 'peg_revision' arguments.  This will
 simplify docstrings (we can say the node instead of the path as it
 existed at the peg revision), and it's logically correct too (represent
 logical tuples as structs: the 'node', as one unit, is the target of the
 operation).

Quick thought: are there APIs which take an array of target
paths/urls, but only a single peg/operative revision pair?  Would
these need yet another struct?

-Hyrum


Re: svn commit: r998296 - /subversion/trunk/subversion/include/svn_client.h

2010-09-21 Thread Hyrum Wright
On Tue, Sep 21, 2010 at 10:25 PM, Daniel Shahaf d...@daniel.shahaf.name wrote:
 hwri...@apache.org wrote on Fri, Sep 17, 2010 at 20:04:53 -:
 Author: hwright
 Date: Fri Sep 17 20:04:53 2010
 New Revision: 998296

 URL: http://svn.apache.org/viewvc?rev=998296view=rev
 Log:
 * subversion/include/svn_client.h
   (svn_client_cat2): Rewrite docstring (see r997639).

 Modified:
     subversion/trunk/subversion/include/svn_client.h

 Modified: subversion/trunk/subversion/include/svn_client.h
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=998296r1=998295r2=998296view=diff
 ==
 --- subversion/trunk/subversion/include/svn_client.h (original)
 +++ subversion/trunk/subversion/include/svn_client.h Fri Sep 17 20:04:53 2010
 @@ -322,6 +322,10 @@ svn_client_get_ssl_client_cert_pw_prompt
   *
   * A brief word on operative and peg revisions.
   *
 + * If the kind of the peg revision is #svn_opt_revision_unspecified, then it
 + * defaults to #svn_opt_revision_head for URLs and #svn_opt_revision_working
 + * for local paths.
 + *
   * For deeper insight, please see the
   * a 
 href=http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html;
   * Peg and Operative Revisions/a section of the Subversion Book.
 @@ -4687,26 +4691,30 @@ svn_client_ls(apr_hash_t **dirents,
   */

  /**
 - * Output the content of file identified by @a path_or_url and @a
 - * revision to the stream @a out.  The actual node revision selected
 - * is determined by the path as it exists in @a peg_revision.  If @a
 - * peg_revision-kind is #svn_opt_revision_unspecified, then it defaults
 - * to #svn_opt_revision_head for URLs or #svn_opt_revision_working
 - * for WC targets.
 - *
 - * If @a path_or_url is not a local path, then if @a revision is of
 - * kind #svn_opt_revision_previous (or some other kind that requires
 - * a local path), an error will be returned, because the desired
 - * revision cannot be determined.
 - *
 - * Use the authentication baton cached in @a ctx to authenticate against the
 - * repository.
 + * Output the content of a file.
 + *
 + * @param[in] out           The stream to which the content will be written.
 + * @param[in] path_or_url   The path or URL of the file.
 + * @param[in] peg_revision  The peg revision.
 + * @param[in] revision  The operative revision.
 + * @param[in] ctx   The standard client context, used for possible
 + *                  authentication.
 + * @param[in] pool  Used for any temporary allocation.
   *
 - * Perform all allocations from @a pool.

 Sorry, but I like the old style better.  I could read it and actually
 understand what the function does; whereas text like

  * Output the content of a file.

This is *exactly* what the function does, without all the extra fluff.
 Everything else is just modifying behavior, several pieces of which
are common to many of our APIs, and so should have that documentation
extracted and linked to.  I'm just trying to save the effort of
reading five paragraphs of prose to find out what a single boolean
argument does.

The other problem is that the prose can make it hard to pick up on
inconsistent behavior, when something (such as depth defaults) isn't
the same between APIs.

  *
  * @param[in] out           The stream to which the content will be written.
  * @param[in] path_or_url   The path or URL of the file.
  * @param[in] peg_revision  The peg revision.

 tells me virtually nothing more than the signature does.

That being said, improvements are welcome, or we can just revert what
I've already done.

-Hyrum


Re: svn commit: r997639 - /subversion/trunk/subversion/include/svn_client.h

2010-09-16 Thread Hyrum Wright
On Thu, Sep 16, 2010 at 12:04 PM, Bert Huijben b...@qqmail.nl wrote:


 -Original Message-
 From: hwri...@apache.org [mailto:hwri...@apache.org]
 Sent: donderdag 16 september 2010 10:24
 To: comm...@subversion.apache.org
 Subject: svn commit: r997639 -
 /subversion/trunk/subversion/include/svn_client.h

 Author: hwright
 Date: Thu Sep 16 08:23:54 2010
 New Revision: 997639



 + *         than a directory; br
 + *         #SVN_ERR_RA_ILLEGAL_URL if @a URL does not exist; br
 + *         #SVN_ERR_CLIENT_BAD_REVISION if @a revision is not one of
 + *         #svn_opt_revision_number, #svn_opt_revision_head, or
 + *         #svn_opt_revision_date; br
 + *         #SVN_NO_ERROR otherwise.

 And after reading this as just an API user, how would you expect 
 authorization, network, filesystem and/or other errors to be reported?

 The old documentation documented a few specific errors and left the rest 
 open. This new documentation would tell me that we never report other errors 
 then this short (incomplete) list, while just checking out over an existing 
 working copy from a different repository will give an error that is not in 
 this list.

 And this function returns an svn_error_t* which (when not NULL) can contain 
 those error codes, or can be NULL/SVN_NO_ERROR. SVN_NO_ERROR and the specific 
 error codes should not be in the same list without some separation.

All good points.  Are you suggesting that the newer format is worse
than, or simply maintains the status quo from the older format?  The
user would have been equally surprised with the prior docstring, or
maybe this just highlights how poorly we do at documenting potential
error conditions.

What would you suggest to improve this documentation?  (And of course,
feel free to edit it directly.)

-Hyrum


Re: svn commit: r995478 [1/2] - in /subversion/branches/performance: ./ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/javahl/src/o

2010-09-09 Thread Hyrum Wright
On Thu, Sep 9, 2010 at 10:59 AM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Thu Sep  9 15:59:00 2010
 New Revision: 995478

 URL: http://svn.apache.org/viewvc?rev=995478view=rev
 Log:
 On the performance branch:
 Bring up-to-date with trunk.
...
 Modified: subversion/branches/performance/subversion/libsvn_subr/io.c
 URL: 
 http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_subr/io.c?rev=995478r1=995477r2=995478view=diff
 ==
 --- subversion/branches/performance/subversion/libsvn_subr/io.c (original)
 +++ subversion/branches/performance/subversion/libsvn_subr/io.c Thu Sep  9 
 15:59:00 2010
 @@ -1076,14 +1076,19 @@ svn_error_t *svn_io_file_create(const ch
  {
   apr_file_t *f;
   apr_size_t written;
 +  svn_error_t *err;

   SVN_ERR(svn_io_file_open(f, file,
                            (APR_WRITE | APR_CREATE | APR_EXCL),
                            APR_OS_DEFAULT,
                            pool));
 -  SVN_ERR(svn_io_file_write_full(f, contents, strlen(contents),
 -                                 written, pool));
 -  return svn_io_file_close(f, pool);
 +  err= svn_io_file_write_full(f, contents, strlen(contents),
 +                              written, pool);
 +
 +
 +  return svn_error_return(
 +                        svn_error_compose_create(err,
 +                                                 svn_io_file_close(f, 
 pool)));
  }

  svn_error_t *svn_io_dir_file_copy(const char *src_path,
 @@ -2952,12 +2957,19 @@ svn_io_write_unique(const char **tmp_pat
                     apr_pool_t *pool)
  {
   apr_file_t *new_file;
 +  svn_error_t *err;

   SVN_ERR(svn_io_open_unique_file3(new_file, tmp_path, dirpath,
                                    delete_when, pool, pool));
 -  SVN_ERR(svn_io_file_write_full(new_file, buf, nbytes, NULL, pool));
 -  SVN_ERR(svn_io_file_flush_to_disk(new_file, pool));
 -  return svn_io_file_close(new_file, pool);
 +
 +  err = svn_io_file_write_full(new_file, buf, nbytes, NULL, pool);
 +
 +  if (!err)
 +    err = svn_io_file_flush_to_disk(new_file, pool);
 +
 +  return svn_error_return(
 +                  svn_error_compose_create(err,
 +                                           svn_io_file_close(new_file, 
 pool)));
  }


 @@ -3521,15 +3533,17 @@ svn_io_read_version_file(int *version,
   apr_file_t *format_file;
   char buf[80];
   apr_size_t len;
 +  svn_error_t *err;

   /* Read a chunk of data from PATH */
   SVN_ERR(svn_io_file_open(format_file, path, APR_READ,
                            APR_OS_DEFAULT, pool));
   len = sizeof(buf);
 -  SVN_ERR(svn_io_file_read(format_file, buf, len, pool));
 +  err = svn_io_file_read(format_file, buf, len, pool);

   /* Close the file. */
 -  SVN_ERR(svn_io_file_close(format_file, pool));
 +  SVN_ERR(svn_error_compose_create(err,
 +                                   svn_io_file_close(format_file, pool)));

   /* If there was no data in PATH, return an error. */
   if (len == 0)
 @@ -3556,7 +3570,7 @@ svn_io_read_version_file(int *version,
   }

   /* Convert to integer. */
 -  *version = atoi(buf);
 +  SVN_ERR(svn_cstring_atoi(version, buf));

   return SVN_NO_ERROR;
  }
 @@ -3570,40 +3584,65 @@ contents_identical_p(svn_boolean_t *iden
                      const char *file2,
                      apr_pool_t *pool)
  {
 +  svn_error_t *err;
   apr_size_t bytes_read1, bytes_read2;
   char *buf1 = apr_palloc(pool, SVN__STREAM_CHUNK_SIZE);
   char *buf2 = apr_palloc(pool, SVN__STREAM_CHUNK_SIZE);
   apr_file_t *file1_h = NULL;
   apr_file_t *file2_h = NULL;
 +  svn_boolean_t done1 = FALSE;
 +  svn_boolean_t done2 = FALSE;

   SVN_ERR(svn_io_file_open(file1_h, file1, APR_READ, APR_OS_DEFAULT,
                            pool));
 -  SVN_ERR(svn_io_file_open(file2_h, file2, APR_READ, APR_OS_DEFAULT,
 -                           pool));
 +
 +  err = svn_io_file_open(file2_h, file2, APR_READ, APR_OS_DEFAULT,
 +                         pool);
 +
 +  if (err)
 +    return svn_error_return(
 +               svn_error_compose_create(err,
 +                                        svn_io_file_close(file1_h, pool)));

   *identical_p = TRUE;  /* assume TRUE, until disproved below */
 -  do
 +  while (! (done1 || done2))
     {
 -      SVN_ERR(svn_io_file_read_full2(file1_h, buf1,
 -                                     SVN__STREAM_CHUNK_SIZE, bytes_read1,
 -                                     TRUE, pool));
 -      SVN_ERR(svn_io_file_read_full2(file2_h, buf2,
 -                                     SVN__STREAM_CHUNK_SIZE, bytes_read2,
 -                                     TRUE, pool));
 +      err = svn_io_file_read_full(file1_h, buf1,
 +                                  SVN__STREAM_CHUNK_SIZE, bytes_read1, 
 pool);

Stefan,
This call, and the one following, needed to revert back to
svn_io_file_read_full(), since read_full2() was being stuck in an
infinite loop.  Perhaps you can investigate?

 +      if (err  

Re: svn commit: r995478 [1/2] - in /subversion/branches/performance: ./ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/javahl/src/o

2010-09-09 Thread Hyrum Wright
On Thu, Sep 9, 2010 at 4:34 PM, Stefan Fuhrmann
stefanfuhrm...@alice-dsl.de wrote:
 Hyrum Wright wrote:

 On Thu, Sep 9, 2010 at 10:59 AM,  hwri...@apache.org wrote:


 Author: hwright
 Date: Thu Sep  9 15:59:00 2010
 New Revision: 995478

 URL: http://svn.apache.org/viewvc?rev=995478view=rev
 Log:
 On the performance branch:
 Bring up-to-date with trunk.


 ...


 Modified: subversion/branches/performance/subversion/libsvn_subr/io.c
 URL:
 http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_subr/io.c?rev=995478r1=995477r2=995478view=diff

 ==
 --- subversion/branches/performance/subversion/libsvn_subr/io.c
 (original)
 +++ subversion/branches/performance/subversion/libsvn_subr/io.c Thu Sep
  9 15:59:00 2010
 @@ -1076,14 +1076,19 @@ svn_error_t *svn_io_file_create(const ch
  {
  apr_file_t *f;
  apr_size_t written;
 +  svn_error_t *err;

  SVN_ERR(svn_io_file_open(f, file,
                           (APR_WRITE | APR_CREATE | APR_EXCL),
                           APR_OS_DEFAULT,
                           pool));
 -  SVN_ERR(svn_io_file_write_full(f, contents, strlen(contents),
 -                                 written, pool));
 -  return svn_io_file_close(f, pool);
 +  err= svn_io_file_write_full(f, contents, strlen(contents),
 +                              written, pool);
 +
 +
 +  return svn_error_return(
 +                        svn_error_compose_create(err,
 +                                                 svn_io_file_close(f,
 pool)));
  }

  svn_error_t *svn_io_dir_file_copy(const char *src_path,
 @@ -2952,12 +2957,19 @@ svn_io_write_unique(const char **tmp_pat
                    apr_pool_t *pool)
  {
  apr_file_t *new_file;
 +  svn_error_t *err;

  SVN_ERR(svn_io_open_unique_file3(new_file, tmp_path, dirpath,
                                   delete_when, pool, pool));
 -  SVN_ERR(svn_io_file_write_full(new_file, buf, nbytes, NULL, pool));
 -  SVN_ERR(svn_io_file_flush_to_disk(new_file, pool));
 -  return svn_io_file_close(new_file, pool);
 +
 +  err = svn_io_file_write_full(new_file, buf, nbytes, NULL, pool);
 +
 +  if (!err)
 +    err = svn_io_file_flush_to_disk(new_file, pool);
 +
 +  return svn_error_return(
 +                  svn_error_compose_create(err,
 +                                           svn_io_file_close(new_file,
 pool)));
  }


 @@ -3521,15 +3533,17 @@ svn_io_read_version_file(int *version,
  apr_file_t *format_file;
  char buf[80];
  apr_size_t len;
 +  svn_error_t *err;

  /* Read a chunk of data from PATH */
  SVN_ERR(svn_io_file_open(format_file, path, APR_READ,
                           APR_OS_DEFAULT, pool));
  len = sizeof(buf);
 -  SVN_ERR(svn_io_file_read(format_file, buf, len, pool));
 +  err = svn_io_file_read(format_file, buf, len, pool);

  /* Close the file. */
 -  SVN_ERR(svn_io_file_close(format_file, pool));
 +  SVN_ERR(svn_error_compose_create(err,
 +                                   svn_io_file_close(format_file,
 pool)));

  /* If there was no data in PATH, return an error. */
  if (len == 0)
 @@ -3556,7 +3570,7 @@ svn_io_read_version_file(int *version,
  }

  /* Convert to integer. */
 -  *version = atoi(buf);
 +  SVN_ERR(svn_cstring_atoi(version, buf));

  return SVN_NO_ERROR;
  }
 @@ -3570,40 +3584,65 @@ contents_identical_p(svn_boolean_t *iden
                     const char *file2,
                     apr_pool_t *pool)
  {
 +  svn_error_t *err;
  apr_size_t bytes_read1, bytes_read2;
  char *buf1 = apr_palloc(pool, SVN__STREAM_CHUNK_SIZE);
  char *buf2 = apr_palloc(pool, SVN__STREAM_CHUNK_SIZE);
  apr_file_t *file1_h = NULL;
  apr_file_t *file2_h = NULL;
 +  svn_boolean_t done1 = FALSE;
 +  svn_boolean_t done2 = FALSE;

  SVN_ERR(svn_io_file_open(file1_h, file1, APR_READ, APR_OS_DEFAULT,
                           pool));
 -  SVN_ERR(svn_io_file_open(file2_h, file2, APR_READ, APR_OS_DEFAULT,
 -                           pool));
 +
 +  err = svn_io_file_open(file2_h, file2, APR_READ, APR_OS_DEFAULT,
 +                         pool);
 +
 +  if (err)
 +    return svn_error_return(
 +               svn_error_compose_create(err,
 +                                        svn_io_file_close(file1_h,
 pool)));

  *identical_p = TRUE;  /* assume TRUE, until disproved below */
 -  do
 +  while (! (done1 || done2))
    {
 -      SVN_ERR(svn_io_file_read_full2(file1_h, buf1,
 -                                     SVN__STREAM_CHUNK_SIZE,
 bytes_read1,
 -                                     TRUE, pool));
 -      SVN_ERR(svn_io_file_read_full2(file2_h, buf2,
 -                                     SVN__STREAM_CHUNK_SIZE,
 bytes_read2,
 -                                     TRUE, pool));
 +      err = svn_io_file_read_full(file1_h, buf1,
 +                                  SVN__STREAM_CHUNK_SIZE, bytes_read1,
 pool);


 Stefan,
 This call, and the one following, needed to revert back to
 svn_io_file_read_full(), since read_full2() was being stuck in an
 infinite

Re: svn commit: r990916 - in /subversion/trunk/subversion/bindings/javahl/native: ClientContext.cpp ClientContext.h

2010-08-30 Thread Hyrum Wright
On Mon, Aug 30, 2010 at 2:37 PM,  hwri...@apache.org wrote:
 Author: hwright
 Date: Mon Aug 30 19:37:05 2010
 New Revision: 990916

 URL: http://svn.apache.org/viewvc?rev=990916view=rev
 Log:
 JavaHL: Create a persistent C client context, in order to reuse the working
 copy context between client API invocations.

 Note: This introduces a test failure which I believe to be a manifestation of
 a bug in wc-ng.

For the interested, this is the test failure:

[[[
hwri...@orac:~/dev/svn-trunk2$ make check-javahl
/usr/lib/jvm/java-6-openjdk//bin/java
-Dtest.rootdir=/home/hwright/dev/svn-trunk2/subversion/bindings/javahl/test-work
-Dtest.srcdir=/home/hwright/dev/svn-trunk2/subversion/bindings/javahl
-Dtest.rooturl= -Dtest.fstype=
-Djava.library.path=subversion/bindings/javahl/native/.libs:/usr/local/lib
-classpath 
subversion/bindings/javahl/classes:/home/hwright/dev/svn-trunk2/subversion/bindings/javahl/src:/usr/share/java/junit.jar
-Dtest.tests= org.apache.subversion.javahl.RunTests
..E...
...
Time: 26.083
There was 1 error:
1) 
testBasicRevert(org.apache.subversion.javahl.BasicTests)org.apache.subversion.javahl.ClientException:
Attempted to lock an already-locked dir
svn: Working copy
'/home/hwright/dev/svn-trunk2/subversion/bindings/javahl/test-work/working_copies/basic_test19/X'
locked
SQLite error
svn: disk I/O error
svn: disk I/O error
svn: cannot rollback - no transaction is active
Working copy not locked; this is probably a bug, please report
svn: Working copy not locked at
'/home/hwright/dev/svn-trunk2/subversion/bindings/javahl/test-work/working_copies/basic_test19/X'.

at native.subversion.libsvn_wc(wc_db.c:8481)
at native.subversion.libsvn_subr(sqlite.c:118)
at native.subversion.libsvn_subr(sqlite.c:513)
at native.subversion.libsvn_subr(sqlite.c:211)
at native.subversion.libsvn_wc(wc_db.c:8276)
at native.subversion.libsvn_subr(sqlite.c:118)
at native.subversion.libsvn_wc(lock.c:1655)
at native.subversion.libsvn_wc(lock.c:1639)
at native.subversion.libsvn_wc(lock.c:1744)
at native.subversion.libsvn_wc(lock.c:1844)
at native.subversion.libsvn_client(revert.c:176)
at org.apache.subversion.javahl.SVNClient.revert(Native Method)
at 
org.apache.subversion.javahl.BasicTests.testBasicRevert(BasicTests.java:1332)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.apache.subversion.javahl.RunTests.main(RunTests.java:116)

FAILURES!!!
Tests run: 52,  Failures: 0,  Errors: 1

make: *** [check-javahl] Error 1
hwri...@orac:~/dev/svn-trunk2$
]]]

I believe it to be a legitimate bug, not only because the client APIs
are being used in a completely reasonable way, but also because the
output told me so. :)

-Hyrum


Re: svn commit: r984208 - /subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c

2010-08-11 Thread Hyrum Wright
On Wed, Aug 11, 2010 at 3:15 AM, Julian Foad julian.f...@wandisco.com wrote:
 On Tue, 2010-08-10, hwri...@apache.org wrote:
 Author: hwright
 Date: Tue Aug 10 20:59:29 2010
 New Revision: 984208

 URL: http://svn.apache.org/viewvc?rev=984208view=rev
 Log:
 On the ignore-mergeinfo branch:
 Fix a cast which was causing a segfault in stat test 32 as a result of the
 merge in r984206.

 Modified:
     subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c

 Modified: 
 subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c
 URL: 
 http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c?rev=984208r1=984207r2=984208view=diff
 ==
 --- subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c 
 (original)
 +++ subversion/branches/ignore-mergeinfo/subversion/libsvn_client/status.c 
 Tue Aug 10 20:59:29 2010
 @@ -127,7 +127,7 @@ tweak_status(void *baton,

        if (ignore)
          {
 -          ((svn_wc_status2_t *) status)-prop_status = svn_wc_status_normal;
 +          ((svn_wc_status3_t *) status)-prop_status = svn_wc_status_normal;

            if (!svn_wc__is_sendable_status(status, sb-no_ignore, 
 sb-get_all))
              return SVN_NO_ERROR;

 I haven't looked fully, but is a cast really necessary?
 svn_wc__is_sendable_status() takes a (svn_wc_status3_t *) as its first
 param, so isn't 'status' already the right type?

This is casting away const, so we can do the manipulation to fool
svn_wc__is_senable_status() into thinking the props weren't modified.

That being said, the current state of the branch (merged up to
r96) is such that svn_wc__is_sendable_status() no longer looks at
prop_status, instead just looking at the node_status.  End result:
this line will go away, replaced with something which digs a bit
deeper to determine what the appropriate node_status should be.  I'll
also probably end up doing a shallow copy of the status struct (if
needed) to avoid modifying a const.

Thanks for the review.

-Hyrum


Re: Perl API SVN::Ra get_commit_editor* functions broken, missing, untested

2010-07-13 Thread Hyrum Wright
On Mon, Jul 12, 2010 at 8:19 AM, Markus Kuhn markus.k...@cl.cam.ac.uk wrote:
 BUG REPORT: The test cases for the Perl API SVN::Ra at

  http://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/swig/perl/native/t/6ra.t

 currently lack tests for any of the functions needed to commit a change
 to the repository via the remote-access API layer. For starters, there
 are no tests for get_commit_editor, get_commit_editor2,
 get_commit_editor3. (The SVN::Ra man page even says that the author did
 not succeed in testing these functions ...)

 When I try to use e.g. get_commit_editor2 as suggested in the SVN::Ra
 man page, I just get an error message like

  TypeError in method 'svn_ra_get_commit_editor2', argument 5 of type 
 'svn_commit_callback2_t'

 A short example Perl script that reproduces this is attached below.

 Motivation: The remote-access layer API is very useful for applications
 (such as Web CGI editors) that want to commit changes without the
 overhead and disk-state involved with having to checkout a working
 directory first. Perl remains a popular CGI scripting language, which
 makes a well-tested, production-quality Perl SWIG binding for svn_ra.h
 highly desirable.

 See also: 
 http://mail-archives.apache.org/mod_mbox/subversion-users/201007.mbox/browser

Markus,
Thanks for your interest in the Perl bindings.  I agree that having
full and functioning Perl bindings is highly desirable, but
unfortunately, there aren't any active developers with the expertise
or time to maintain them properly.  As such, the Perl bindings haven't
been updated in quite some time.

It appears that you have some idea of what needs to be done, would you
like to try your hand at improving the Perl bindings?

Thanks,
-Hyrum


Subversion 1.6.12 Released

2010-06-21 Thread Hyrum Wright
I'm happy to announce Subversion 1.6.12, available from:

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

The MD5 checksums are:

a4b1d0d7f3a4587c59da9c1acf9dedd0  subversion-1.6.12.tar.bz2
ae008ac355581c90494fba86cbfc3413  subversion-1.6.12.tar.gz
bca3aeec62d8f1185ec5d4dd24c00675  subversion-1.6.12.zip
41a91aa26980236958ec508807003203  subversion-deps-1.6.12.tar.bz2
90f3422dffa659c3d2711fb9354f6cb6  subversion-deps-1.6.12.tar.gz
e3474f3ba6b0868d2847595fbf472e42  subversion-deps-1.6.12.zip

The SHA1 checksums are:

b4ae7c75abbbdade8b2c9122ca7e2e26c6468a82  subversion-1.6.12.tar.bz2
540ceebdc46721032f772bd713acc28496ec4ab8  subversion-1.6.12.tar.gz
35a6c5f9b24ccb61aad67d3c179270c706354971  subversion-1.6.12.zip
b34772925366a82851752322e005a24a9e96ad0c  subversion-deps-1.6.12.tar.bz2
9259af728425808cbf84a286555fc2d30a843eeb  subversion-deps-1.6.12.tar.gz
60f6c5b623e226b2be0d15c0189700d62a7b8918  subversion-deps-1.6.12.zip

PGP Signatures are available at:

http://subversion.tigris.org/downloads/subversion-1.6.12.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-1.6.12.zip.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.bz2.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz.asc
http://subversion.tigris.org/downloads/subversion-deps-1.6.12.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
   Arfrever Frehtes Taifersar Arahesis [4096R/7394B7E0] with fingerprint:
58BA 3F93 2C86 9DC4 AFF2  D33C 5537 FF0D 7394 B7E0
   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
   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.12 and earlier versions at:

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

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

Thanks,
- The Subversion Team


Re: deprecate all of svn_wc.h ?

2010-04-09 Thread Hyrum Wright
On Thu, Apr 8, 2010 at 10:02 PM, Greg Stein gst...@gmail.com wrote:

 Hey all,

 It has come up a few times on IRC discussions: we should never have
 exposed libsvn_wc, just libsvn_client.

 Well, we've already exposed it, so we need to at least keep that stuff
 around. But moving forward... should new functions continue to be
 exposed? Or should all new functions go into svn_wc_private.h?

 This question is (probably) directed at our (GUI) client developers.
 Do you ever use WC functions? And if you do, then which ones? Where is
 svn_client.h insufficient, leading you to use svn_wc.h APIs?

 Note: I think the separation is a Good Thing, for our benefit, but we
 don't necessarily have to expose the WC layer to downstream
 developers.


I am not a GUI client developer.

That being said: I don't think we should deprecate svn_wc.h until 2.0.
Don't get me wrong: I would like to dump all that stuff and not have to
worry about holding on to backward compat for new wc APIs going forward.
I'm just concerned that junking stuff now would result in mass confusion
when rev'ing stuff in svn_wc.h.  For instance, all the notification types
are defined as svn_wc_notify_*.  If we deprecate svn_wc.h, what happens when
we need to add another notification type in 1.8?  It seems like a lot of
work for whoever that unfortunate soul happens to be.

You rightly point out that things are a mess in the interface between
libsvn_client and libsvn_wc right now.  To really fix the problem, we need
to examine the interfaces, and move stuff there it more appropriately
belongs (e.g., notification should be it's own subsystem, *not* part of
libsvn_wc).  Whenever 2.0 happens, it will give us the chance to do that,
but fulling deprecating svn_wc.h right now is just a band-aid over a much
deeper problem, and will make things even worse.

-Hyrum


Re: svn commit: r931918 - /subversion/trunk/subversion/libsvn_client/merge.c

2010-04-08 Thread Hyrum Wright
And with this change, there are no more adm_access_t's in libsvn_client.
Yay!

On Thu, Apr 8, 2010 at 7:56 AM, philip phi...@apache.org wrote:

 Author: philip
 Date: Thu Apr  8 12:56:16 2010
 New Revision: 931918

 URL: http://svn.apache.org/viewvc?rev=931918view=rev
 Log:
 Remove an access baton from client merge.

 * subversion/libsvn_client/merge.c
  (merge_reintegrate_locked): Renamed from svn_client_merge_reintegrate,
   parameter target_wcpath renamed to target_abspath, parameter pool
   renamed to scratch_pool, remove access baton.
  (struct merge_reintegrate_baton, merge_reintegrate_cb): New
  (svn_client_merge_reintegrate): Gutted, uses svn_wc__call_with_write_lock.

 Modified:
subversion/trunk/subversion/libsvn_client/merge.c

...