You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Neels J. Hofmeyr" <ne...@elego.de> on 2008/09/26 02:28:22 UTC
tree-conflicts: more on dirs_same_p()
Neels J. Hofmeyr wrote:
> Hey Julian,
>
> I'm investigating your preliminary patch for directory comparison (I've
> attached the patch for dev@'s reference). Here's what I found:
So, some more.
In merge_tests.py 122
Second merge operation
[[[
# Make a differing copy, locally modify it so it's the same,
# and merge a deletion to it.
target = 'A/B3'
svn_copy(s_rev_orig, source, target)
svn_commit(target)
svn_moddir(target+"/E")
# Should be deleted quietly.
svn_merge(s_rev_del, source, target, '--- Merging|D ')
]]]
This section fails because the merge sources are found to differ. There are
two things:
1) dirs_same_p() says that the directories differ because it finds E/newfile
is missing. Because of 2), I guess it is not comparing to the local mods but
only to the previously committed state.
Question: Was that commit missing or is it intentionally omitted / Should
svn treat local mods like the committed ones here?
2) If I add another commit after svn_moddir(...), it still says the
directories differ, also because of E/newfile, but now it says that *files
differ*. Tracing around reveals that it's actually prop changes.
Propchanges are reported on:
"svn:entry:last-author"
"svn:entry:uuid"
"svn:entry:committed-rev"
"svn:entry:committed-date"
So I'm pasting your condition that categorically ignores svn:entry props
from dirs_same_dir_props_changed() over to dirs_same_file_changed().
Fixing these makes merge_tests.py 122 pass. 123 also passes. 124 XFAILS
(wasn't that XPASS before?).
...attaching a new diff that also contains my changes so far, and a diff
between your diff and my diff. Hm, a microbranch would have been useful.
Maybe next time...
NOTE: I updated trunk for this diff, and tests 122 123 124 are now 123 124 125.
--
Neels Hofmeyr -- elego Software Solutions GmbH
Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23458696 mobile: +49 177 2345869 fax: +49 30 23458695
http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelsreg: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
Re: tree-conflicts: more on dirs_same_p()
Posted by Julian Foad <ju...@btopenworld.com>.
On Fri, 2008-09-26 at 04:28 +0200, Neels J. Hofmeyr wrote:
> Neels J. Hofmeyr wrote:
> > Hey Julian,
> >
> > I'm investigating your preliminary patch for directory comparison (I've
> > attached the patch for dev@'s reference). Here's what I found:
>
> So, some more.
>
> In merge_tests.py 122
> Second merge operation
>
> [[[
> # Make a differing copy, locally modify it so it's the same,
> # and merge a deletion to it.
> target = 'A/B3'
> svn_copy(s_rev_orig, source, target)
> svn_commit(target)
> svn_moddir(target+"/E")
> # Should be deleted quietly.
> svn_merge(s_rev_del, source, target, '--- Merging|D ')
> ]]]
>
> This section fails because the merge sources are found to differ. There are
> two things:
>
>
> 1) dirs_same_p() says that the directories differ because it finds E/newfile
> is missing. Because of 2), I guess it is not comparing to the local mods but
> only to the previously committed state.
>
> Question: Was that commit missing or is it intentionally omitted / Should
> svn treat local mods like the committed ones here?
A commit is missing on purpose, here. The purpose of this section of the
test is to check that a merge to a WC with local mods works the same as
if the mods had been committed.
> 2) If I add another commit after svn_moddir(...), it still says the
> directories differ, also because of E/newfile, but now it says that *files
> differ*. Tracing around reveals that it's actually prop changes.
>
> Propchanges are reported on:
> "svn:entry:last-author"
> "svn:entry:uuid"
> "svn:entry:committed-rev"
> "svn:entry:committed-date"
>
> So I'm pasting your condition that categorically ignores svn:entry props
> from dirs_same_dir_props_changed() over to dirs_same_file_changed().
Oh, thanks. That's better.
> Fixing these makes merge_tests.py 122 pass. 123 also passes. 124 XFAILS
> (wasn't that XPASS before?).
> ...attaching a new diff that also contains my changes so far, and a diff
> between your diff and my diff. Hm, a microbranch would have been useful.
> Maybe next time...
>
> NOTE: I updated trunk for this diff, and tests 122 123 124 are now 123 124 125.
Thanks for investigating.
- Julian
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org