Hi Stefan,

 

Are you sure there are no behavior changes by changing this?

 

If you copy nodes at every level the resulting nodes are the same as when
you only copy a root. (We had a lot of this in the wc-1.0 code). Tweaking
between copyfrom_* and copyroot_* is quite easy to get not exactly right,
without visible side effects. The repos_layer will hide a lot of those
differences to the client layer, while there can be quite a different
behavior in the storage layer.

 

With just the snippets in this thread I can't find a true answer and I need
more time to look at the actual change itself, to determine if there are
possible side effects.

 

                Bert

 

From: Stefan Fuhrmann [mailto:stefan.fuhrm...@wandisco.com] 
Sent: zondag 29 september 2013 18:39
To: Bill Tutt
Cc: Branko Čibej; Subversion Development
Subject: Re: Moves in FSFS

 

On Sun, Sep 29, 2013 at 2:08 AM, Bill Tutt <b...@tutts.org
<mailto:b...@tutts.org> > wrote:

On a slightly different note I noticed this oddity in lib_fs_fs/dag.c from
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c?
annotate=1517479

 

        
        

703

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849538&r2=849539&> 849539

if (is_parent_copyroot)


704

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849531&r2=849532&> 849532

{


705

danielsh

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=1305395&r2=1305396&> 1305396

SVN_ERR(get_node_revision(&parent_noderev, parent));


706

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849538&r2=849539&> 849539

noderev->copyroot_rev = parent_noderev->copyroot_rev;


707

kfogel

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=858544&r2=858545&> 858545

noderev->copyroot_path = apr_pstrdup(pool,


708

 

 

parent_noderev->copyroot_path);


709

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849531&r2=849532&> 849532

}


710

hwright

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=866390&r2=866391&> 866391

        

711

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849538&r2=849539&> 849539

noderev->copyfrom_path = NULL;


712

 

 

noderev->copyfrom_rev = SVN_INVALID_REVNUM;


713

hwright

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=866390&r2=866391&> 866391

        


Sure looks like a useless memory allocation from the APR pool for
copyroot_path as well as dead code rotting away quietly.

 

As well as this earlier in the same file:


394

kfogel

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=858544&r2=858545&> 858545

new_noderev.copyroot_path = apr_pstrdup(pool,


395

 

 

parent_noderev->copyroot_path);


396

jpieper

 
<http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/dag.c
?r1=849538&r2=849539&> 849539

new_noderev.copyroot_rev = parent_noderev->copyroot_rev;


397

 

 

new_noderev.copyfrom_rev = SVN_INVALID_REVNUM;


398

 

 

new_noderev.copyfrom_path = NULL;

 

Wow, this has been here for ages... :)

 

 

Thanks Bill for spotting this. Fixed in r1527344.

-- Stefan^2.

Reply via email to