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

Re: tree-conflicts: all tests

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Mon, 20 Oct 2008 16:18:45 +0100

On Sun, 2008-10-19 at 00:03 +0200, Stephen Butler wrote:
> Quoting Neels J Hofmeyr <neels_at_elego.de>:
>
> > Great, thanks a lot! So here's the updated list:
> >
> > ./update_tests.py 46-50
> > ./switch_tests.py 31-35
> > ./merge_tests.py 101-103 111-121
> > ./info_tests.py 1
> > ./commit_tests.py 59-60
> > ./tree_conflict_tests.py
> > ./stat_tests.py 31
> > ./revert_tests.py 19
> >
> > It's handy to put this into a script and run all tc tests to see what issue
> > to tackle next.
> >
> > Looking at the results, the most prominently visible fix needed is that
> > subnodes are not reported as A/D/M when a conflict is reported on the parent.
> >
> > D D/D1
> > C D
> >
> > D is to be deleted, but that's a conflict. Instead, it should just show
> >
> > C D/D1
> >
> > So what is left to do?
> >
> > - Change test expectations to conflict on the victim, not on the parent
> > (update, switch, merge, status, ...).
> > - Change svn behaviour so that it complies.
>
> I have a diff that un-deprecates svn_wc_conflicted_p(), using it for text
> and prop conflictes only, and checking for tree conflicts separately where
> needed. The diff needs a bit more work to be consistent with the prior
> behavior.
>
> That's the first step to making notifications and status show tree conflicts
> on victims only. The next step is to rewrite the notification and status
> functions themselves, and a few dozen test expectations.
>
> I tried to do both steps in one diff, but it was too confusing.
>
>
> > - Implement dirs_same_p(), inherently fix entire diff code.
>
> I don't what that is, except that it sounds useful for use case 5.
> Go for it!

That's the function that Neels and I have been trying to write for
subversion/libsvn_client/merge.c to check whether the directory tree
we're about to delete is the same as the one that was deleted in the
merge-left source. The answer determines whether we flag a conflict or
let the delete proceed. It's pretty important to get this right,
otherwise there'll be false positives or false negatives in tree
conflict detection.

It should be a question that the existing diff code can answer, but
unfortunately the existing diff code is deficient. Thus Neels has been
working on the "diff --summarize" code to try to bring it up to full
operation.

- 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-10-20 20:47:55 CEST

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