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

[RFC] 'base' is what in --accept=base?

From: Paul Burba <ptburba_at_gmail.com>
Date: Thu, 9 Sep 2010 12:56:28 -0400

What do we expect 'svn merge --accept=base' to do when encountering
text conflicts?

While checking up on an old open issue
(http://subversion.tigris.org/issues/show_bug.cgi?id=3514) I was
surprised to find that "base" doesn't refer to the base of the merge
target, but rather the base of the merge source (i.e. the left side of
the merge). For example:

(Example done with trunk_at_995460)

>svn up
  At revision 7.

# Here is our merge target:

>svn cat A_COPY\D\H\psi
  Branch content.

# Here is the conflicting change we are going to merge:

>svn cat A\D\H\psi_at_2
  This is the file 'psi'.

>svn cat A\D\H\psi_at_3
  New content

# Do the merge, requesting conflicts be resolved to base:

>svn merge ^^/A A_COPY -c3 --accept base
  --- Merging r3 into 'A_COPY':
  U A_COPY\D\H\psi
  --- Recording mergeinfo for merge of r3 into 'A_COPY':
   U A_COPY

# The resolution chooses the "base" of the left side of the merge.

>svn diff A_COPY\D\H\psi
  Index: A_COPY/D/H/psi
  ===================================================================
  --- A_COPY/D/H/psi (revision 7)
  +++ A_COPY/D/H/psi (working copy)
  @@ -1 +1 @@
  -BASE.
  +This is the file 'psi'.

Is this correct? Or should A_COPY/D/H/psi be at its *own* base,
'Branch content.'?

svn merge --accept base has *never* worked in 1.5 or 1.6 (it segfaults
or throws an error) and there hasn't exactly been an uproar, so I
doubt many people are using this option; regardless I'd like it to
DTRT.

Paul
Received on 2010-09-09 18:57:19 CEST

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