On 25.05.2012 10:54, Philip Martin wrote:
> Stefan Küng<tortoisesvn_at_gmail.com> writes:
>> here the 'status' after svn_wc__db_scan_addition() is
>> svn_wc__db_status_incomplete which might be an indication why
>> original_repos_relpath is NULL and then causes the access violation in
> One way to get incomplete with status add is to interrupt a wc-to-wc
> copy. That gives things like:
> $ svn st wc
> A + wc/X
> ! wc/X/B
> ! wc/X/f
> But those have original_repos_relpath and the commit doesn't crash.
> Is there some other way of getting incomplete with add? Perhaps an
> interrupted merge?
No idea how the wc got into this state. As I said: this comes from a
crash dump. All I can see is the stack trace and some of the variables
passed to the functions in the stack trace.
> The documentation for svn_wc__node_get_origin says that for an added
> node (meaning not copied) the function returns NULL. This indicates
> that callers are probably not going to crash if we return NULL for the
> incomplete case:
> svn diff ../src-1.7/subversion/libsvn_wc/node.c
> Index: ../src-1.7/subversion/libsvn_wc/node.c
> --- ../src-1.7/subversion/libsvn_wc/node.c (revision 1342275)
> +++ ../src-1.7/subversion/libsvn_wc/node.c (working copy)
> @@ -1407,7 +1407,10 @@
> return SVN_NO_ERROR; /* Local addition */
> - *repos_relpath = svn_relpath_join(
> + if (!original_repos_relpath)
> + *repos_relpath = NULL;
> + else
> + *repos_relpath = svn_relpath_join(
> I'd still like to be able to reproduce it.
>> no idea why here original_repos_relpath is NULL though. Maybe you have
>> more luck analyzing that crash dump.
> Does this mean you cannot determine status in the same way you
> determined status above?
Status is 0 here (normal). That's why I don't know how
original_repos_relpath could be NULL.
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Received on 2012-05-25 15:43:42 CEST