[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: Stephen Butler <sbutler_at_elego.de>
Date: Sun, 19 Oct 2008 00:03:12 +0200

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!

> - Show status on missing tree conflict victims.

Done in r33620. :-) We still have to eliminate the status 'C ' on the
parents.

>
> What more do you have on your mind, what are you guys fixing right now?

A biggie is the skipping of victims when update/merge discovers they are
tree-conflicted. Quite tricky, messing with the callbacks. I've played
around with it a bit, but I think Julian is much closer to getting it
right.

Your tree_conflict_on_update_* tests (the "deep" test scenarios) remain
in XFAIL limbo until this feature is done. The tree_conflict_on_merge_*
tests have meanwhile been changed to work with the current non-skipping
behavior. I think we'll have to change that.

>
> and still unanswered:
>>> Btw, what's the status of tree_conflict_tests.py?

Just had another look at tree_conflict_tests.py, and I still don't
understand it. ;-) I think the tests mentioned above cover most of the
detection scenarios.

Regards,
Steve

-- 
Stephen Butler | Software Developer
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
---------------------------------------------------------------------
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-19 00:03:28 CEST

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