Bert Huijben wrote on Sun, Mar 27, 2011 at 19:26:50 +0200:
> > -----Original Message-----
> > From: Daniel Shahaf [mailto:danielsh_at_elego.de]
> > Sent: zondag 27 maart 2011 0:31
> > To: dev_at_subversion.apache.org
> > Subject: [PATCH] issue #3469: tree conflict under a directory external
> > Issue #3469 is about having merge pull in the addition of A/mu when A/
> > is an external. (File modifications work and raise a tree conflict.)
> > The following patch attempts to address it by having merge_file_added()
> > skip the addition of files under a directory external. Thoughts or +1's?
> Your patch contains SVN_DBG() statements
I know, and I intend to remove them before commiting. Thanks for
pointing it out.
> and there are easier (and more
> performant) ways to check if a node is part of a working copy (e.g. helpers
> to check if a path is switched/a wc root).
Could you elaborate on these please? I looked through the header files
and amn't sure which helpers you're referring to.
I think we have to the disk in this case --- since if the file being
added (or any parent thereof) is obstructed, we shouldn't modify the
> I would drop the term 'disjoint' as it doesn't really apply after moving to
> a single-db working copy system.
Not sure what you mean, it's definitely possible to do
svn co URL1 foo && svn co URL2 foo/bar/
in 1.7. If that's not supported, we should make error out (just like we
did for 'svnadmin create' some time ago).
> This patch introduces +- 2 database transactions for every node tested,
> while the wc-root of the merge-target will never change (and will certainly
> be the merge target or an ancestor of it).
Fair enough; I'll make the next iteration of the patch cache
target_wcroot_abspath in the baton.
> If you want the cheapest check you should check if the directory of the file
> has a working copy root above (or at) the merge-target.
> (Performing wc_db queries on a directory is generally cheaper than for files
> as we keep a record for each directory in a hashtable and currently a file
> can never be in a diffent working copy then it's directory)
In other words: whatever check I do (be it the "get wc root" I have now
or something else, per above), I should do it on the dirname() of the
file being added. Thanks for the tip, I'll make this change in the next
iteration of the patch.
Thanks for the review. I'll incorporate the two optimizations you
suggested and re-submit the patch once you've clarified the point about
a more performant way to detect a wc root.
Received on 2011-03-28 00:17:33 CEST