httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Justin Erenkrantz
In r951893, httpd modified a #define for APLOG_MARK to add in a new
parameter called APLOG_MODULE_INDEX (in addition to file and line
info).

This busts Subversion - specifically, mod_authz_svn which has a function called:

static void
log_access_verdict(const char *file, int line,
   const request_rec *r, int allowed,
   const char *repos_path, const char *dest_repos_path)

it is called with:

  log_access_verdict(APLOG_MARK, r, 1, repos_path, dest_repos_path);

Reading the very obtuse (unhelpful) commit log for r951893 as well as
any comments in that general area of http_log.h (which are lacking 
unhelpful), I have no idea what this APLOG_MODULE_INDEX is or why it's
even there.

Furthermore, this error case is very very hard to track down because
we're relying upon multiple levels of #define's and indirections
(hidden static variables??, weird STDC wrappers, redefinitions of
function names, etc, etc.).  So, it's not going to be obvious to
downstream developers what is going on and why it is broken.  In
general, I'm not quite sure it's a good idea to bust a #define that
has been the same since the 1.3 days (if not earlier actually).  If we
want modules to use a new optimized log API, then we should introduce
a new optimized log API and not bust the old one in a way that the
failure case isn't obvious to track down.

Yes, we could fix this by making mod_authz_svn conditional on the new
MMN, but - again, it's about even figuring out that the API is changed
and what to do about it.  The root cause is just way too obscured,
IMO.

(I wish I could veto this whole commit just on over-complication alone
- it's not an elegant solution at all.)

My $.02.  -- justin


Re: RFC: How should Subversion handle OS-deleted paths?

2010-08-25 Thread Julian Foad
On Tue, 2010-08-24 at 20:50 +0200, Alan Barrett wrote:
 On Tue, 24 Aug 2010, Julian Foad wrote:
  the as-yet-unavailable svn mv --retrospectively command [1],
 
 Is this is just a special case of the as-yet-unavailable
 --metadata-only option, which would tell svn to adjust its metadata as
 if some operation were performed, but not to touch anything outside the
 .svn directory (or wherever metadata is kept)?

Yes, that's basically what I meant, just aimed at the retrospective
subset of the possible use cases.

(For anyone not familiar with the history: neither of these options is a
planned feature and neither of them yet has a well defined meaning; they
are just made-up option names that are convenient reminders for talking
about some ideas that have been suggested.)

- Julian




RE: httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Plüm, Rüdiger, VF-Group
 

 -Original Message-
 From: justin.erenkra...@gmail.com 
 
 Sent: Mittwoch, 25. August 2010 08:14
 To: d...@httpd.apache.org
 Cc: Subversion Development
 Subject: httpd trunk broken with Subversion: ap_log_rerror busted
 
 In r951893, httpd modified a #define for APLOG_MARK to add in a new
 parameter called APLOG_MODULE_INDEX (in addition to file and line
 info).
 
 This busts Subversion - specifically, mod_authz_svn which has 
 a function called:
 
 static void
 log_access_verdict(const char *file, int line,
const request_rec *r, int allowed,
const char *repos_path, const char 
 *dest_repos_path)
 
 it is called with:
 
   log_access_verdict(APLOG_MARK, r, 1, repos_path, dest_repos_path);
 
 Reading the very obtuse (unhelpful) commit log for r951893 as well as
 any comments in that general area of http_log.h (which are lacking 
 unhelpful), I have no idea what this APLOG_MODULE_INDEX is or why it's
 even there.

It is needed for setting module specific log levels.

 
 Furthermore, this error case is very very hard to track down because
 we're relying upon multiple levels of #define's and indirections
 (hidden static variables??, weird STDC wrappers, redefinitions of
 function names, etc, etc.).  So, it's not going to be obvious to
 downstream developers what is going on and why it is broken.  In

I admit the code is complex and it needs some time to understand it
especially without the parallel information that was part of the discussion
on the dev@ list. So improvement proposals to the documentation are welcome
to make things easier to understand.
Basicly all this stuff is done to use the advanced features of C99 compilers
that allow us to check with low effort whether a call to the error logging
function is needed at all given the currently configured loglevel.
This should improve performance, especially as the new logging API encourages
to log even more details as it is now possible to limit the level of log detail
to specific modules or even requests.
For the gory details the dev@ archives should be consulted. See various
threads in March, April and May that all have loglevel in the subject.

 general, I'm not quite sure it's a good idea to bust a #define that
 has been the same since the 1.3 days (if not earlier actually).  If we
 want modules to use a new optimized log API, then we should introduce
 a new optimized log API and not bust the old one in a way that the
 failure case isn't obvious to track down.

The question is if we should consider APLOG_MARK as an isolated item
of the logging API or something that works only fine in conjunction with
the whole API.
When you get through the archives you will see that a lengthy discussion
with several patch iterations took place over several months in spring.
It was discussed specifically how to keep the pain level low for existing
modules that want

1. to use the new features of the API
2. that do not want to use the new features and just keep working as they are
   by just recompiling them against trunk.

The outcome was the current solution that should work fine for 90% or more
of the existing modules.
Unfortunately mod_authz_svn falls into the 10% where it does not work painless.
We have not found a way to do this painlessly for modules that have something
like log_access_verdict. These modules need code changes, but as said these
were seen as the minor number of cases.
 
 Yes, we could fix this by making mod_authz_svn conditional on the new
 MMN, but - again, it's about even figuring out that the API is changed
 and what to do about it.  The root cause is just way too obscured,
 IMO.

Trunk has a major bump, a major bump was done for this specific change,
there is an entry in the changelog for 2.3.6. The only thing that is missing
is an entry in http://httpd.apache.org/docs/trunk/new_features_2_4.html
in Module Developer Changes section.
And yes it should be mentioned there with some hints.
But as a whole I think there are a lot of pointers to this API change.

 
 (I wish I could veto this whole commit just on over-complication alone
 - it's not an elegant solution at all.)

Please take yourself sometime to catch up with the discussion that took
place on the list and you might understand the reasoning and motivations better
(Which does not mean that you need to agree with tehm :-)).
Hopefully this does not come across as the RTFA advice as it is not.
It is just hard to present all facets of a monthlong discussion in this reply.

Regards

Rüdiger


Re: svn commit: r987869 - /subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c

2010-08-25 Thread Stefan Fuhrmann
Stefan Sperling stsp_at_elego.de 
mailto:stsp_at_elego.de?Subject=Re:%20svn%20commit:%20r987869%20-%20/subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c 
wrote:


On Sun, Aug 22, 2010 at 11:37:38AM -, stefan2_at_apache.org wrote:
/ Author: stefan2 /
/ Date: Sun Aug 22 11:37:38 2010 /
/ New Revision: 987869 /
/ /
/ URL: http://svn.apache.org/viewvc?rev=987869view=rev 
http://svn.apache.org/viewvc?rev=987869view=rev /

/ Log: /
/ Fix VisualStudio build: memory size calculation for variable size /
/ arrays is not portable. /
/ /
/ * subversion/libsvn_fs_fs/temp_serializer.c /
/ (serialize_dir, serialize_txdelta_ops): fix array size calculation /
/ /
/ Modified: /
/ 
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c 
/

/ /
/ Modified: 
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c 
/
/ URL: 
http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c?rev=987869r1=987868r2=987869view=diff 
http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c?rev=987869r1=987868r2=987869view=diff 
/
/ 
== 
/
/ --- 
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c 
(original) /
/ +++ 
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c 
Sun Aug 22 11:37:38 2010 /

/ @@ -272,7 +272,7 @@ serialize_dir(apr_hash_t *entries, apr_p /
/ /
/ /* calculate sizes */ /
/ apr_size_t count = apr_hash_count(entries); /
/ - apr_size_t entries_len = sizeof(svn_fs_dirent_t*[count]); /
/ + apr_size_t entries_len = count * sizeof(svn_fs_dirent_t*[1]); /

Do you really want the second asterisk in that line?
It looks like you really want this:

 + apr_size_t entries_len = count * sizeof(svn_fs_dirent_t[1]);


No, it actually is an array of pointers. So, every element can be
serialized along with all its sub-elements as a single, contiguous
chunk of memory.


/ /
/ /* copy the hash entries to an auxilliary struct of known layout */ /
/ hash_data.count = count; /
/ @@ -422,7 +422,7 @@ serialize_txdelta_ops(svn_temp_serialize /
/ /* the ops form a simple chunk of memory with no further references 
*/ /

/ svn_temp_serializer__push(context, /
/ (const void * const *)ops, /
/ - sizeof(svn_txdelta_op_t[count])); /
/ + count * sizeof(svn_txdelta_op_t[1])); /

Because you're not using the extra asterisk here, either.


I picked up the count*sizeof(T[1]) idiom from come STL implementations.
They were probably working around some non-standard compiler behavior
somewhere. Since that turned out to be unnecessary, I dropped the confusing
[1] in r988898.

-- Stefan^2.



Re: httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Rainer Jung

On 25.08.2010 10:59, Plüm, Rüdiger, VF-Group wrote:

-Original Message-
From: justin.erenkra...@gmail.com



Yes, we could fix this by making mod_authz_svn conditional on the new
MMN, but - again, it's about even figuring out that the API is changed
and what to do about it.  The root cause is just way too obscured,
IMO.


Trunk has a major bump, a major bump was done for this specific change,
there is an entry in the changelog for 2.3.6. The only thing that is missing
is an entry in http://httpd.apache.org/docs/trunk/new_features_2_4.html
in Module Developer Changes section.
And yes it should be mentioned there with some hints.


There's also a first stab about API changes at

http://httpd.apache.org/docs/trunk/developer/new_api_2_4.html#http_log

(new document, started by Nick in June)

Regards,

Rainer


RE: httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Plüm, Rüdiger, VF-Group
 

 -Original Message-
 From: Rainer Jung 
 Sent: Mittwoch, 25. August 2010 11:15
 To: d...@httpd.apache.org
 Cc: Subversion Development
 Subject: Re: httpd trunk broken with Subversion: ap_log_rerror busted
 
 On 25.08.2010 10:59, Plüm, Rüdiger, VF-Group wrote:
  -Original Message-
  From: justin.erenkra...@gmail.com
 
  Yes, we could fix this by making mod_authz_svn conditional 
 on the new
  MMN, but - again, it's about even figuring out that the 
 API is changed
  and what to do about it.  The root cause is just way too obscured,
  IMO.
 
  Trunk has a major bump, a major bump was done for this 
 specific change,
  there is an entry in the changelog for 2.3.6. The only 
 thing that is missing
  is an entry in 
 http://httpd.apache.org/docs/trunk/new_features_2_4.html
  in Module Developer Changes section.
  And yes it should be mentioned there with some hints.
 
 There's also a first stab about API changes at
 
 http://httpd.apache.org/docs/trunk/developer/new_api_2_4.html#http_log

Maybe we should put a link to

http://httpd.apache.org/docs/trunk/developer/new_api_2_4.html in the
Module Developer Changes section in 
http://httpd.apache.org/docs/trunk/new_features_2_4.html

Regards

Rüdiger


Re: About character encoding of the text files

2010-08-25 Thread Daniel Shahaf
B Smith-Mannschott wrote on Wed, Aug 25, 2010 at 07:54:26 +0200:
 On Tue, Aug 24, 2010 at 21:19, Ivan Cenov i_ce...@botevgrad.com wrote:
 
   Hello,
 
  This is my first post in this list. I was pointed to post here in another
  thread
  ViewVC site (http://viewvc.tigris.org/issues/show_bug.cgi?id=11).
 
  The original reason was that ViewVC is unable to show correctly text files
  that contain Cyrillic characters (character set windows-1251). (The same
  issue
  is related for Western Europe's characters too.)
  People told me that ViewVC cannot do this because it lacks of encoding
  information. This information should come from Subversion and
  Subversion could have this information if the users have supplied it into
  Subversion.
  The last posts in above mentioned thread give more information about the
  problem.
 
  As I understood, information about character encoding may be supplied as
  svn: property, say, svn:encoding encoding_type. Par example:
  svn:encoding windows-1251.
 
  So, are there any intentions among the Subversion developers and users to
  be defined
  such property? Would it be reliable way for this task?
  If there is an issue about this problem, what is its priority?
 
 
 The property svn:mime-type carries charset information as an additional
 field:
 
 $ svn propset svn:mime-type text/plain;charset=Windows-1251 file1.txt
 file2.txt ...
 

Ben, does svnbook document this syntax (and when to use it)?

(or the $Keyword::$ syntax, while I'm at it)

 // ben


Re: git diff format support

2010-08-25 Thread Daniel Shahaf
Stefan Sperling wrote on Tue, Aug 24, 2010 at 23:03:24 +0200:
 On Tue, Aug 24, 2010 at 07:51:28PM +0300, anatoly techtonik wrote:
  Good to know. Is it worth to rename it to `svn diff --git` for
  unification with Mercurial?
 
 I suppose we could rename the option to --git, yes.
 Do you want to send a patch that does so?

If yes, make sure to update all the tests too...

 See http://subversion.apache.org/docs/community-guide/general.html#patches
 
 Thanks,
 Stefan


Re: Performance branch - svnserve crash in fs_history_prev

2010-08-25 Thread Stefan Fuhrmann

Johan Corveleyn wrote:

Hi,

I've taken the performance branch for a spin. Some of performance
increases are awesome (svn log is ~4 times faster on my machine
(tested with a file with 300 revisions)).
  

Try playing with the -c, -F and -M parameters. They should
yield result in even better performance. With sufficient memory
allotted to the server process, second runs of svn log, for
instance, will be10x faster than the first run

However, I also experienced a crash of svnserve, for both svn log
and svn blame of a big file with 2000 revisions (so this is quite
an extreme case). See both .log files in attachment. Something goes
wrong in svn_fs_fs__id_deserialize, during processing of
fs_history_prev.
  

Hm, I couldn't reproduce that problem so far even with large
repositories. Could you rerun your tests in debug mode?
The stack trace should be more reliable then (e.g. data_len
on level #3 is either bogus or the reason for the crash).

I also have crash dump files of the crashes. If you want those, let me
know and I'll send them via private email.

This was on Windows XP, a release build with VCE 2008.

Since I don't have the same binaries and PDB files that you used,
the crash dumps will probably not tell me much more than the
text files that you posted.

Thanks for testing!

-- Stefan^2.


Re: svn commit: r988956 - /subversion/trunk/subversion/libsvn_wc/update_editor.c

2010-08-25 Thread Philip Martin
phi...@apache.org writes:

 Author: philip
 Date: Wed Aug 25 09:55:35 2010
 New Revision: 988956

 URL: http://svn.apache.org/viewvc?rev=988956view=rev
 Log:
 Fix some uses of unitialised variables identified by valgrind.

 * subversion/libsvn_wc/update_editor.c
   (add_directory, add_file): Set conflicted if svn_wc__db_read_info fails.

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

 Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=988956r1=988955r2=988956view=diff
 ==
 --- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
 +++ subversion/trunk/subversion/libsvn_wc/update_editor.c Wed Aug 25 09:55:35 
 2010
 @@ -2357,6 +2357,7 @@ add_directory(const char *path,
svn_error_clear(err);
wc_kind = svn_wc__db_kind_unknown;
status = svn_wc__db_status_normal;
 +  conflicted = FALSE;
  
versioned_locally_and_present = FALSE;
  }
 @@ -3808,6 +3809,7 @@ add_file(const char *path,
svn_error_clear(err);
wc_kind = svn_wc__db_kind_unknown;
status = svn_wc__db_status_normal;
 +  conflicted = FALSE;
  
versioned_locally_and_present = FALSE;
  }

Could someone confirm that FALSE is correct here?

-- 
Philip


Re: svn commit: r988627 - in /subversion/trunk/subversion: bindings/javahl/native/ include/ libsvn_client/ svn/

2010-08-25 Thread Julian Foad
On Tue, 2010-08-24, hwri...@apache.org wrote:
 Log:
 Move the commit callback out of the client context and into the individual 
 APIs
 which require it.

Hurrah!

Reviewed and looks good.

- Julian


 * subversion/bindings/javahl/native/SVNClient.cpp
   (remove, commit, copy, move, mkdir, doImport, propertySet): Set the callback
 as a param, rather than in the client context.
  
 * subversion/svn/propdel-cmd.c,
   subversion/svn/move-cmd.c,
   subversion/svn/mkdir-cmd.c,
   subversion/svn/copy-cmd.c,
   subversion/svn/commit-cmd.c,
   subversion/svn/propset-cmd.c,
   subversion/svn/delete-cmd.c,
   subversion/svn/import-cmd.c,
   subversion/svn/propedit-cmd.c:
 Update API consumers to provide the commit callback.
 
 * subversion/svn/main.c
   (main): Don't set the commit callback context members.
 
 * subversion/include/svn_client.h
   (svn_client_ctx_t): Remove the commit callback and baton members.
   (svn_client_mkdir4, svn_client_delete4, svn_client_import4,
svn_client_commit5, svn_client_copy6, svn_client_move6, 
 svn_client_propset4):
 Add commit callback parameters.
 
 * subversion/libsvn_client/deprecated.c
   (capture_baton_t): Remove unneded members.
   (capture_commit_info): Just dup the commit info and exit.
   (svn_client_mkdir3, svn_client_import3, svn_client_delete3,
svn_client_commit4, svn_client_copy5, svn_client_move5, 
 svn_client_propset3):
 Remove the use of the shadow baton.
 
 * subversion/libsvn_client/delete.c,
   subversion/libsvn_client/prop_commands.c,
   subversion/libsvn_client/copy.c,
   subversion/libsvn_client/add.c,
   subversion/libsvn_client/commit.c:
 Explicitly pass around the commit callback and baton, rather than relying
 on the client context.
[...]



Re: httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Stefan Fritsch

On Tue, 24 Aug 2010, Justin Erenkrantz wrote:

In r951893, httpd modified a #define for APLOG_MARK to add in a new
parameter called APLOG_MODULE_INDEX (in addition to file and line
info).

This busts Subversion - specifically, mod_authz_svn which has a function called:

static void
log_access_verdict(const char *file, int line,
  const request_rec *r, int allowed,
  const char *repos_path, const char *dest_repos_path)

it is called with:

 log_access_verdict(APLOG_MARK, r, 1, repos_path, dest_repos_path);


I agree that the comments/documentation should be improved. I will write a 
how-to for adjusting modules to the new API.


For now, see how mod_ssl was changed in r951194. The reasoning is that 
APLOG_MARK will work for the ap_log_*error functions, always (i.e. in both 
2.2.x and trunk). If you define you own log functions that may accept 
different parameters, define your own SVNLOG_MARK that fits your 
functions. When you call ap_log*error without APLOG_MARK, you will have to 
do #ifdef based on MMN, though.


Re: Performance branch - svnserve crash in fs_history_prev

2010-08-25 Thread Johan Corveleyn
On Wed, Aug 25, 2010 at 11:34 AM, Stefan Fuhrmann
stefanfuhrm...@alice-dsl.de wrote:
 Johan Corveleyn wrote:
 However, I also experienced a crash of svnserve, for both svn log
 and svn blame of a big file with 2000 revisions (so this is quite
 an extreme case). See both .log files in attachment. Something goes
 wrong in svn_fs_fs__id_deserialize, during processing of
 fs_history_prev.


 Hm, I couldn't reproduce that problem so far even with large
 repositories. Could you rerun your tests in debug mode?
 The stack trace should be more reliable then (e.g. data_len
 on level #3 is either bogus or the reason for the crash).

Ok, here they are in attachment (one for blame and one for log).
Reproduced with a debug build (of branches/performa...@now), on the
same machine.

Crashed with both blame and log of large file with large number of
revisions (but I don't know if that's actually relevant, maybe it's
not related). With blame it crashed much sooner as my release build.

Cheers,
-- 
Johan

Process info:
Cmd line: 
C:\research\svn\client_build\svn_branch_performance\dist\bin\svnserve.exe -d -r 
c:/research/svn/experiment/repos
Working Dir: C:\research\svn
Version:  1.7.0 (dev build), compiled Aug 19 2010, 00:50:40
Platform: Windows OS version 5.1 build 2600 Service Pack 3

Exception: ACCESS_VIOLATION

Registers:
eax=dc307ce7 ebx=00d31370 ecx=00db54eb edx=00db54eb esi=00f0f8d0 edi=00f0f930
eip=003bb02c esp=00f0f8b4 ebp=00f0f8b4 efl=00010216
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=

Stacktrace:
#1  0x003bb02c in svn_fs_fs__id_deserialize()
buffer = 0x00db54e7
id = 
#2  0x003bb5ca in svn_fs_fs__noderev_deserialize()
buffer = 0x00db54e8
noderev_p = 
noderev = 
#3  0x003bfaa9 in svn_fs_fs__dag_deserialize()
out = 
data = 
data_len = 1e0
pool = 
node = 
#4  0x004bcdfe in membuffer_cache_get()
cache = 
key = 
key_len = 31
item = 
deserializer = 
pool = 
buffer = 0x00db5308 
group_index = faa
to_find = 
entry = 
#5  0x004bcb64 in svn_membuffer_cache_get()
svn_err__temp = 
value_p = 
found = 0x00f0f9e8
cache_void = 0x00d6bc40
key = 
pool = 
full_key = 0x00db52b8
cache = 
full_key_len = 31
#6  0x004bdc63 in svn_cache__get()
value_p = 
found = 0x00f0f9e8
cache = 
key = 
pool = 
#7  0x003b1188 in dag_node_cache_get()
svn_err__temp = 
node_p = 
root = 
path = 
pool = 
node = 
cache = 
key = 
found = 0
#8  0x003b1436 in open_path()
svn_err__temp = 
inherit = 
err = 
copy_path = 
cached_node = 
entry = 0x00db5258 s9server
next = 
child = 
parent_path_p = 
root = 
path = 
flags = 0
txn_id = 
pool = 
canon_path = 
fs = 
parent_path = 
rest = 
path_so_far = 
here = 
#9  0x003b85b3 in history_prev()
svn_err__temp = 
baton = 0x00f0fbb4
pool = 
node = 
path = 
commit_rev = 
retpool = 
retry = 0
copyroot_path = 
fhd = 
history = 
revision = a1d1
fs = 
src_path = 
parent_path = 
copyroot_rev = 
commit_path = 
src_rev = 
dst_rev = 
root = 
reported = 1
prev_history = 
args = 
#10  0x003b83d0 in fs_history_prev()
svn_err__temp = 
args = 
prev_history_p = 
history = 
cross_copies = 1
pool = 
fhd = 
fs = 
prev_history = 
#11  0x00395c26 in svn_fs_history_prev()
prev_history_p = 
history = 
cross_copies = 1
pool = 
#12  0x00631c86 in find_interesting_revisions()
svn_err__temp = 
tmp_pool = 
path_rev = 
path_revisions = 
repos = 
path = 
start = 0
end = 17831
include_merged_revisions = 0
mark_as_merged = 0
duplicate_path_revs = 
authz_read_func = 
authz_read_baton = 0x00f0fe9c
pool = 
history = 
iter_pool = 
last_pool = 
root = 
kind = 
#13  0x00631706 in svn_repos_get_file_revs2()
svn_err__temp = 
repos = 
path = 
start = 0
end = 17831
include_merged_revisions = 0
authz_read_func = 
authz_read_baton = 0x00f0fe9c
handler = 
handler_baton = 0x00f0fdb0
pool = 
duplicate_path_revs = 
mainline_pos = -858993460
merged_path_revisions = 
merged_pos = -858993460
sb = 
mainline_path_revisions = 
#14  0x0040d45a in get_file_revs()
conn 

Re: svn commit: r987869 - /subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c

2010-08-25 Thread Stefan Sperling
On Wed, Aug 25, 2010 at 11:13:17AM +0200, Stefan Fuhrmann wrote:
 I picked up the count*sizeof(T[1]) idiom from come STL implementations.
 They were probably working around some non-standard compiler behavior
 somewhere. Since that turned out to be unnecessary, I dropped the confusing
 [1] in r988898.

Ok, thanks for clarifying!

Stefan


RE: svn commit: r988956 - /subversion/trunk/subversion/libsvn_wc/update_editor.c

2010-08-25 Thread Bert Huijben


 -Original Message-
 From: Stefan Sperling [mailto:s...@elego.de]
 Sent: woensdag 25 augustus 2010 14:52
 To: Philip Martin
 Cc: dev@subversion.apache.org
 Subject: Re: svn commit: r988956 -
 /subversion/trunk/subversion/libsvn_wc/update_editor.c
 
 On Wed, Aug 25, 2010 at 11:00:10AM +0100, Philip Martin wrote:
  phi...@apache.org writes:
 
   Author: philip
   Date: Wed Aug 25 09:55:35 2010
   New Revision: 988956
  
   URL: http://svn.apache.org/viewvc?rev=988956view=rev
   Log:
   Fix some uses of unitialised variables identified by valgrind.
  
   * subversion/libsvn_wc/update_editor.c
 (add_directory, add_file): Set conflicted if svn_wc__db_read_info
fails.
  
   Modified:
   subversion/trunk/subversion/libsvn_wc/update_editor.c
  
   Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
   URL:
 http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/upd
 ate_editor.c?rev=988956r1=988955r2=988956view=diff
  
 ==
 
   --- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
   +++ subversion/trunk/subversion/libsvn_wc/update_editor.c Wed Aug
 25 09:55:35 2010
   @@ -2357,6 +2357,7 @@ add_directory(const char *path,
  svn_error_clear(err);
  wc_kind = svn_wc__db_kind_unknown;
  status = svn_wc__db_status_normal;
   +  conflicted = FALSE;
  
  versioned_locally_and_present = FALSE;
}
   @@ -3808,6 +3809,7 @@ add_file(const char *path,
  svn_error_clear(err);
  wc_kind = svn_wc__db_kind_unknown;
  status = svn_wc__db_status_normal;
   +  conflicted = FALSE;
  
  versioned_locally_and_present = FALSE;
}
 
  Could someone confirm that FALSE is correct here?
 
 Looks fine to me.

Answered on IRC: No, this is not the correct value. 

A node can still be in conflict while _db_read_info() returns path not
found. Currently delete-delete tree conflicts can be the exception.

So in this case it's safer to set the conflicted variable to TRUE and
thereby perform the more expensive checks, to verify if the node is really
in conflict.

Bert



Re: svn commit: r989108 - /subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c

2010-08-25 Thread Philip Martin
phi...@apache.org writes:

 Author: philip
 Date: Wed Aug 25 13:53:27 2010
 New Revision: 989108

 URL: http://svn.apache.org/viewvc?rev=989108view=rev
 Log:
 Stop writing to pool memory after the pool has been cleared, something
 that started to happen when svn_ra_open4 introduced a session pool.  The
 problem was identified by valgrind.

 * subversion/libsvn_ra/ra_plugin.c
   (get_username): Use the session pool to allocate the svn_fs_access_t and
to setup the pool cleanup.

 Modified:
 subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c

 Modified: subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c?rev=989108r1=989107r2=989108view=diff
 ==
 --- subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c (original)
 +++ subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c Wed Aug 25 
 13:53:27 2010
 @@ -115,12 +115,12 @@ get_username(svn_ra_session_t *session,
if (*sess-username)
  {
SVN_ERR(svn_fs_create_access(access_ctx, sess-username,
 -   pool));
 +   session-pool));
SVN_ERR(svn_fs_set_access(sess-fs, access_ctx));
  
/* Make sure this context is disassociated when the pool gets
   destroyed. */
 -  apr_pool_cleanup_register(pool, sess-fs, cleanup_access,
 +  apr_pool_cleanup_register(session-pool, sess-fs, cleanup_access,
  apr_pool_cleanup_null);
  }

Mike, this was necessary to fix this problem:

$ svnadmin create repo
$ mkdir greek
$ valgrind -q subversion/svn/.libs/lt-svn import -mm greek file://`pwd`/repo
==6804== Invalid write of size 8
==6804==at 0x6C2A5BF: svn_fs_set_access (access.c:58)
==6804==by 0x67E4325: cleanup_access (ra_plugin.c:56)
==6804==by 0x5E3629A: run_cleanups (apr_pools.c:2071)
==6804==by 0x5E35398: pool_clear_debug (apr_pools.c:1409)
==6804==by 0x5E35599: pool_destroy_debug (apr_pools.c:1494)
==6804==by 0x5E3566D: apr_pool_destroy_debug (apr_pools.c:1536)
==6804==by 0x4E3EA13: svn_client_import4 (commit.c:825)
==6804==by 0x40D982: svn_cl__import (import-cmd.c:119)
==6804==by 0x4156E8: main (main.c:2329)
==6804==  Address 0xa8ddc90 is 40 bytes inside a block of size 64 free'd
==6804==at 0x4C2130F: free (vg_replace_malloc.c:323)
==6804==by 0x5E35469: pool_clear_debug (apr_pools.c:1432)
==6804==by 0x5E35599: pool_destroy_debug (apr_pools.c:1494)
==6804==by 0x5E3537E: pool_clear_debug (apr_pools.c:1406)
==6804==by 0x5E35599: pool_destroy_debug (apr_pools.c:1494)
==6804==by 0x5E3566D: apr_pool_destroy_debug (apr_pools.c:1536)
==6804==by 0x4E3EA13: svn_client_import4 (commit.c:825)
==6804==by 0x40D982: svn_cl__import (import-cmd.c:119)
==6804==by 0x4156E8: main (main.c:2329)

It was caused by r965856 where svn_ra_open4 creates a pool and
allocates the returned session inside that pool.  Ususally our
allocation functions allocate directly in the supplied pool.  Why the
change?

-- 
Philip


Re: svn commit: r989108 - /subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c

2010-08-25 Thread C. Michael Pilato
On 08/25/2010 10:00 AM, Philip Martin wrote:
 phi...@apache.org writes:
 
 Author: philip
 Date: Wed Aug 25 13:53:27 2010
 New Revision: 989108

 URL: http://svn.apache.org/viewvc?rev=989108view=rev
 Log:
 Stop writing to pool memory after the pool has been cleared, something
 that started to happen when svn_ra_open4 introduced a session pool.  The
 problem was identified by valgrind.

Good catch, Philip.  Thanks for cleaning up after me.

-- 
C. Michael Pilato cmpil...@collab.net
CollabNet  www.collab.net  Distributed Development On Demand



signature.asc
Description: OpenPGP digital signature


Re: httpd trunk broken with Subversion: ap_log_rerror busted

2010-08-25 Thread Justin Erenkrantz
On Wed, Aug 25, 2010 at 4:48 AM, Stefan Fritsch s...@sfritsch.de wrote:
 I agree that the comments/documentation should be improved. I will write a
 how-to for adjusting modules to the new API.

Here is a constructive suggestion (*grin*): in APR, for some of the
more complex declarations (see apr_pools.h and apr_pool_create), what
we have done is to create a #ifdef DOXYGEN tag which indicates the
normalized reduced form of the function declaration.  The #else clause
contains the optimized, macro-ized version.  (In httpd, I don't know
what the appropriate #ifdef should be though.)

This way those reading http_log.h will be able to see what the
declaration for ap_log_rerror actually reduces to without trying to go
through several layers of indirection.  -- justin


Re: About character encoding of the text files

2010-08-25 Thread Ivan Cenov

 На 25.8.2010 г. 08:54, B Smith-Mannschott написа:
The property svn:mime-type carries charset information as an 
additional field:


$ svn propset svn:mime-type text/plain;charset=Windows-1251 
file1.txt file2.txt ...


// ben



Hi, I tried with
*
svn:*mime*-type* text/plain; charset=Windows-1251
and
*svn:mime-type* text/plain; charset=windows-1251
and
*svn:mime-type* text/plain;charset=windows-1251
and
*svn:mime-type* text/plain; charset=Windows-1251

on a file d.c but without success. ViewVC continued to show  instead 
of cyrillic letters.


Well, Subversion supplies the information. It is up to ViewVC to deal 
with it...


From my point of view, it would be better a dedicated property to be 
defined.

svn:charset is only an example.

--

Regards,

Ivan Cenov
OKTO-7 Co., Botevgrad, Bulgaria
i_ce...@botevgrad.com, i...@okto7.com
  GSM: +359 888 76 10 80
phone: +359 723 6 61 20, +359 723 6 61 61
  fax: +359 723 6 62 62



[PATCH] Rename --git-diff to --git for svn diff

2010-08-25 Thread anatoly techtonik
Here is the patch. I've embedded log message inside and also opened
Rietveld issue if you like. http://codereview.appspot.com/2012048/
--
anatoly t.



On Wed, Aug 25, 2010 at 12:21 PM, Daniel Shahaf d...@daniel.shahaf.name wrote:
 Stefan Sperling wrote on Tue, Aug 24, 2010 at 23:03:24 +0200:
 On Tue, Aug 24, 2010 at 07:51:28PM +0300, anatoly techtonik wrote:
  Good to know. Is it worth to rename it to `svn diff --git` for
  unification with Mercurial?

 I suppose we could rename the option to --git, yes.
 Do you want to send a patch that does so?

 If yes, make sure to update all the tests too...

 See http://subversion.apache.org/docs/community-guide/general.html#patches

 Thanks,
 Stefan

[[[
Rename --git-diff option to --git for consistency with Mercurial and diff.

* subversion/svn/main.c: Replace git-diff option with git

* subversion/tests/cmdline/diff_tests.py: Fix to use new --git option
]]]

Index: subversion/tests/cmdline/diff_tests.py
===
--- subversion/tests/cmdline/diff_tests.py  (revision 989090)
+++ subversion/tests/cmdline/diff_tests.py  (working copy)
@@ -3394,7 +3394,7 @@
working copy, copyfrom=lambda_path)
 
   svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff', 
- '--git-diff', wc_dir)
+ '--git', wc_dir)
 
 def diff_git_format_url_wc(sbox):
   create a diff in git unidiff format for url-wc
@@ -3433,7 +3433,7 @@
   ]
 
   svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff', 
- '--git-diff',
+ '--git',
  '--old', repo_url + '@1', '--new',
  wc_dir)
 
@@ -3473,7 +3473,7 @@
   ]
 
   svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff', 
- '--git-diff', 
+ '--git', 
  '--old', repo_url + '@1', '--new',
  repo_url + '@2')
 
@@ -3641,7 +3641,7 @@
delete=True, text_changes=False)
 
   svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff', 
- '--git-diff', wc_dir)
+ '--git', wc_dir)
 
 
 
Index: subversion/svn/main.c
===
--- subversion/svn/main.c   (revision 989090)
+++ subversion/svn/main.c   (working copy)
@@ -368,7 +368,7 @@
N_(override diff-cmd specified in config file\n
 
[alias: --idiff])},
-  {git-diff, opt_use_git_diff_format, 0,
+  {git, opt_use_git_diff_format, 0,
N_(use git's extended diff format\n)},
   
   /* Long-opt Aliases


Re: About character encoding of the text files

2010-08-25 Thread Matthew Bentham

On 25/08/2010 17:01, Ivan Cenov wrote:

    25.8.2010 ??. 08:54, B Smith-Mannschott :

The property svn:mime-type carries charset information as an
additional field:

$ svn propset svn:mime-type text/plain;charset=Windows-1251
file1.txt file2.txt ...

// ben



Hi, I tried with
*
svn:*mime*-type* text/plain; charset=Windows-1251
and
*svn:mime-type* text/plain; charset=windows-1251
and
*svn:mime-type* text/plain;charset=windows-1251
and
*svn:mime-type* text/plain; charset=Windows-1251

on a file d.c but without success. ViewVC continued to show  instead
of cyrillic letters.

Well, Subversion supplies the information. It is up to ViewVC to deal
with it...

  From my point of view, it would be better a dedicated property to be
defined.
svn:charset is only an example.



Maybe, but doing it this way is consistent with the way that the charset 
is included in the Content-Type http header alongside the mime type, 
described eg. here:


http://www.w3.org/International/O-HTTP-charset

It makes sense to include it alongside the mime-type, because it's only 
valid to set it if the document is of type 'text', eg. text/plain or 
text/html.


Matthew


Re: About character encoding of the text files

2010-08-25 Thread Ivan Cenov

 На 25.8.2010 г. 19:27, Matthew Bentham написа:



Maybe, but doing it this way is consistent with the way that the 
charset is included in the Content-Type http header alongside the 
mime type, described eg. here:


http://www.w3.org/International/O-HTTP-charset

It makes sense to include it alongside the mime-type, because it's 
only valid to set it if the document is of type 'text', eg. text/plain 
or text/html.


Matthew



Ok, I have understood. It does not make big difference, more important 
is that the information exists.
It is better to be compliant with the existing norms and rules, so 
svn:mime-type is OK too.


Well, I tested with svn:mime-type=text/plain; charset=windows1251. I 
tried to define it as

auto property in [auto-props] section of Subversion config file
(it resides in C:\Documents and Settings\username\Application 
Data\Subversion).
This was not successful because ';' after 'plain' is a delimiter and so 
charset=windows1251

is truncated. This is argument against svn:mime-type.

--

Regards,

Ivan Cenov
OKTO-7 Co., Botevgrad, Bulgaria
i_ce...@botevgrad.com, i...@okto7.com
  GSM: +359 888 76 10 80
phone: +359 723 6 61 20, +359 723 6 61 61
  fax: +359 723 6 62 62



Re: About character encoding of the text files

2010-08-25 Thread Branko Čibej
On 25.08.2010 18:54, Ivan Cenov wrote:
  На 25.8.2010 г. 19:27, Matthew Bentham написа:


 Maybe, but doing it this way is consistent with the way that the
 charset is included in the Content-Type http header alongside the
 mime type, described eg. here:

 http://www.w3.org/International/O-HTTP-charset

 It makes sense to include it alongside the mime-type, because it's
 only valid to set it if the document is of type 'text', eg.
 text/plain or text/html.

 Matthew


 Ok, I have understood. It does not make big difference, more important
 is that the information exists.
 It is better to be compliant with the existing norms and rules, so
 svn:mime-type is OK too.

 Well, I tested with svn:mime-type=text/plain; charset=windows1251. I
 tried to define it as
 auto property in [auto-props] section of Subversion config file
 (it resides in C:\Documents and Settings\username\Application
 Data\Subversion).
 This was not successful because ';' after 'plain' is a delimiter and
 so charset=windows1251
 is truncated. This is argument against svn:mime-type.
It's more an argument for fixing autoprops, IMHO :)

-- Brane


Re: RFC: How should Subversion handle OS-deleted paths?

2010-08-25 Thread Paul Burba
On Tue, Aug 24, 2010 at 7:25 AM, Julian Foad julian.f...@wandisco.com wrote:

Hi Julian,

Thanks for taking some time to think about this.  Comments below.

 On Fri, 2010-08-20, Paul Burba wrote:
 I think we can all agree that when a user deletes part of their WC via
 the OS they have made a mistake of some sort.  But which mistake
 exactly?  The obvious answer is that they really intended 'svn del
 dirX/foo.c'.  But possibly they intended something more akin to 'svn
 up --set-depth empty dirX'.  Or maybe it was just a true mistake, and
 nothing was intended; they expect foo.c to be there!

 Or maybe the user *renamed* or *moved* the item to a different path,
 where it still exists complete with its local mods, and when the user
 realizes they should have used svn mv instead, they will want to issue
 the as-yet-unavailable svn mv --retrospectively command [1], or,
 failing that, they will want to move the item back into place and then
 issue the correct svn mv.

Agreed, we simply can't be sure what the user's intention was...I'm
beginning to be swayed to the idea that restoring the missing subtrees
may not be the ideal approach...

 So there are several courses of action that the user might want.  Is
 there an obvious, simple and safe default action that Subversion could
 take in order to resolve each missing item it encounters?  I think there
 isn't.


 I originally came to this question when dealing with merge tracking
 and paths missing because they were deleted outside of Subversion, see
 http://svn.haxx.se/dev/archive-2010-08/0156.shtml.

 Somewhat tardily I realized the *first* question to be answered is not
 how merge tracking should deal with such paths, but how should
 Subversion in general deal with them.

 I see a few basic approaches:

 1) Consistent Approach -- Restore the Missing Paths (unless there is
 really a compelling reason not too, but the default approach is to
 restore)

 WCNG's single DB allows us to simply restore these missing paths as we
 encounter them (the notable exception being 'svn st' of course, which
 just reports the missing state).

 For a file, the working properties (stored in ACTUAL_NODE table) are
 still known to Subversion, whereas its working text is NOT known to
 Subversion.  So Subversion could restore the item by:

  * reverting the file text and keeping the working properties, or

  * reverting the file text and reverting the properties.

 For a directory, that applies to each versioned file inside it, as well
 as to the properties on the directories themselves.  (Any unversioned
 items inside it would of course be lost.)

 Is either of those ways obviously the right way to restore?  I would
 suggest neither is obviously the right one.


 Exhibit A of this behavior: In 1.6.x and 1.7 in multiple DB mode, svn
 revert skips missing directories.  In single-DB mode they are
 restored.

 Here, they are restored in the second sense above - i.e. reverted.


 2) Consistent Approach: Error out

 If we detect missing paths, simply throw an error asking that the user
 restore them before proceeding.  Obviously for svn st/up/revert, the
 current behavior is fine, but for svn ci/sw/merge we could follow this
 route.

 I think this is a good approach for ci/sw/merge and in fact most
 commands.  It is the simplest approach and that counts for a lot.

 3) Case-by-Case Approach:

 Maybe there is *no* consistent approach, and sometimes we will want to
 restore, but other times we'll do something else.  I'll leave what
 something else is as an open question for the moment.

 I think consistency is important, but I'm not seeing a single behaviour
 that's suitable for all commands.  Let me see...

 svn revert should of course restore any missing thing back to its last
 versioned state, because that's it's job.  (In 1.6 and earlier, it was
 unable to restore missing directories, which was always known as a
 deficiency.)

 svn status should of course report the problem, because that's its
 job.

 svn delete could throw an error, or it could ignore the inconsistency
 and just schedule the thing for deletion anyway.  (I suppose we could
 consider the latter behaviour to be first restoring and then deleting,
 in one operation.)  Same for any other UI that's able to make the node
 go away such as svn up --set-depth empty PARENT_PATH.

 svn diff and svn blame I think should throw an error if trying to
 access the missing text of the node.  (Same for svn cat -rWORKING if
 we ever support that.)  I don't see any good reason for read-only
 commands such as these to attempt to fix a problem.

 svn copy and svn move where the source is missing: throw an error.
 They could perhaps alternatively perform a copy or move in which the
 target working file/dir is still missing, but that's greater complexity
 and I see no benefit.

 svn export: throw an error.  It could perhaps alternatively skip the
 missing node, on the basis that its job is to re-create the current
 working state of the WC, but I 

Get latest file changes in repository

2010-08-25 Thread Steve
I am trying to get a list from the repository (not anyone's working
copy) of the files and folders that have changed since the last
revision. How do I do this?

Thanks,



Re: About character encoding of the text files

2010-08-25 Thread Stefan Sperling
On Wed, Aug 25, 2010 at 06:58:50PM +0200, Branko Čibej wrote:
 On 25.08.2010 18:54, Ivan Cenov wrote:
  Well, I tested with svn:mime-type=text/plain; charset=windows1251. I
  tried to define it as
  auto property in [auto-props] section of Subversion config file
  (it resides in C:\Documents and Settings\username\Application
  Data\Subversion).
  This was not successful because ';' after 'plain' is a delimiter and
  so charset=windows1251
  is truncated. This is argument against svn:mime-type.
 It's more an argument for fixing autoprops, IMHO :)

Looks more like auto-props documentation needs a fix.
The escaping rules don't seem to be documented.
You can write ';;' to get a literal ';'.

So you can use this in your config for auto-props:

svn:mime-type=text/plain;; charset=windows1251

Stefan


Re: Get latest file changes in repository

2010-08-25 Thread Hyrum K. Wright
Steve,
This is is about the development of Subversion.  Your question about
the usage of Subversion is more appropriately directed toward the
users' list us...@subversion.apache.org.

Thanks.

On Wed, Aug 25, 2010 at 1:48 PM, Steve stroi...@live.com wrote:
 I am trying to get a list from the repository (not anyone's working
 copy) of the files and folders that have changed since the last
 revision. How do I do this?

 Thanks,




Re: Get latest file changes in repository

2010-08-25 Thread Stefan Sperling
On Wed, Aug 25, 2010 at 10:48:30AM -0700, Steve wrote:
 I am trying to get a list from the repository (not anyone's working
 copy) of the files and folders that have changed since the last
 revision. How do I do this?

Please post such questions to the users list. This list is about
development of Subversion itself, not about usage questions. Thanks.
See http://subversion.apache.org/mailing-lists.html

(That said, here's a hint that might help you: Try the command 'svn log -v',
and also see http://subversion.apache.org/faq.html#hidden-log)

Stefan


Re: [PATCH] Fix community guide links to Writing log messages chapter (issue2016045)

2010-08-25 Thread C. Michael Pilato
On 08/25/2010 11:46 AM, techto...@gmail.com wrote:
 Reviewers: dev_subversion.apache.org,
 
 Message:
 Community guide contains broken links to Writing log messages chapter.
 Please, review this patch.
 

Committed in r989320.  Thanks!

-- 
C. Michael Pilato cmpil...@collab.net
CollabNet  www.collab.net  Distributed Development On Demand



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] Rename --git-diff to --git for svn diff

2010-08-25 Thread Stefan Sperling
On Wed, Aug 25, 2010 at 07:13:15PM +0300, anatoly techtonik wrote:
 Here is the patch. I've embedded log message inside and also opened
 Rietveld issue if you like. http://codereview.appspot.com/2012048/

Thank you! Committed in r989327.

I've tweaked the log message a bit, most importanly to mention
the symbol names of things that have changed, which we usually
do in our log messages so that it's easy to find changes made
to a specific struct or function.

Stefan


serf 0.7.0 released

2010-08-25 Thread Greg Stein
Hi all,

I'm pleased to announce the 0.7.0 release of serf.

Below is a quick summary of changes (since the 0.6.1 release):

  Fix double free abort when destroying request buckets.
  Fix test server in unit test framework to avoid random test failures.
  Allow older Serf programs which don't use the new authn framework to still
handle authn without forcing them to switch to the new framework. (r1401)
  Remove the SERF_DECLARE macros, preferring a .DEF file for Windows
  Barrier buckets now pass read_iovec to their wrapped bucket.
  Fix HTTP header parsing to allow for empty header values.


Download details are at:
  http://code.google.com/p/serf/downloads/list

Direct link:
  http://serf.googlecode.com/files/serf-0.7.0.tar.bz2

  SHA1: 868fdb00e679dd84ed888ec77414698365530bae


Enjoy!

Cheers,
-g


Re: [PATCH] Rename --git-diff to --git for svn diff

2010-08-25 Thread anatoly techtonik
On Wed, Aug 25, 2010 at 10:58 PM, Stefan Sperling s...@elego.de wrote:
 Here is the patch. I've embedded log message inside and also opened
 Rietveld issue if you like. http://codereview.appspot.com/2012048/

 Thank you! Committed in r989327.

 I've tweaked the log message a bit, most importanly to mention
 the symbol names of things that have changed, which we usually
 do in our log messages so that it's easy to find changes made
 to a specific struct or function.

Thanks. Now I see how it should look like.
--
anatoly t.


Re: serf 0.7.0 released

2010-08-25 Thread Blair Zajac

On 8/25/10 2:16 PM, Greg Stein wrote:

Hi all,

I'm pleased to announce the 0.7.0 release of serf.

Below is a quick summary of changes (since the 0.6.1 release):

   Fix double free abort when destroying request buckets.
   Fix test server in unit test framework to avoid random test failures.
   Allow older Serf programs which don't use the new authn framework to still
 handle authn without forcing them to switch to the new framework. (r1401)
   Remove the SERF_DECLARE macros, preferring a .DEF file for Windows
   Barrier buckets now pass read_iovec to their wrapped bucket.
   Fix HTTP header parsing to allow for empty header values.


Does it change the ABI?  Do we need to wait for the next svn 1.6.x release 
before we can use it?  I'm asking because I maintain the MacPorts serf package 
and don't want to break existing installs.


Blair


Re: [serf-dev] serf 0.7.0 released

2010-08-25 Thread Justin Erenkrantz
On Wed, Aug 25, 2010 at 2:16 PM, Greg Stein gst...@gmail.com wrote:
 Hi all,

 I'm pleased to announce the 0.7.0 release of serf.

Thanks!  -- justin


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Justin Erenkrantz
On Wed, Aug 25, 2010 at 4:01 PM, Peter Samuelson pe...@p12n.org wrote:
 Yeah but presumably he's asking because he's linking libsvn_ra_serf to
 serf 0.3.x now, so the question remains: is 0.7.0 ABI-compatible with
 0.3.x?  As far as I know, 0.3 is ABI-compatible with 0.2 and 0.1.

Macports is at 0.6.1.  IOW, it's already busted now.  =(  -- justin


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Blair Zajac

On 8/25/10 4:16 PM, Justin Erenkrantz wrote:

On Wed, Aug 25, 2010 at 4:01 PM, Peter Samuelsonpe...@p12n.org  wrote:

Yeah but presumably he's asking because he's linking libsvn_ra_serf to
serf 0.3.x now, so the question remains: is 0.7.0 ABI-compatible with
0.3.x?  As far as I know, 0.3 is ABI-compatible with 0.2 and 0.1.


Macports is at 0.6.1.  IOW, it's already busted now.  =(  -- justin


Busted checkouts and operations are better than core dumps :)

Can I get an answer to the question?

Blair


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Justin Erenkrantz
On Wed, Aug 25, 2010 at 4:24 PM, Blair Zajac bl...@orcaware.com wrote:
 On 8/25/10 4:16 PM, Justin Erenkrantz wrote:

 On Wed, Aug 25, 2010 at 4:01 PM, Peter Samuelsonpe...@p12n.org  wrote:

 Yeah but presumably he's asking because he's linking libsvn_ra_serf to
 serf 0.3.x now, so the question remains: is 0.7.0 ABI-compatible with
 0.3.x?  As far as I know, 0.3 is ABI-compatible with 0.2 and 0.1.

 Macports is at 0.6.1.  IOW, it's already busted now.  =(  -- justin

 Busted checkouts and operations are better than core dumps :)

Subversion 1.6.12 and serf 0.6.1 from Macports doesn't even do any
type of a checkout - it always errors out immediately.

Backing up, there are three faults:

 - API/ABI compatibility - this was broken way back in 0.4.0 - no
current 1.6.x release of Subversion can work with anything from serf
0.4.0 or higher.  You need the proposed backport to Subversion
(1.6.x-r879757) to make 1.6.x work with the serf 0.4.0+ API.

 - Authn framework fix - this is fixed in 0.7.0.

 - Memory usage - this is also fixed in 0.7.0.

1.7.x/trunk of Subversion could work with 0.4.0-0.6.1 - this is what
Stefan and others reported the memory leaks - but Subversion has never
officially released a version that works with serf 0.4.0+.

 Can I get an answer to the question?

I'm not sure there is any API/ABI changes between 0.6.1 and 0.7.0.
Greg?  Lieven?  -- justin


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Greg Stein
On Wed, Aug 25, 2010 at 19:39, Justin Erenkrantz jus...@erenkrantz.com wrote:
...
 I'm not sure there is any API/ABI changes between 0.6.1 and 0.7.0.
 Greg?  Lieven?  -- justin

0.6.1 and 0.7.0 are effectively compatible. I think an unused function
was removed, and the unused SERF_DECLARE stuff was removed.

These latest releases are fully incompatible with 0.3.x and earlier
releases, according to the pre 1.0 caveat of the versioning
guidelines[1].

Cheers,
-g

[1] http://apr.apache.org/versioning.html#basics


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Branko Čibej
On 26.08.2010 01:46, Greg Stein wrote:
 On Wed, Aug 25, 2010 at 19:39, Justin Erenkrantz jus...@erenkrantz.com 
 wrote:
   
 ...
 I'm not sure there is any API/ABI changes between 0.6.1 and 0.7.0.
 Greg?  Lieven?  -- justin
 
 0.6.1 and 0.7.0 are effectively compatible. I think an unused function
 was removed, and the unused SERF_DECLARE stuff was removed.
   

IIRC replacing the #declspec with a .DEF file will change the ABI for
DLLs on Windows. Shouldn't affect MacPorts or any other Unix-like system
though.

-- Brane


Re: [serf-dev] Re: serf 0.7.0 released

2010-08-25 Thread Greg Stein
On Wed, Aug 25, 2010 at 21:53, Branko Čibej br...@xbc.nu wrote:
 On 26.08.2010 01:46, Greg Stein wrote:
 On Wed, Aug 25, 2010 at 19:39, Justin Erenkrantz jus...@erenkrantz.com 
 wrote:

 ...
 I'm not sure there is any API/ABI changes between 0.6.1 and 0.7.0.
 Greg?  Lieven?  -- justin

 0.6.1 and 0.7.0 are effectively compatible. I think an unused function
 was removed, and the unused SERF_DECLARE stuff was removed.


 IIRC replacing the #declspec with a .DEF file will change the ABI for
 DLLs on Windows. Shouldn't affect MacPorts or any other Unix-like system
 though.

Ah. Thanks for the info. The macros didn't do anything though (never
got that far), so the declarations/implementations were the default
callspec. Not sure if that matters, and I don't really care :-P ... as
long as Blair is set, then we're good.

Background: serf used a set of DECLARE macros, much like Apache httpd
and APR. But Subversion showed that it was unnecessary since you could
just use a .def file instead of funky magic. And that it was easy to
create that .def as long as your header files were regularized in
their declaration formatting. So 0.7.0 drops the complexity and
switched to a simple .def generation instead. Lesson learned: it
doesn't pay to stick with old, tired idioms.

Cheers,
-g


Pascal bindings

2010-08-25 Thread dmitry boyarintsev
Hello SVN people.

As suggested by Hyrum K. Wright I'm forwarding the mail here.

I'm wandering if there's an official Pascal (FreePascal or Delphi)
bindings for the Subversion. I've converted C-headers (1.5.6 tag) for
my own needs, and I guess it would be easy for me to catch up with the
trunk as well.

If they're acceptable, I would like to contribute them for the
project, as well as support and update the bindings with the new
product releases.

Any suggestions? Do you need to have Pascal bindings?

thanks,
Dmitry