darcs

Issue 25 more readable annotate output

Title more readable annotate output
Priority feature Status resolved
Milestone 2.8.0 Resolved in 2.8.0
Superseder accept some prefix of patchinfo hash for hash matcher
View: 1866
Nosy List cakoose, dmitry.kurochkin, edwint, kowey, markstos, thorkilnaur, tommy, tux_rocker, twb, zedek
Assigned To
Topics UI

Created on 2005-11-28.10:13:25 by edwint, last changed 2013-06-17.02:40:32 by gh.

Messages
msg92 (view) Author: edwint Date: 2005-11-28.10:13:21
I'm not sure whether this is really a bug, or just darcs not behaving in the way
I'd expect. "darcs annotate filename" doesn't give the name, date etc of the
last modifying patch. This is with 1.0.5rc1 on Windows.
An example of this happening (using cygwin's shell, because it makes things
easier to do, but the same thing happens when it's done in cmd.exe):

[edwint: ...c/New Folder]$ mkdir test
[edwint: ...c/New Folder]$ cd test
[edwint: ...New Folder/test]$ darcs init
[edwint: ...New Folder/test]$ cat > x
line 1
line 2
[edwint: ...New Folder/test]$ darcs add x
[edwint: ...New Folder/test]$ darcs record
addfile ./x
Shall I record this patch? (1/?) [ynWsfqadjkc], or ? for help: y

hunk ./x 1
+line 1
+line 2
Shall I record this patch? (2/?) [ynWsfqadjkc], or ? for help: y

What is the patch name? Created x
Do you want to add a long comment? [yn] n

Finished recording patch 'Created x'
[edwint: ...New Folder/test]$ cat >> x
Line 3
[edwint: ...New Folder/test]$ darcs record 
hunk ./x 3
+Line 3
Shall I record this patch? (1/?) [ynWsfqadjkc], or ? for help: y

What is the patch name? Changed x
Do you want to add a long comment? [yn] n

Finished recording patch 'Changed x'
[edwint: ...New Folder/test]$ darcs annotate x
# File x created by [Created x
# edwint**20051128095010]  as ./x
# Following line added by [Created x
# edwint**20051128095010] 
 line 1
# Following line added by [Created x
# edwint**20051128095010] 
 line 2
+Line 3

There is no reference to anything that would make it possible to find out what
patch actually added the "Line 3"

Edwin
msg93 (view) Author: tommy Date: 2005-11-28.10:58:31
The behavior is the same with linux and also with darcs 1.0.3,
and the documentation says:

  If a file name is given, the last modifying patch details of
  that file will be output, along with markup indicating patch
  details when each line was last (and perhaps next) modified.

I think the documentation is a little hard to understand.
And it is also a little unexpected that 'darcs ann f' gives
the same result as 'darcs ann f -p .'

But then, there may be tools parsing darcs's output relaying
on the current behavior.
msg96 (view) Author: droundy Date: 2005-11-28.13:44:47
On Mon, Nov 28, 2005 at 10:58:32AM +0000, Tommy Pettersson wrote:
> The behavior is the same with linux and also with darcs 1.0.3,
> and the documentation says:
> 
>   If a file name is given, the last modifying patch details of
>   that file will be output, along with markup indicating patch
>   details when each line was last (and perhaps next) modified.
> 
> I think the documentation is a little hard to understand.
> And it is also a little unexpected that 'darcs ann f' gives
> the same result as 'darcs ann f -p .'

Indeed that is the reasoning.  The + indicates "this patch", which is
taken to be the most recent one.  Probably not the best choice.

> But then, there may be tools parsing darcs's output relaying
> on the current behavior.

I'm not sure, but wouldn't want to change the behavior for this reason.  We
could, however, add a new version of annotate as a query subcommand if
someone wanted to work on this.
-- 
David Roundy
http://www.darcs.net
msg97 (view) Author: edwint Date: 2005-11-28.14:11:04
David Roundy wrote:
> Indeed that is the reasoning.  The + indicates "this patch", which is
> taken to be the most recent one.  Probably not the best choice.

Ah, I had misunderstood what "this patch" meant. I had been thinking it 
meant the most recent patch which touched the file in question, rather 
than the most recent patch full stop.  Things make more sense now.

Edwin
msg98 (view) Author: cakoose Date: 2005-11-28.21:41:16
I would appreciate a command that didn't give special treatment to the most
recent patch.  The "darcs-reannotate" tool I wrote chokes on the special case.

I'm willing to work on an option that disables the special treatment.  Should it
be an option to "annotate" or a subcommand of "query"?
msg103 (view) Author: tommy Date: 2005-11-29.12:13:53
On Mon, Nov 28, 2005 at 09:41:17PM +0000, Kannan Goundan wrote:
> I'm willing to work on an option that disables the special treatment.  Should it
> be an option to "annotate" or a subcommand of "query"?

I think the best thing is a completely new Query subcommand
that does not replicate the mess of Annotate.  It should
basically do what Annotate does on files and directories (the
"blame" output), but in a clean and easy to read/parse form.
I haven't looked at your reannotate tool, but perhaps
that format could be used.  It would of course be good to
have the local patch numbers in place first, so that line
annotations could use those numbers/hashes, but the command
can be documented as experimental and changed later.

With a --tag option, it should output that version of the
file/directory, and a --patch option could do the +/- thing.
msg105 (view) Author: droundy Date: 2005-11-29.12:48:52
On Tue, Nov 29, 2005 at 12:13:54PM +0000, Tommy Pettersson wrote:
> I think the best thing is a completely new Query subcommand
> that does not replicate the mess of Annotate. [...]

Agreed.

> With a --tag option, it should output that version of the
> file/directory, and a --patch option could do the +/- thing.

I agree on the --tag, but think that probably for consistency the --patch
option should behave the same as --tag, except that it refers to a version
right after that patch (i.e. doesn't do the +/- thing).  We could perhaps
have a separate command that "shows changes to a file caused by a given
patch" which does the +/- thing if someone finds that useful (which is not
unlikely).
-- 
David Roundy
http://www.darcs.net
msg2567 (view) Author: markstos Date: 2008-01-19.02:06:53
I'm marking this as "feature" because the communication seems to indicate that
the current "annotate" is working as expected, although it may be unintuitive. A
new feature in the form of a "darcs show" subcommand is desired. 

I also removed the assignment label, since the assignee hasn't produced any work
in two years.
msg8546 (view) Author: kowey Date: 2009-08-27.17:02:47
Merging in issue166.  From msg8009 and msg8011:

I was chatting with Johan Tibell about this, and he suggested this output:
  LineNum Author Line

See also:
  http://badgertronics.com/writings/cvs/cvsannotate-sample.html
msg9678 (view) Author: kowey Date: 2009-12-24.16:29:41
I realise this did not come up during the hacking sprint discussion, but this
may be a good candidate for Darcs 2.5
msg11277 (view) Author: kowey Date: 2010-06-06.17:23:29
I claim that issue1866 is a pre-requisite for this.
msg11472 (view) Author: tux_rocker Date: 2010-06-18.06:30:51
This is not going to happen before 2.5.

Moreover, as a grumpy old man, I'd never let anyone introduce a command
that does the same thing as annotate but with a different output format.
Is there a good reason why we can't change the current annotate output
format?
msg11473 (view) Author: kowey Date: 2010-06-18.08:57:16
I'd be worried about compatibility, but personally I would prefer just
replacing annotate with the new output or maybe having (ugh) a flag if
breaking 3rd party tools is a big deal.
msg11475 (view) Author: markstos Date: 2010-06-18.13:28:46
On Fri, 18 Jun 2010 06:30:52 +0000
Reinier Lamers <bugs@darcs.net> wrote:

> 
> Reinier Lamers <tux_rocker@reinier.de> added the comment:
> 
> This is not going to happen before 2.5.
> 
> Moreover, as a grumpy old man, I'd never let anyone introduce a command
> that does the same thing as annotate but with a different output format.
> Is there a good reason why we can't change the current annotate output
> format?

The current annotate output is unfriendly and unhelpful, I agree that
replacing it is a better solution. The change could be announced early
in the alpha/beta cycle to give third-parties a chance to respond in
case they depend on it. 

   Mark
msg12368 (view) Author: kowey Date: 2010-08-29.08:07:56
Just updating this ticket so as not to overspecify: we may just well
replace annotate itself or add a flag like --output=easy
msg12454 (view) Author: kowey Date: 2010-09-04.06:41:45
Here is the format used by git blame:
http://book.git-scm.com/5_finding_issues_-_git_blame.html
msg12495 (view) Author: markstos Date: 2010-09-07.12:56:08
> Here is the format used by git blame:
> http://book.git-scm.com/5_finding_issues_-_git_blame.html

Looks OK to me. 

   Mark
msg16872 (view) Author: gh Date: 2013-06-17.02:40:31
annotate was replaced in 2.8.
History
Date User Action Args
2005-11-28 10:13:25edwintcreate
2005-11-28 10:58:32tommysetstatus: unread -> unknown
nosy: droundy, tommy, edwint
messages: + msg93
2005-11-28 13:44:48droundysetnosy: droundy, tommy, edwint
messages: + msg96
2005-11-28 14:11:04edwintsetnosy: droundy, tommy, edwint
messages: + msg97
2005-11-28 21:41:17cakoosesetnosy: + cakoose
messages: + msg98
2005-11-29 12:13:54tommysetnosy: droundy, tommy, edwint, cakoose
messages: + msg103
2005-11-29 12:48:53droundysetnosy: droundy, tommy, edwint, cakoose
messages: + msg105
2005-11-29 12:51:06droundysetnosy: droundy, tommy, edwint, cakoose
2006-05-09 23:08:22tommylinkissue166 superseder
2008-01-19 02:06:54markstossetpriority: bug -> feature
nosy: + markstos, kowey, beschmi
assignedto: cakoose ->
messages: + msg2567
title: Darcs annotate giving odd results -> Create new "darcs show" subcommand which works like "annotate" but for files and directories
2008-02-16 01:45:30markstossetpriority: feature -> wishlist
status: unknown -> deferred
nosy: droundy, tommy, beschmi, kowey, markstos, edwint, cakoose
title: Create new "darcs show" subcommand which works like "annotate" but for files and directories -> wish: Create new "darcs show" subcommand which works like "annotate" but for files and directories
2009-08-06 17:32:38adminsetnosy: + jast, Serware, dmitry.kurochkin, darcs-devel, zooko, dagit, mornfall, simon, thorkilnaur, - droundy, edwint, cakoose
2009-08-06 20:46:28adminsetnosy: - beschmi
2009-08-10 21:55:16adminsetnosy: + edwint, cakoose, - darcs-devel, zooko, jast, dagit, Serware, mornfall
2009-08-25 17:47:23adminsetnosy: + darcs-devel, - simon
2009-08-27 13:55:18adminsetnosy: tommy, kowey, markstos, darcs-devel, edwint, cakoose, thorkilnaur, dmitry.kurochkin
2009-08-27 17:02:51koweysetstatus: deferred -> needs-implementation
priority: wishlist -> feature
title: wish: Create new "darcs show" subcommand which works like "annotate" but for files and directories -> wish: Create new "darcs show" subcommand which works like "annotate" but with more readable output
nosy: + twb, zedek
messages: + msg8546
topic: + UI
2009-12-24 16:29:08koweysettopic: + Target-2.5
2009-12-24 16:29:44koweysetmessages: + msg9678
2010-06-06 17:23:30koweysetmessages: + msg11277
superseder: + accept some prefix of patchinfo hash for hash matcher
2010-06-15 20:52:04adminsetmilestone: 2.5.0
2010-06-15 20:59:33adminsettopic: - Target-2.5
2010-06-18 06:30:52tux_rockersetnosy: + tux_rocker
messages: + msg11472
milestone: 2.5.0 -> 2.8.0
2010-06-18 08:57:17koweysetnosy: - darcs-devel
messages: + msg11473
2010-06-18 13:28:46markstossetmessages: + msg11475
2010-08-29 08:07:57koweysetmessages: + msg12368
title: wish: Create new "darcs show" subcommand which works like "annotate" but with more readable output -> more readable annotate output
2010-09-04 06:41:45koweysetmessages: + msg12454
2010-09-07 12:56:09markstossetmessages: + msg12495
2013-06-17 02:40:32ghsetstatus: needs-implementation -> resolved
messages: + msg16872
resolvedin: 2.8.0