On Mon, Nov 19, 2012 at 11:38 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
> Johan Corveleyn wrote on Mon, Nov 19, 2012 at 09:43:30 +0100:
>> (on a related note, I currently have a patch sitting here for adding
>> --diff-cmd to 'svnlook diff', but those changes are local to the
>
> I wonder what's the minimal change we could make to the cmdline client
> such that it can operate on transactions (and thus void the need to
> reimplement every svn proplist/diff/cat/info switch in svnlook).
> (Read-only, at least initially.)
>
> Is this something Julian's tree-read-api branch would address? Maybe we
> need to implement svn_ra_local_txn (like ra_local, but with HEAD being
> a transaction instead of a revision)? Other ideas?
I'd like to note that the output of 'svnlook diff' is slightly
different from 'svn diff', and I'd like to preserve that different
behavior (or at least preserve the svnlook behavior here). IMO the
output of 'svnlook diff' is better suited for post-commit emails.
Some of the differences are (comparing svn 1.7.7 with svnlook 1.5.4):
- 'svnlook diff' shows the differences in the same order as 'svnlook changed'.
- 'svnlook diff' shows headers like 'Modified:', 'Added:', 'Copied:
XXX (from YYY)', 'Deleted:', instead of the boring 'Index:' of 'svn
diff'.
- they both have the option --no-diff-deleted, but 'svnlook diff' then
doesn't even show the header of the deleted file, while 'svn diff'
does. (here I like 'svn diff's behavior better ... I think 'svnlook
diff' should show the header line 'Deleted:' even with
--no-diff-deleted (note: my svnlook is version 1.5.4, maybe that's
already changed ...?)).
- 'svnlook diff' has --diff-copy-from, while 'svn diff' has
--show-copies-as-adds. Sound like these two are the reverse of each
other (so maybe the default behavior is reversed). However, I just
quickly tested an 'svn diff -c XXX' of some revision which has a move,
and it always shows the moved file in full as a delete and an add, no
matter if I use --show-copies-as-adds or not. So it seems that
detecting copies with their sources is broken in 'svn diff'.
- 'svnlook diff' has --no-diff-added, while 'svn diff' doesn't seem to
have that option. Again, with --no-diff-added, 'svnlook diff' doesn't
even show the header line, which I don't really like, so that can be
improved IMO.
- 'svn diff' has --notice-ancestry, but 'svnlook diff' doesn't (and I
don't know what that option actually does).
However, this doesn't mean that both behaviors can't converge, and end
up with a single implementation. I just want to say that, in my
opinion, this means porting some of the 'better behavior' from
'svnlook diff' to this generic implementation, and not just plainly
re-using the (in my opinion) inferior behavior of 'svn diff'.
--
Johan
Received on 2012-11-19 12:35:22 CET