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

Re: RFC: change 'svn merge' default behavior.

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2004-01-15 19:12:31 CET

On Thu, 2004-01-15 at 11:42, Sander Striker wrote:

> > So, we did the right thing: we made 'svn diff URL1 URL2' ignore
> > ancestry by default, and "dumbly" diff identical file paths.
>
> I still am not supporting this decission. svn diff TARGET1 TARGET2
> should indeed ignore history. However, svn diff -r X:Y TARGET should
> notice history. Hmpf, we need that peg revision proposal implemented.
>

See my comments below. I think we have a new proposal.

> Merging should always notice ancestry by default. The only time it
> is interesting to not notice ancestry is vendor branch merging. This
> should be uncommon enough to warrant --ignore-history.

I'm glad you agree. So far, you, I, cmpilato, kfogel, ghudson and epg
all agree that 'svn merge' should default to noticing history. That's
the real "core issue" here. The only question is: what's the best
proposal which includes this change?

Mike Pilato points out that if diff and merge have different default
behaviors, it makes it impossible to run diff as a "dry run" for a
merge. It's likely that you'll see very different results. That's
really the Really Big Argument for keeping diff/merge's default
behaviors consistent.

Further, Sander points out that the main time 'svn diff' needs to ignore
history is when you're comparing unrelated vendor import trees. This
isn't all that common a use-case... not nearly as common as using 'svn
diff' for a merge dry-run.

Looking back at history, all of the complaints about 'svn diff' came
from the fact that at that time, diff *could not* ignore history. The
option simply wasn't available. Mike's repsonse was to add the feature,
and also make it the default.

So here's a better proposal, one that I/kfogel/cmpilato like:

    * make diff and merge both default to noticing ancestry.
    * rename the existing long option to '--ignore-ancestry'
    * recommend this flag for vendor branching use-cases.

This proposal keeps 'merge' safe, and keeps it consistent with diff for
dry-run use. And it still allows people to make diff 'dumb' when
comparing vendor trees.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jan 15 19:13:07 2004

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