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

Re: Why does "svn diff" forbid "-rCOMMITTED"?

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2003-09-24 01:40:37 CEST

kfogel@collab.net wrote:
> Julian Foad <julianfoad@btopenworld.com> writes:
>
>>Anyone agree or disagree with this?
>
> Uh, can it be boiled down to a simpler question or set of questions?
>
> (Sorry, don't mean to be rude, but it's hard wade through...)

OK, I'll re-summarise and simplify.

I noticed that "diff -rCOMMITTED" is explicitly forbidden but "diff -rPREV" is allowed, and asked if there is a good reason for this. I proposed to remove the check that forbids "diff -rCOMMITTED". C-Mike Pilato said that would be wrong and asked what its meaning would be when used with a URL input path.

1. Do we agree that COMMITTED means "the newest revision in which the item was changed before or at the BASE revision in this working copy"? I believe this is how it is implemented. If so, it has no meaning for a target that is specified by a URL, only for a target that is specified by a local path. On a target specified by a local path, "diff -rCOMMITTED", if not forbidden, would work just as well as "diff -rPREV" does.

Related note:

Jack Repenning wondered whether we could extend the meaning of "BASE" to cover also the revision referred to by a URL, and then have "COMMITTED" and "PREV" work relative to that BASE, so that you could say:

  svn diff -r PREV:COMMITTED http://host/repo/trunk/dir/foo.c@3217

I would say that, while there is some redundancy in that particular example, the principle is sound and useful and worth reserving as a possible future enhancement.

2. Do we agree that, according to its definition, the version of a file referenced by "-rCOMMITTED" is always the same version that is referenced by "-rBASE"? By "version" I mean content and properties. (I do not mean the physical access method - whether it is read from the WC admin area as "text base" or is retrieved from the repository - as I consider that to be an implementation detail called "caching".)

3. Are we willing to accept that, from the user's point of view, it does not matter whether the source of text for a "diff -rBASE" comes from the cache (text-base) or directly from the repository, as long as it is the correct content? I feel that the current implementation is a little biased toward the notion that "-rBASE" must be retrieved from the WC text-base, and "-rN" must be retrieved from the repository even if N==BASE.

If "we" answer these questions in the affirmative, then I will want to remove the prohibition of "-rCOMMITTED" from do_diff, and work gradually* towards accessing the text-base cache when any revision kind resolves to the right version. But we can discuss that later if necessary.

- Julian

[* After all bug fixing is finished, of course :-)]

[Old context deleted. Your mailer seems to have removed all the blank lines, making it even harder to wade through :-)]

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Sep 24 01:41:52 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.