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

Merge where a target is missing - skip or tree conflict?

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 25 Mar 2008 19:03:43 +0000

Currently, "svn merge" can print

   Skipped 'foo'


   Skipped missing target 'foo'

in some situations, and mark the corresponding file or directory "foo" as not
having been merged by setting explicit mergeinfo on it (blank mergeinfo, or a
copy of what it was before).

The setting of explicit mergeinfo in this situation was addressed by Issue
#2829 <http://subversion.tigris.org/issues/show_bug.cgi?id=2829> "Improve
handling for skipped paths encountered during a merge".

This "skipping" strikes me as something we should perhaps convert to a tree
conflict, because it is unhelpful to omit part of the merge that the user
requested, with only some notification messages scrolling by to alert the user
that this happened.

Can anyone think of a situation where it is best for an attempted merge to skip
the parts that it cannot reach, rather than flag a tree conflict, if the user
doesn't limit the scope of their merge to paths that they can read and write?

Situations where this can happen:

   * A missing source could be caused by an authorisation restriction. I can't
think of any other reason.

   * A missing target include could be cause by a shallow WC or an
authorisation restriction or perhaps other reasons.

For perhaps the most complex related behaviour, consider a switched sub-tree in
the WC. This is handled, I think, a bit like a missing target within its parent
directory in that the sub-tree that's not being touched shall have this fact
recorded with explicit mergeinfo. As well as that, the changes to be merged
into that sub-tree are made within the switched location. Therefore all of the
merge source is applied somewhere, but different parts of it are applied within
different destination branches. No "skipped" notification is printed, so this
isn't actually a case in question.

- 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-03-25 20:03:58 CET

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