[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: tree-conflicts: more on dirs_same_p()

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Fri, 26 Sep 2008 21:00:49 +0100

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_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-26 22:01:07 CEST

This is an archived mail posted to the Subversion Dev mailing list.