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

Re: diff of scheduled copies

From: Folker Schamel <schamel23_at_spinor.com>
Date: 2004-09-04 14:15:09 CEST

"what I have typed (text and props)"
= svn diff

"show me what I'm about to do (text and props)"
= svn status + svn diff

-> So why a new switch?

Jack Repenning wrote:
> OK, I'm reopening a topic that's been done to death, I know. I
> spelunked in the old mails, though, and I didn't spot anyone suggesting
> the resolution I just came upon (with Ben C-S's help), so I'm hoping I
> can be glorious and heroic, and not merely annoyingly repetitive. OTOH,
> there's a lotta history here, and I probably just missed it. Oh, well.
>
> For the keyword matchers among us: this is not, by the way, the question
> of whether diff should be sensible about diffing over committed copies
> (issue 1093, now fixed in 1.1).
>
> The problem I'm talking about is: what should diff do when the WC has
> scheduled-copy (but perhaps not further modified) files?
>
> Short form: I suggest we add two switches:
> --show-copies produces lines like what "svn stat" shows ("A +
> filename")
> if there have been tweaks since the copy, a
> diff-against-text-base
> is also shown
> --verbose causes a diff-against-empty-file also to appear
> not sure of the right answer in the presence of
> post-copy tweaks
>
> Rationale:
>
> There are, I believe, two basic opinions:
>
> One opinion (held, among others, by the present implementation) is that
> "svn diff" in this situation should show me "the changes I've recently
> made." Since these files copied into this wc from elsewhere have not
> been modified by "me", diff should not mention them. In an
> over-simplification which I do *not* mean disparagingly, but only
> present so I can have a simple handle on the idea, I'll call this the
> "what have I typed" philosophy.
>
> Another opinion (naturally enough, held by me), diff should show me "the
> changes I'm about to inflict on the world with my commit." Since this
> is my own opinion, I can be not only convenient but even disparaging in
> calling this the "show me what I'm about to do" philosophy.
>
> Of course, there are valid reasons to want either one of these questions
> answered, or there wouldn't be a difference of opinion. Since we now
> have an implementation in circulation that provides one philosophy, I do
> not recommend we change the default behavior. But I do recommend we add
> a switch that provides the other behavior, and I present not only the
> proposal and a switch name to do the deed, but what I hope is a coherent
> model that will make all sides, and new users as well, like the new
> "diff" even better than the old.
>
> I think there's a common understanding of "diff" here, at a suitably
> hand-wavey level, and it's in the general "what I changed"
> neighborhood. The problem is that these files copied in from elsewhere
> are ambiguous by this test. We may generally assume that they've
> already been verified as goodness over in that other branch whence I
> copied them, or I wouldn't have done the copy. And I'm not really
> responsible for their detailed content. And (very important), if it
> happens that I first copied them, and then tweaked them a little bit, I
> really *am* responsible for the tweaks, and I think all would agree it
> would be swell if diff would highlight the tweaks a bit.
>
> So much for consensus; what shall we do, then, about the unmodified,
> copied files?
>
> I note that "svn diff"'s output does not, even today, consist solely of
> "modified file text." If you've changed props, you get a delta
> description modeled upon the file-delta description, but definitely
> different. I propose an additional not-quite-like-file-delta output form.
>
> Without either switch, behavior is unchanged (good for all those people
> writing scripts that parse diff output).
>
> With only "--show-copies", we have a kind of compromise: it's "what have
> I typed" enough not to bother me with those file contents I copied over,
> and yet it's "what I'm about to do" enough to at least remind me I did
> that. More importantly, if I've tweaked a copied file, we would still
> get the text-base diff we already get today: first the "A + filename"
> line, and then the additional delta.
>
> With "--verbose", we get full file text for copies. I think (but this
> is the least confident of my suggestions) that we should not also show
> the text-base delta here; if there have been tweaks, we should show the
> full file text as it is now, tweaks and all. I might be wrong about
> that. Maybe we should show full text of the copied version (i.e., the
> text-base), and then delta for tweaks. Someone who likes the "what I
> typed" philosophy should probably comment here.
>
> There is presently no "--verbose" switch to diff, and without
> "--show-copies" there would continue to be no meaning to it; if this
> inorthogonality bothers anyone, we might think about a broader meaning
> of "--verbose" in the diff context, or we might use the (mutually
> exclusive) option-pair "--show-copies" and "--show-full-copies".
>
>
>
> -==-
> Jack Repenning
> CollabNet, Inc.
> 8000 Marina Boulevard, Suite 600
> Brisbane, California 94005
> o: 650.228.2562
> c: 408.835.8090
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Sep 4 14:15:35 2004

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.