[PATCH] Make ra_serf be more aggressive about closing directories in update

2012-06-18 Thread Justin Erenkrantz
One issue that I've come across in my recent analysis is that ra_serf
isn't always aggressive in closing directories when doing an update.
Specifically, when the directory propfind isn't received by the time
all of the files are processed, ra_serf won't look at the directory
handle again until everything is complete.  (It only evaluates when
closing the files.)  When doing a large checkout (like tags/), this
can be a bit problematic as we really need to be aggressive in
reclaiming all of the pools to keep our memory usage down as much as
possible.

This patch is unfinished...it solves the main issue, but there is some
corruption in the active_dir_propfinds (which I sort of tried to
address by using serf's allocator; which isn't a normal paradigm for
Subversion).  When I get back home today, I need to concentrate on my
pending cross-country move and starting my new position in NYC.  So,
it may be a few weeks before I get any real chance to look at this
again.

In the meantime, I know that Greg is planning to rewrite the XML
parsing in update.c to fit the new parsing paradigm that has been
introduced into other parts of ra_serf as well as getting the Propfind
depth:1 in.  My guess it that after the parsing rewrite and depth 1 is
complete, this issue may fall by the wayside...or not.

Hence, I'll just throw the current patch on the list for posterity.
When I come up for air again, I'll try to evaluate if it is still
needed.  FWIW, Instruments on OS X is awesome.  -- justin

Index: subversion/libsvn_ra_serf/update.c
===
--- subversion/libsvn_ra_serf/update.c  (revision 1351209)
+++ subversion/libsvn_ra_serf/update.c  (working copy)
@@ -48,6 +48,8 @@
 #include ra_serf.h
 #include ../libsvn_ra/ra_loader.h

+#include serf_bucket_util.h
+
 
 /*
  * This enum represents the current state of our XML parsing for a REPORT.
@@ -292,6 +294,7 @@ typedef struct report_fetch_t {
  */
 struct report_context_t {
   apr_pool_t *pool;
+  serf_bucket_alloc_t *allocator;

   svn_ra_serf__session_t *sess;
   svn_ra_serf__connection_t *conn;
@@ -348,7 +351,11 @@ struct report_context_t {

   /* completed PROPFIND requests (contains svn_ra_serf__handler_t) */
   svn_ra_serf__list_t *done_propfinds;
+  svn_ra_serf__list_t *done_dir_propfinds;

+  /* list of outstanding prop changes (contains report_dir_t) */
+  svn_ra_serf__list_t *active_dir_propfinds;
+
   /* list of files that only have prop changes (contains report_info_t) */
   svn_ra_serf__list_t *file_propchanges_only;

@@ -654,6 +661,7 @@ close_dir(report_dir_t *dir)
 }

   svn_pool_destroy(dir-dir_baton_pool);
+  printf(destroy: %p (%s)\n, dir-pool, dir-name);
   svn_pool_destroy(dir-pool);

   return SVN_NO_ERROR;
@@ -1888,6 +1896,7 @@ end_report(svn_ra_serf__xml_parser_t *parser,
*/
   if (!SVN_IS_VALID_REVNUM(info-dir-base_rev) || info-dir-fetch_props)
 {
+  svn_ra_serf__list_t *list_item;
   /* Unconditionally set fetch_props now. */
   info-dir-fetch_props = TRUE;

@@ -1897,7 +1906,7 @@ end_report(svn_ra_serf__xml_parser_t *parser,
  info-dir-url,
  ctx-target_rev, 0,
  all_props,
- ctx-done_propfinds,
+ ctx-done_dir_propfinds,
  info-dir-pool));
   SVN_ERR_ASSERT(info-dir-propfind_handler);

@@ -1906,6 +1915,11 @@ end_report(svn_ra_serf__xml_parser_t *parser,

   ctx-active_propfinds++;

+  list_item = serf_bucket_mem_alloc(ctx-allocator,
sizeof(*list_item));
+  list_item-data = info-dir;
+  list_item-next = ctx-active_dir_propfinds;
+  ctx-active_dir_propfinds = list_item;
+
   if (ctx-active_fetches + ctx-active_propfinds
REQUEST_COUNT_TO_PAUSE)
 ctx-parser_ctx-paused = TRUE;
@@ -2525,12 +2539,77 @@ finish_report(void *report_baton,
 }
   report-done_propfinds = NULL;

+  done_list = report-done_dir_propfinds;
+  while (done_list)
+{
+  svn_pool_clear(iterpool_inner);
+
+  report-active_propfinds--;
+
+  if (report-active_dir_propfinds)
+{
+  svn_ra_serf__list_t *cur, *prev;
+
+  cur = report-active_dir_propfinds;
+  prev = NULL;
+
+  while (cur)
+{
+  report_dir_t *item = cur-data;
+
+  if (item-propfind_handler == done_list-data)
+{
+  break;
+}
+
+  prev = cur;
+  cur = cur-next;
+}
+  if (cur)
+{
+  report_dir_t *cur_dir = cur-data;
+
+  while (cur_dir  !cur_dir-ref_count  

Re: Open mailing lists

2012-06-18 Thread Greg Stein
Darren,

Over a dozen sites mirror our archives, usually by grabbing our published
mbox for the list. As a result, we cannot control how they publish the
email addresses contained within. It is also important for those mboxes to
retain the email addresses for archival purposes, and so those third-party
systems can allow proper replies (hopefully, only by humans, but as you've
discovered... they are not all perfect).

Sorry for any inconvenience, but please don't blame us. We do try to
respect your privacy in our own web archive system.

Cheers,
-g
 On Jun 18, 2012 5:10 AM, s...@feb17.org wrote:

 Less than 2 months after using this mailing list I've started getting spam
 to the custom email address I used to post here.  I think it's terrible
 practice to openly publish email addresses in easily harvestable form.
  I'll be /dev/nulling this address and unsubscribing.  I hope you could
 reconsider that policy,

 Darren

 On Tue, Mar 13, 2012 at 10:05:52PM -0700, daz wrote:
  On Tue, Mar 13, 2012 at 07:58:10AM -0500, Hyrum K Wright wrote:
   On Tue, Mar 13, 2012 at 5:45 AM, Philip Martin
   philip.mar...@wandisco.com wrote:
s...@feb17.org writes:
   
A little more information on this.  I have probably rebuilt svn
 about 20 times tonight from scratch, with
 
  Thanks to everyone who contributed useful clues on this.  Using the
 current code tree and rebuilding with different versions and combinations
 of libraries I narrowed the problem down to the apr version.  Either the
 build of my earlier apr 1.3.9 or the version itself was the problem.  The
 test suite was super helpful and the explanation about XFAIL vs FAIL.   I
 have a build using apr 1.4.6 that passes all the tests it should pass and
 more importantly actually works.It might be helpful to print a reminder
 at the end of the default make step suggesting running the tests if this is
 a common problem.  There are a lot of dependencies and some of them seem to
 be a bit finicky.
 
  Thanks!
  Darren



Confusing error message when updating colliding externals

2012-06-18 Thread Markus Schaber
Hi,

From the #svn channel just a few minutes ago.

The error message clearly is not that helpful for normal users. Should I file 
an issue for that?


09:45  stummi hi there. I set an external. (svn propedit svn:externals . on 
the root of the working copy, with the Entry Extern 
svn://svnserver/externrepo). the extern directory Extern is on version 
control. But svn update says cannot relocate '.../mainrepo/Extern' as it is 
not the root of a working copy; try relocating '.../mainrepo' instead

 
09:46  stummi what does externals have to do with relocate? Or why does svn 
think i want to relocate anything? 
   
09:47  stummi svn version: svn, Version 1.7.5 (r1336830)

 
09:47  stummi from the debian repository 

10:13  schabi stummi: Was the Extern directory versioned (existing in the 
working copy) before you added the esternals definition?
 
10:13  stummi yes
 
10:13  schabi Then that is the problem. Externals are implemented via 
nested working copies (having their own .svn dubdirectory)currently.
 
10:13  stummi schabi, i just got fixed it in this moment. Didn't know the the 
directory should not exist for an external

10:14  schabi But the error message could be improved in that case...

10:14  stummi yeah, it is a bit confusing 


Best regards

Markus Schaber
-- 
___
We software Automation.

3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 | Fax 
+49-831-54031-50

Email: m.scha...@3s-software.com | Web: http://www.3s-software.com 
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects: 
http://www.3s-software.com/index.shtml?sample_projects

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade 
register: Kempten HRB 6186 | Tax ID No.: DE 167014915 




Connections get not closed

2012-06-18 Thread Joern Mueller
Hello all,

I already sent this issue to the users list some days ago, but so far did not 
get any hints from there. As this unclosed connections are really causing 
problems for our server, I´m consulting the devlist now also with it. (Sorry 
for crossposting.)

I'm using the svn 1.7.5 SDK on Win32 with VS2005. For some reason every call 
fetching data from the server opens up it's own socket connection but doesn't 
close it when data retrieval is finished. I tried this with for the functions 
svn_client_status4(), svn_client_update4() and svn_client_checkout3(), but I 
guess the problem is not specific to one or some functions. When examining the 
sockets in TCPView they are generally listed as 'established', some however 
even pop out of their host process and live on in the system process (PID:0) as 
'waiting' for some time. When closing down the application the remaining 
connections also go the latter way. This behaviour results in hundreds of open 
connections (e.g. when checking the status of all files of a project) which is 
more than the server can/should handle.

Please give me any advice if there is a possiblity to close svn connections by 
function call or by limiting the life span of connections when they are 
established. Of course I also will appreciate all other hints and ideas.
Please CC my e-mailaddress to any replies, as I´m not receiving the dev-list. 

Kind regards and Thanks in advance
Jörn Müller


Re: AW: Shell script to make a log message template

2012-06-18 Thread Julian Foad
The mail archive at http://svn.haxx.se/dev/archive-2012-06/0164.shtml 
presents it a bit better: the attachment is not base-64 encoded, and the 
message body is formatted better, but still not properly.


I am attaching the script again now, as plain text.  Apologies for attaching it 
as 'application/octet-stream' that time.

- Julian






 From: Markus Schaber m.scha...@3s-software.com

Its the link labelled svnlogmsg (application/octet-stream) - and it is 
base64 encoded, it seems.

Von: Carlos Andrade [carlosvia...@gmail.com]

Yes I was trying to find on that list but it wasn't tied on the reply that I 
saw the following message. Is there any specific location that the attachments 
are stored? I can't seem to find the attached script there. Sorry for the 
trouble and thank you!

On Jun 15, 2012, at 1:24 PM, Markus Schaber m.scha...@3s-software.com wrote:
 It's archived, like all
 mails on that list:

 http://mail-archives.apache.org/mod_mbox/subversion-dev/201206.mbox/%3C1339422092.76206.YahooMailNeo%40web87704.mail.ir2.yahoo.com%3E
 
 Von: Carlos Andrade [carlosvia...@gmail.com]

 Dears, could anyone please provide a pointer to the script and the original 
 email? I am not being able to
 locate it.

 On Jun 15, 2012, at 1:06 AM, Markus Schaber m.scha...@3s-software.com 
 wrote:
 Von: Stefan Fuhrmann [eq...@web.de]
 On 06/11/2012 03:41 PM, Julian Foad wrote:
 For anyone interested, attached is the shell script I use to generate a 
 log message template for a particular svn diff.
 [...]

 That script is brilliant! I hated writing log messages
 but now it's just a ~/svnlogmsg.sh | gedit 

 It even works when
 using cygwin bash and having the native windows svn.exe (sliksvn) in your 
path, without any slash vs backslash issues.

 Thanks a lot!

 Markus Schaber

#!/bin/bash
# Write a Subversion log message template to stdout. List the files that would
# be committed and attempt to list the names of functions changed. (The listing
# of functions is very unreliable.) Add a full diff for review and reference.
# Usage: $0 [dir/file...]

# Get a list of the files (and dirs) affected.
FILES=`svn st $@ | grep -v -E ^(\?|  L|X|Performing|DBG:|$) | sed 
's/^...//' | sort`

echo

# List the files affected, and attempt to list the functions affected.
for FILE in $FILES; do
  echo * $FILE
  # Find the names of the functions affected, and list them in parentheses.
  # Diff with no context ('-U0') to get more accurate function names.
  svn diff --depth=empty --diff-cmd diff -x '-U0 -p' $FILE |
sed -e s/^@@ [^@]* @@ .*\\(\([A-Za-z_][A-Za-z0-9_]*\) *(.*\|struct 
\([A-Za-z_][A-Za-z0-9_]*\)$\)/  (\2\3): / -e t -e d |
uniq
  echo
done

# Ensure svn doesn't include the diff with the log message when committing.
echo '--This line, and those below, will be ignored--'
echo

# Append the diff. Call 'svn diff' for each file separately, to get them
# in the same order as the list above.
for FILE in $FILES; do
  svn diff --depth=empty --diff-cmd diff -x -pu $FILE
done


Re: Confusing error message when updating colliding externals

2012-06-18 Thread Johan Corveleyn
Yes, I think it's a good idea to at least note this in the issue
tracker (makes it at least discoverable by other users running into
it). And if you know how to fix it ... that would be even better of
course :-). But even only having the issue is useful.

-- 
Johan

On Mon, Jun 18, 2012 at 10:21 AM, Markus Schaber
m.scha...@3s-software.com wrote:
 Hi,

 From the #svn channel just a few minutes ago.

 The error message clearly is not that helpful for normal users. Should I file 
 an issue for that?


 09:45  stummi hi there. I set an external. (svn propedit svn:externals . on 
 the root of the working copy, with the Entry Extern 
 svn://svnserver/externrepo). the extern directory Extern is on version 
 control. But svn update says cannot relocate '.../mainrepo/Extern' as it is 
 not the root of a working copy; try relocating '.../mainrepo' instead

 09:46  stummi what does externals have to do with relocate? Or why does svn 
 think i want to relocate anything?

 09:47  stummi svn version: svn, Version 1.7.5 (r1336830)

 09:47  stummi from the debian repository

 10:13  schabi stummi: Was the Extern directory versioned (existing in the 
 working copy) before you added the esternals definition?

 10:13  stummi yes

 10:13  schabi Then that is the problem. Externals are implemented via 
 nested working copies (having their own .svn dubdirectory)currently.

 10:13  stummi schabi, i just got fixed it in this moment. Didn't know the 
 the directory should not exist for an external

 10:14  schabi But the error message could be improved in that case...

 10:14  stummi yeah, it is a bit confusing


 Best regards

 Markus Schaber
 --
 ___
 We software Automation.

 3S-Smart Software Solutions GmbH
 Markus Schaber | Developer
 Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 | Fax 
 +49-831-54031-50

 Email: m.scha...@3s-software.com | Web: http://www.3s-software.com
 CoDeSys internet forum: http://forum.3s-software.com
 Download CoDeSys sample projects: 
 http://www.3s-software.com/index.shtml?sample_projects

 Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade 
 register: Kempten HRB 6186 | Tax ID No.: DE 167014915




Re: Open mailing lists

2012-06-18 Thread Hyrum K Wright
It should also be pointed out that a spammer could easily subscribe
directly to the list and get all the address information that way,
completely by passing any archives.

For completeness, the ASF's public archive policy, which we adhere to,
is here: http://www.apache.org/foundation/public-archives.html

Best,
-Hyrum

On Mon, Jun 18, 2012 at 3:20 AM, Greg Stein gst...@gmail.com wrote:
 Darren,

 Over a dozen sites mirror our archives, usually by grabbing our published
 mbox for the list. As a result, we cannot control how they publish the email
 addresses contained within. It is also important for those mboxes to retain
 the email addresses for archival purposes, and so those third-party systems
 can allow proper replies (hopefully, only by humans, but as you've
 discovered... they are not all perfect).

 Sorry for any inconvenience, but please don't blame us. We do try to respect
 your privacy in our own web archive system.

 Cheers,
 -g

 On Jun 18, 2012 5:10 AM, s...@feb17.org wrote:

 Less than 2 months after using this mailing list I've started getting spam
 to the custom email address I used to post here.  I think it's terrible
 practice to openly publish email addresses in easily harvestable form.  I'll
 be /dev/nulling this address and unsubscribing.  I hope you could reconsider
 that policy,

 Darren

 On Tue, Mar 13, 2012 at 10:05:52PM -0700, daz wrote:
  On Tue, Mar 13, 2012 at 07:58:10AM -0500, Hyrum K Wright wrote:
   On Tue, Mar 13, 2012 at 5:45 AM, Philip Martin
   philip.mar...@wandisco.com wrote:
s...@feb17.org writes:
   
A little more information on this.  I have probably rebuilt svn
about 20 times tonight from scratch, with
 
  Thanks to everyone who contributed useful clues on this.  Using the
  current code tree and rebuilding with different versions and combinations 
  of
  libraries I narrowed the problem down to the apr version.  Either the build
  of my earlier apr 1.3.9 or the version itself was the problem.  The test
  suite was super helpful and the explanation about XFAIL vs FAIL.   I have a
  build using apr 1.4.6 that passes all the tests it should pass and more
  importantly actually works.    It might be helpful to print a reminder at
  the end of the default make step suggesting running the tests if this is a
  common problem.  There are a lot of dependencies and some of them seem to 
  be
  a bit finicky.
 
  Thanks!
  Darren



-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/


Re: Open mailing lists

2012-06-18 Thread svn
On Mon, Jun 18, 2012 at 06:14:30AM -0500, Hyrum K Wright wrote:
 It should also be pointed out that a spammer could easily subscribe
 directly to the list and get all the address information that way,
 completely by passing any archives.
 
 For completeness, the ASF's public archive policy, which we adhere to,
 is here: http://www.apache.org/foundation/public-archives.html
 
 Best,
 -Hyrum

At least that's a tiny bit more work for them to sign up for every email
list serve in the world.  Harvesting openly published email addresses is
just too easy.   They would ideally never appear anywhere in the first
place so they couldn't be mirrored.  I understand your constrants but
I still think this is appalling from an engineering point of view and
won't participate if it means leaving a please spam me trail behind me.
Sorry,

Darren

 
 On Mon, Jun 18, 2012 at 3:20 AM, Greg Stein gst...@gmail.com wrote:
  Darren,
 
  Over a dozen sites mirror our archives, usually by grabbing our published
  mbox for the list. As a result, we cannot control how they publish the email
  addresses contained within. It is also important for those mboxes to retain
  the email addresses for archival purposes, and so those third-party systems
  can allow proper replies (hopefully, only by humans, but as you've
  discovered... they are not all perfect).
 
  Sorry for any inconvenience, but please don't blame us. We do try to respect
  your privacy in our own web archive system.
 
  Cheers,
  -g
 
  On Jun 18, 2012 5:10 AM, s...@feb17.org wrote:
 
  Less than 2 months after using this mailing list I've started getting spam
  to the custom email address I used to post here.  I think it's terrible
  practice to openly publish email addresses in easily harvestable form.  
  I'll
  be /dev/nulling this address and unsubscribing.  I hope you could 
  reconsider
  that policy,
 
  Darren
 
  On Tue, Mar 13, 2012 at 10:05:52PM -0700, daz wrote:
   On Tue, Mar 13, 2012 at 07:58:10AM -0500, Hyrum K Wright wrote:
On Tue, Mar 13, 2012 at 5:45 AM, Philip Martin
philip.mar...@wandisco.com wrote:
 s...@feb17.org writes:

 A little more information on this.  I have probably rebuilt svn
 about 20 times tonight from scratch, with
  
   Thanks to everyone who contributed useful clues on this.  Using the
   current code tree and rebuilding with different versions and 
   combinations of
   libraries I narrowed the problem down to the apr version.  Either the 
   build
   of my earlier apr 1.3.9 or the version itself was the problem.  The test
   suite was super helpful and the explanation about XFAIL vs FAIL.   I 
   have a
   build using apr 1.4.6 that passes all the tests it should pass and more
   importantly actually works.    It might be helpful to print a reminder at
   the end of the default make step suggesting running the tests if this is 
   a
   common problem.  There are a lot of dependencies and some of them seem 
   to be
   a bit finicky.
  
   Thanks!
   Darren
 
 
 
 -- 
 
 uberSVN: Apache Subversion Made Easy
 http://www.uberSVN.com/


Re: Open mailing lists

2012-06-18 Thread Daniel Shahaf
s...@feb17.org wrote on Mon, Jun 18, 2012 at 07:16:01 -0700:
 On Mon, Jun 18, 2012 at 06:14:30AM -0500, Hyrum K Wright wrote:
  It should also be pointed out that a spammer could easily subscribe
  directly to the list and get all the address information that way,
  completely by passing any archives.
  
  For completeness, the ASF's public archive policy, which we adhere to,
  is here: http://www.apache.org/foundation/public-archives.html
  
  Best,
  -Hyrum
 
 At least that's a tiny bit more work for them to sign up for every email
 list serve in the world.  Harvesting openly published email addresses is
 just too easy.   They would ideally never appear anywhere in the first
 place so they couldn't be mirrored.  I understand your constrants but
 I still think this is appalling from an engineering point of view and
 won't participate if it means leaving a please spam me trail behind me.

Nearly all open-source projects rely on email communications, and most
are publicly archived in 1 places.

You could use auto-expiring email addresses (for example,
address-$((1+$(date +%Y%m%d)))@domain) --- they are still valid but
pretty useless for spammers.

 Sorry,
 
 Darren
 
  
  On Mon, Jun 18, 2012 at 3:20 AM, Greg Stein gst...@gmail.com wrote:
   Darren,
  
   Over a dozen sites mirror our archives, usually by grabbing our published
   mbox for the list. As a result, we cannot control how they publish the 
   email
   addresses contained within. It is also important for those mboxes to 
   retain
   the email addresses for archival purposes, and so those third-party 
   systems
   can allow proper replies (hopefully, only by humans, but as you've
   discovered... they are not all perfect).
  
   Sorry for any inconvenience, but please don't blame us. We do try to 
   respect
   your privacy in our own web archive system.
  
   Cheers,
   -g
  
   On Jun 18, 2012 5:10 AM, s...@feb17.org wrote:
  
   Less than 2 months after using this mailing list I've started getting 
   spam
   to the custom email address I used to post here.  I think it's terrible
   practice to openly publish email addresses in easily harvestable form.  
   I'll
   be /dev/nulling this address and unsubscribing.  I hope you could 
   reconsider
   that policy,
  
   Darren
  
   On Tue, Mar 13, 2012 at 10:05:52PM -0700, daz wrote:
On Tue, Mar 13, 2012 at 07:58:10AM -0500, Hyrum K Wright wrote:
 On Tue, Mar 13, 2012 at 5:45 AM, Philip Martin
 philip.mar...@wandisco.com wrote:
  s...@feb17.org writes:
 
  A little more information on this.  I have probably rebuilt svn
  about 20 times tonight from scratch, with
   
Thanks to everyone who contributed useful clues on this.  Using the
current code tree and rebuilding with different versions and 
combinations of
libraries I narrowed the problem down to the apr version.  Either the 
build
of my earlier apr 1.3.9 or the version itself was the problem.  The 
test
suite was super helpful and the explanation about XFAIL vs FAIL.   I 
have a
build using apr 1.4.6 that passes all the tests it should pass and more
importantly actually works.    It might be helpful to print a reminder 
at
the end of the default make step suggesting running the tests if this 
is a
common problem.  There are a lot of dependencies and some of them seem 
to be
a bit finicky.
   
Thanks!
Darren
  
  
  
  -- 
  
  uberSVN: Apache Subversion Made Easy
  http://www.uberSVN.com/


Re: AW: Shell script to make a log message template

2012-06-18 Thread Carlos Andrade
Thank you very much! :)

Carlos Andrade
http://carlosandrade.co



2012/6/18 Julian Foad julianf...@btopenworld.com

 The mail archive at http://svn.haxx.se/dev/archive-2012-06/0164.shtml
 presents it a bit better: the attachment is not base-64 encoded, and the
 message body is formatted better, but still not properly.

 I am attaching the script again now, as plain text.  Apologies for
 attaching it as 'application/octet-stream' that time.

 - Julian


   --
 *From:* Markus Schaber m.scha...@3s-software.com
 **
 Its the link labelled svnlogmsg (application/octet-stream) - and it is
 base64 encoded, it seems.
 
 Von: Carlos Andrade [carlosvia...@gmail.com]

 Yes I was trying to find on that list but it wasn't tied on the reply that
 I saw the following message. Is there any specific location that the
 attachments are stored? I can't seem to find the attached script there.
 Sorry for the trouble and thank you!

 On Jun 15, 2012, at 1:24 PM, Markus Schaber m.scha...@3s-software.com
 wrote:
  It's archived, like all mails on that list:
 
 
 http://mail-archives.apache.org/mod_mbox/subversion-dev/201206.mbox/%3C1339422092.76206.YahooMailNeo%40web87704.mail.ir2.yahoo.com%3E
  
  Von: Carlos Andrade [carlosvia...@gmail.com]
 
  Dears, could anyone please provide a pointer to the script and the
 original email? I am not being able to locate it.
 
  On Jun 15, 2012, at 1:06 AM, Markus Schaber m.scha...@3s-software.com
 wrote:
  Von: Stefan Fuhrmann [eq...@web.de]
  On 06/11/2012 03:41 PM, Julian Foad wrote:
  For anyone interested, attached is the shell script I use to generate
 a log message template for a particular svn diff.
  [...]
 
  That script is brilliant! I hated writing log messages
  but now it's just a ~/svnlogmsg.sh | gedit 
 
  It even works when using cygwin bash and having the native windows
 svn.exe (sliksvn) in your path, without any slash vs backslash issues.
 
  Thanks a lot!
 
  Markus Schaber




Re: Open mailing lists

2012-06-18 Thread svn
Yes again sorry this is probably the wrong place to opine on this topic.
I generally use disposable email addresses but accidentally used a 
permanent long term address at one point, otherwise I'd just have
cut off the bleeding there.  I don't think it's easy for everyone to
generate lots of disposable addresses.

If there's any way of nuking this page, it would be appreciated

http://mail-archives.apache.org/mod_mbox/subversion-dev/201203.mbox/raw/%3c20120314050552.gm5...@clowder.feb17.org%3E

It doesn't appear to have been replicated yet.

I'm really sorry to disrupt the svn discussion.  I've
joined two open source mailing lists and been spammed as a result 100% of the
time, so it's buyer beware.  I think it would be wonderful if someone looked at 
the
list serve infrastructure and made it safer.  This feels like telnet circa 1995,

Adieu and thanks for listening,

Darren



 Nearly all open-source projects rely on email communications, and most
 are publicly archived in 1 places.
 
 You could use auto-expiring email addresses (for example,
 address-$((1+$(date +%Y%m%d)))@domain) --- they are still valid but
 pretty useless for spammers.
 
  Sorry,
  
  Darren
  
   
   On Mon, Jun 18, 2012 at 3:20 AM, Greg Stein gst...@gmail.com wrote:
Darren,
   
Over a dozen sites mirror our archives, usually by grabbing our 
published
mbox for the list. As a result, we cannot control how they publish the 
email
addresses contained within. It is also important for those mboxes to 
retain
the email addresses for archival purposes, and so those third-party 
systems
can allow proper replies (hopefully, only by humans, but as you've
discovered... they are not all perfect).
   
Sorry for any inconvenience, but please don't blame us. We do try to 
respect
your privacy in our own web archive system.
   
Cheers,
-g
   
On Jun 18, 2012 5:10 AM, s...@feb17.org wrote:
   
Less than 2 months after using this mailing list I've started getting 
spam
to the custom email address I used to post here.  I think it's terrible
practice to openly publish email addresses in easily harvestable form. 
 I'll
be /dev/nulling this address and unsubscribing.  I hope you could 
reconsider
that policy,
   
Darren
   
On Tue, Mar 13, 2012 at 10:05:52PM -0700, daz wrote:
 On Tue, Mar 13, 2012 at 07:58:10AM -0500, Hyrum K Wright wrote:
  On Tue, Mar 13, 2012 at 5:45 AM, Philip Martin
  philip.mar...@wandisco.com wrote:
   s...@feb17.org writes:
  
   A little more information on this.  I have probably rebuilt svn
   about 20 times tonight from scratch, with

 Thanks to everyone who contributed useful clues on this.  Using the
 current code tree and rebuilding with different versions and 
 combinations of
 libraries I narrowed the problem down to the apr version.  Either 
 the build
 of my earlier apr 1.3.9 or the version itself was the problem.  The 
 test
 suite was super helpful and the explanation about XFAIL vs FAIL.   I 
 have a
 build using apr 1.4.6 that passes all the tests it should pass and 
 more
 importantly actually works.    It might be helpful to print a 
 reminder at
 the end of the default make step suggesting running the tests if 
 this is a
 common problem.  There are a lot of dependencies and some of them 
 seem to be
 a bit finicky.

 Thanks!
 Darren
   
   
   
   -- 
   
   uberSVN: Apache Subversion Made Easy
   http://www.uberSVN.com/


Re: svn delete fails with 403 Forbidden if root is not readable

2012-06-18 Thread Dmitry Pavlenko
Hello again,

I've fixed the issue in SVNKit: http://svn.svnkit.com/repos/svnkit/trunk/ at 
r9286
The approach is to use common ancestor instead of repository root to run editor 
calls. For example, 
to remove paths:

directory/subdirectory1/file1
directory/subdirectory1/file2
directory/subdirectory2/file3

instead of running

openRoot();
opedDir(directory)

opedDir(directory/subdirectory1)
delete(directory/subdirectory1/file1)
delete(directory/subdirectory1/file2)
closeDir()

opedDir(directory/subdirectory2)
delete(directory/subdirectory1/file3)
closeDir()

closeDir()
closeDir()

on http://host/path as on the root one can run

opedRoot()

opedDir(subdirectory1)
delete(subdirectory1/file1)
delete(subdirectory1/file2)
closeDir()

opedDir(subdirectory2)
delete(subdirectory1/file3)
closeDir()

closeDir()

http://host/path/directory as on the common ancestor.

 Hello,
 Suppose you have a repository with authz:
 
 [/]
 * =
 [/directory]
 * = rw
 
 And the repository (http://localhost:43714/repos) contains a directory
 (with rw access) and a file in it. File deletion fails with the
 following stacktrace (tried with SVN r1350986):
 
 $ svn rm http://localhost:43714/repos/directory/file --username user
 --password password -m  subversion/svn/delete-cmd.c:90: (apr_err=130003)
 subversion/svn/util.c:913: (apr_err=130003)
 subversion/libsvn_client/delete.c:409: (apr_err=130003)
 subversion/libsvn_client/delete.c:315: (apr_err=130003)
 subversion/libsvn_client/delete.c:217: (apr_err=130003)
 subversion/libsvn_delta/deprecated.c:52: (apr_err=130003)
 subversion/libsvn_delta/path_driver.c:169: (apr_err=130003)
 subversion/libsvn_ra_serf/commit.c:1300: (apr_err=130003)
 subversion/libsvn_ra_serf/options.c:381: (apr_err=130003)
 subversion/libsvn_ra_serf/util.c:780: (apr_err=130003)
 subversion/libsvn_ra_serf/util.c:737: (apr_err=130003)
 subversion/libsvn_ra_serf/util.c:1980: (apr_err=130003)
 subversion/libsvn_ra_serf/util.c:1961: (apr_err=130003)
 subversion/libsvn_ra_serf/util.c:2418: (apr_err=130003)
 svn: E130003: The OPTIONS response contains invalid XML (403 Forbidden)
 
 With SVN 1.6 everything is ok.
 The problem is easily reproducible.


crash in svn_client_url_from_path2

2012-06-18 Thread Stefan Küng

Hi,

There's an access violation happening in svn_client_url_from_path2().
Stacktrace attached.

Seems there's a situation where work_del_relpath can be NULL. Can't 
figure out however what that situation exactly is.


Crash dump available here:
https://www.crash-server.com/Problem.aspx?ClientID=tsvnProblemID=1192

Stefan

--
   ___
  oo  // \\  De Chelonian Mobile
 (_,\/ \_/ \ TortoiseSVN
   \ \_/_\_/The coolest Interface to (Sub)Version Control
   /_/   \_\ http://tortoisesvn.net

libsvn_tsvn.dll!svn_relpath_dirname(const char * 
relpath=0x, apr_pool_t * pool=0x) Line 1238C
   libsvn_tsvn.dll!read_url_txn(void * baton=0x05c7eb50, 
 svn_wc__db_wcroot_t * wcroot=0x, const char * 
 local_relpath=0x, apr_pool_t * 
 scratch_pool=0x) Line 7419   C
libsvn_tsvn.dll!svn_sqlite__with_lock(svn_sqlite__db_t * 
db=0x, svn_error_t * (void *, svn_sqlite__db_t *, apr_pool_t *) 
* cb_func=0x05c7ec28, void * cb_baton=0x, apr_pool_t * 
scratch_pool=0x) Line 1117  C
libsvn_tsvn.dll!svn_wc__db_with_txn(svn_wc__db_wcroot_t * 
wcroot=0x05c7eb40, const char * local_relpath=0x05c7eb48, 
svn_error_t * (void *, svn_wc__db_wcroot_t *, const char *, apr_pool_t *) * 
cb_func=0x, void * cb_baton=0x, apr_pool_t * 
scratch_pool=0x) Line 203  C
libsvn_tsvn.dll!svn_wc__db_read_url(const char * * 
url=0x, svn_wc__db_t * db=0x, const char * 
local_abspath=0x05c7ec28, apr_pool_t * result_pool=0x, 
apr_pool_t * scratch_pool=0x) Line 7502C
libsvn_tsvn.dll!svn_wc__node_get_url(const char * * 
url=0x, svn_wc_context_t * wc_ctx=0x, const 
char * local_abspath=0x05c7ec28, apr_pool_t * 
result_pool=0x, apr_pool_t * scratch_pool=0x) 
Line 356C
libsvn_tsvn.dll!svn_client_url_from_path2(const char * * 
url=0x, const char * path_or_url=0x, 
svn_client_ctx_t * ctx=0x05c7ec40, apr_pool_t * 
result_pool=0x, apr_pool_t * scratch_pool=0x) 
Line 57 C


[PATCH]: Add 'replaced' value to ConflictDescriptor.Reason

2012-06-18 Thread Dmitry Pavlenko
Hi,

enum svn_wc_conflict_reason_t has 10 possible values but 
ConflictDescriptor.Reason from javahl only 6;
as I understand this is because some of svn_wc_conflict_reason_t values are 
experimental (for 1.8);
but anyway at least 1 of those values is released 
(svn_wc_conflict_reason_replaced that is for 1.7). So a corresponding value 
should be added to javahl.

If you accept this patch, I would also ask you to backport it to branches/1.7.x.

[[[
Add missing 'replace' value to ConflictDescriptor.Reason enum
corresponding to svn_wc_conflict_reason_replaced.

* 
subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
  (Reason): Add 'replace' value.
]]]
[[[
Index: 
subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
===
--- 
subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
 (revision 1351459)
+++ 
subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
 (working copy)
@@ -241,6 +241,11 @@ public class ConflictDescriptor
  * Object is already added or schedule-add.
  */
 added;
+
+/**
+ * Object is already replaced.
+ */
+replaced;
 }
 
 public enum Operation
]]]


Re: crash in svn_client_url_from_path2

2012-06-18 Thread Daniel Shahaf
I think it's a bug to pass url=NULL to svn_client_url_from_path2().  Are
you saying there is another bug here?

Stefan Küng wrote on Mon, Jun 18, 2012 at 21:04:53 +0200:
 Hi,

 There's an access violation happening in svn_client_url_from_path2().
 Stacktrace attached.

 Seems there's a situation where work_del_relpath can be NULL. Can't  
 figure out however what that situation exactly is.

 Crash dump available here:
 https://www.crash-server.com/Problem.aspx?ClientID=tsvnProblemID=1192

 Stefan

 -- 
___
   oo  // \\  De Chelonian Mobile
  (_,\/ \_/ \ TortoiseSVN
\ \_/_\_/The coolest Interface to (Sub)Version Control
/_/   \_\ http://tortoisesvn.net


   libsvn_tsvn.dll!svn_relpath_dirname(const char * 
 relpath=0x, apr_pool_t * pool=0x) Line 1238   
  C
  libsvn_tsvn.dll!read_url_txn(void * baton=0x05c7eb50, 
  svn_wc__db_wcroot_t * wcroot=0x, const char * 
  local_relpath=0x, apr_pool_t * 
  scratch_pool=0x) Line 7419   C
   libsvn_tsvn.dll!svn_sqlite__with_lock(svn_sqlite__db_t * 
 db=0x, svn_error_t * (void *, svn_sqlite__db_t *, apr_pool_t 
 *) * cb_func=0x05c7ec28, void * cb_baton=0x, 
 apr_pool_t * scratch_pool=0x) Line 1117  C
   libsvn_tsvn.dll!svn_wc__db_with_txn(svn_wc__db_wcroot_t * 
 wcroot=0x05c7eb40, const char * local_relpath=0x05c7eb48, 
 svn_error_t * (void *, svn_wc__db_wcroot_t *, const char *, apr_pool_t *) * 
 cb_func=0x, void * cb_baton=0x, apr_pool_t * 
 scratch_pool=0x) Line 203  C
   libsvn_tsvn.dll!svn_wc__db_read_url(const char * * 
 url=0x, svn_wc__db_t * db=0x, const char * 
 local_abspath=0x05c7ec28, apr_pool_t * 
 result_pool=0x, apr_pool_t * scratch_pool=0x) 
 Line 7502C
   libsvn_tsvn.dll!svn_wc__node_get_url(const char * * 
 url=0x, svn_wc_context_t * wc_ctx=0x, const 
 char * local_abspath=0x05c7ec28, apr_pool_t * 
 result_pool=0x, apr_pool_t * scratch_pool=0x) 
 Line 356C
   libsvn_tsvn.dll!svn_client_url_from_path2(const char * * 
 url=0x, const char * path_or_url=0x, 
 svn_client_ctx_t * ctx=0x05c7ec40, apr_pool_t * 
 result_pool=0x, apr_pool_t * scratch_pool=0x) 
 Line 57 C



Re: crash in svn_client_url_from_path2

2012-06-18 Thread Stefan Küng

On 18.06.2012 21:37, Daniel Shahaf wrote:

I think it's a bug to pass url=NULL to svn_client_url_from_path2().  Are
you saying there is another bug here?


I never pass NULL. Even if the call to svn_dirent_canonicalize() would 
return NULL I still pass an empty string in that situation.


Stack traces aren't always reliable what the shown data really is. But 
the exception code is (access violation) and the position where that 
happens. From there you have to go backwards, but the further backwards 
you go the more likely it is that the parameters shown in the stack 
trace are not the real ones anymore.


Stefan

--
   ___
  oo  // \\  De Chelonian Mobile
 (_,\/ \_/ \ TortoiseSVN
   \ \_/_\_/The coolest Interface to (Sub)Version Control
   /_/   \_\ http://tortoisesvn.net




Re: Connections get not closed

2012-06-18 Thread Stefan Sperling
On Mon, Jun 18, 2012 at 10:40:49AM +0200, Joern Mueller wrote:
 Hello all,
 
 I already sent this issue to the users list some days ago, but so far did not 
 get any hints from there. As this unclosed connections are really causing 
 problems for our server, I´m consulting the devlist now also with it. (Sorry 
 for crossposting.)
 
 I'm using the svn 1.7.5 SDK on Win32 with VS2005. For some reason every call 
 fetching data from the server opens up it's own socket connection but doesn't 
 close it when data retrieval is finished. I tried this with for the functions 
 svn_client_status4(), svn_client_update4() and svn_client_checkout3(), but I 
 guess the problem is not specific to one or some functions. When examining 
 the sockets in TCPView they are generally listed as 'established', some 
 however even pop out of their host process and live on in the system process 
 (PID:0) as 'waiting' for some time. When closing down the application the 
 remaining connections also go the latter way. This behaviour results in 
 hundreds of open connections (e.g. when checking the status of all files of a 
 project) which is more than the server can/should handle.
 
 Please give me any advice if there is a possiblity to close svn connections 
 by function call or by limiting the life span of connections when they are 
 established. Of course I also will appreciate all other hints and ideas.
 Please CC my e-mailaddress to any replies, as I´m not receiving the dev-list. 
 
 Kind regards and Thanks in advance
 Jörn Müller

Hi Jörn,

have you tried clearing (with svn_pool_clear()) or even destroying (with
svn_pool_destroy()) pools passed to the svn_client_* functions? That should
close sockets and also free other resource (temporary allocations, file
descriptors, etc.). You can clear a scratch_pool right after each call,
and a result_pool (if any) once you don't need the results anymore.


incorrect Last Changed Rev after upgrade from 1.6.17 to 1.7.5

2012-06-18 Thread Vincent Lefevre
I've upgraded Subversion from 1.6.17 to 1.7.5 (Debian/unstable).
And there's the following problem:

Subversion 1.7.5 no longer notices a change of revision of some file
when a parent directory has been moved. In particular, this yields
incorrect keyword expansion.

The bug can be reproduced with the following script:


#!/bin/sh

set -e

mkdir my-test-svn
cd my-test-svn

svnadmin create svn
svn co file://`pwd`/svn wc
cd wc

svn mkdir dir1
svn ci -m 'add dir1'

printf '\044Revision\044\nfoo\n'  dir1/file
svn add dir1/file
svn propset svn:keywords Revision dir1/file
svn ci -m 'add dir1/file'
echo File dir1/file:
cat dir1/file

svn up
svn mv dir1 dir2
echo File dir2/file:
cat dir2/file
svn ci -m 'mv dir1 dir2'
echo File dir2/file:
cat dir2/file

svn up
echo File dir2/file:
cat dir2/file
svn info dir2/file

svn mv dir2/file .
echo File file:
cat file
svn ci -m 'mv dir2/file .'
echo File file:
cat file

cd ../..
rm -rf my-test-svn


If I grep the output with '.Revision:\|Last Changed Rev:', I get:
  * svn 1.6.17 (r1128011): 2 2 3 3 3 -1 4
  * svn 1.7.5  (r1336830): 2 2 2 2 2 2 4

There are 4 differences, but only 3 really matter, because for the
last one (-1 vs 2), the commit hasn't been done yet (so that one is
in some intermediate state).

Thus the important differences (3 vs 2) correspond to:

svn ci -m 'mv dir1 dir2'
echo File dir2/file:
cat dir2/file

svn up
echo File dir2/file:
cat dir2/file
svn info dir2/file

The last test of the script shows that the problem doesn't occur
when the file itself is moved.

Because of that, when checking out a repository with svn 1.7.5, some
files seem to go back in time.

FYI, my bug report in the Debian BTS:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678075

-- 
Vincent Lefèvre vinc...@vinc17.net - Web: http://www.vinc17.net/
100% accessible validated (X)HTML - Blog: http://www.vinc17.net/blog/
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)


Re: incorrect Last Changed Rev after upgrade from 1.6.17 to 1.7.5

2012-06-18 Thread Greg Stein
In 1.6, we erroneously used the containing directory's revision for the
file in certain cases. 1.7 is correct: the file is not changed until r4.
Maybe the directory has, but that is independent of the file.

Cheers,
-g
On Jun 19, 2012 3:02 AM, Vincent Lefevre vincent-...@vinc17.net wrote:

 I've upgraded Subversion from 1.6.17 to 1.7.5 (Debian/unstable).
 And there's the following problem:

 Subversion 1.7.5 no longer notices a change of revision of some file
 when a parent directory has been moved. In particular, this yields
 incorrect keyword expansion.

 The bug can be reproduced with the following script:

 
 #!/bin/sh

 set -e

 mkdir my-test-svn
 cd my-test-svn

 svnadmin create svn
 svn co file://`pwd`/svn wc
 cd wc

 svn mkdir dir1
 svn ci -m 'add dir1'

 printf '\044Revision\044\nfoo\n'  dir1/file
 svn add dir1/file
 svn propset svn:keywords Revision dir1/file
 svn ci -m 'add dir1/file'
 echo File dir1/file:
 cat dir1/file

 svn up
 svn mv dir1 dir2
 echo File dir2/file:
 cat dir2/file
 svn ci -m 'mv dir1 dir2'
 echo File dir2/file:
 cat dir2/file

 svn up
 echo File dir2/file:
 cat dir2/file
 svn info dir2/file

 svn mv dir2/file .
 echo File file:
 cat file
 svn ci -m 'mv dir2/file .'
 echo File file:
 cat file

 cd ../..
 rm -rf my-test-svn
 

 If I grep the output with '.Revision:\|Last Changed Rev:', I get:
  * svn 1.6.17 (r1128011): 2 2 3 3 3 -1 4
  * svn 1.7.5  (r1336830): 2 2 2 2 2 2 4

 There are 4 differences, but only 3 really matter, because for the
 last one (-1 vs 2), the commit hasn't been done yet (so that one is
 in some intermediate state).

 Thus the important differences (3 vs 2) correspond to:

 svn ci -m 'mv dir1 dir2'
 echo File dir2/file:
 cat dir2/file

 svn up
 echo File dir2/file:
 cat dir2/file
 svn info dir2/file

 The last test of the script shows that the problem doesn't occur
 when the file itself is moved.

 Because of that, when checking out a repository with svn 1.7.5, some
 files seem to go back in time.

 FYI, my bug report in the Debian BTS:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678075

 --
 Vincent Lefèvre vinc...@vinc17.net - Web: http://www.vinc17.net/
 100% accessible validated (X)HTML - Blog: http://www.vinc17.net/blog/
 Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)