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

[TSVN] Re: Merge dialog, second attempt

From: Jens Scheidtmann <Jens.Scheidtmann_at_bayerbbs.com>
Date: 2005-01-26 16:20:03 CET

Will Dean <svn@indcomp.co.uk> writes:

> Just because page numbers conventionally appear at the bottom of a
> page, doesn't mean that if I want to print pages 3-4 in a Word
> processor I have to ask for '2-4'. Quite frankly, people would
> laugh at this.

Sure. But what you're asked for are differences, not pages.

Suppose you have added pages 3-4, then this only makes sense, if you
also specify that the previous version contained 1-2 pages.
Oh, there's a 2: N-1 crept into the debate ;-)

Will Dean <svn@indcomp.co.uk> writes:

> At 15:44 25/01/2005 +0000, you wrote:
> >In the code yes, but when I want the second element I use an index
> >of 1...
> But you don't say [0:1] or [1:2], do you.
> My word processing page analogy holds up whatever the first page
> number is.

I don't think, that it holds, see above.

Simon <news@sea.gmane.org> writes:

> It is slightly illogical in that for many operations, specifying a
> single revision implies all the changes associated with that
> revision.

That's the problem, IMOH (see below).

> In TSVN I can get a unified-diff for 1 revision in the
> show-log dialog. Having said that, if I select 2 consecutive
> revisions, I get the same result as if I had selected only the later
> revision, so maybe I am just confused by TSVN's own cleverness.

The base revision is implicitly specified in other places, too:
when diffing a changed file, for example.

> I know users will get it once they stop to think. The only battle I
> have is trying to make it more intuitive. I want to merge revs 23
> and 24, so why don't I specify 23-24? It's not confusing when you
> know why, but it is still counter-intuitive, so invites mistakes.

The problem is that subversion does not support the notion of a
changeset. Sometimes rN is regarded as revision N, ie. the status of
the repository root at a given point in time, sometimes (depending
on context) as the changes applied between rev N-1 and rev N.

Suppose X < Y are revision numbers. Now what does X:Y mean? Does it
mean changes starting from X *or* X-1 up to Y? Subversion interprets it
as X being the predecessor of the changes you want to denote.

Now what happens if you reverse them? So what does Y:X denote?

 * Y or Y-1 up to X ? No, wrong. Now Y does not have a "predecessor", but
   X has a "successor".
 * Y down to X or X - 1?

Were do you have to apply the -1 magic, if different URLs come into play?

If one interprets it as subversion does, then both X:Y and Y:X are
uniquely defined.

(I hope I have made the point clear.)

In the merge dialog you're forced to be explicit. No ambiguity is
allowed here.


To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Wed Jan 26 16:28:14 2005

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