|
From: | John Arbash Meinel |
Subject: | Re: [Gnu-arch-users] Re: release goals for Bazaar 1.1 |
Date: | Sun, 06 Feb 2005 12:11:03 -0600 |
User-agent: | Mozilla Thunderbird 1.0 (Macintosh/20041206) |
Stefan Monnier wrote:
Maybe it is because I never want to know _who_ wrote the code when I run "cvs annotate" (I know the people working on this file or this function), but _why_ and _when_ they wrote this code. [cvs misses --summary option.]It is very possible that my use cases are different from yours. Are they?It may be. I also never care to "blame". Actually I don't even want to "annotate" either. I don't really want the output that "cvs annotate" gives me, what I want instead is to trace the live of a piece of code. I.e. from a set of code lines, I want to see all the diff+log that resulted in those lines. Also, often enough the diff+log is not what I want because it just corresponds to a re-indent or a move, so I often also want to see the parents of those diffs (i.e. the diff+log that resulted in the text that was then changed by those diffs), their parents's parents, ... until I really find the diff+log where the code was originally added. With CVS I typically do this manually: `cvs annotate' to find the relevant revision, then `cvs diff' to get the corresponding diff and `cvs log' to see the corresponding message. Then if the diff is just moving the thing around, I go back to `cvs annotate' the preceding revision, ... It's all very inefficient for me. In Arch it'll be even worse because the data structure we have is not a good match to "tla annotate". I really wish someone will write "tla trace-code" instead of writing yet-another "tla annotate". Stefan
Well, I assume tla annotate will be similar in function to abentley's fai annotate. If you try it, you can find that it has a '-s = summary' tag which includes the log message when that line was changed. fai also has the command fai revisions --modified=FILE:LINE which can give all of the revisions that modified a file on a given line. and you can do fai revisions --modified=FILE(:LINE) | xargs -n1 tla cat-log Which will do the job of printing out the log for each of the revisions that modified the file on the given line. How is that for doing what you want? I don't really know what baz annotate is going to look like (I think baz will get annotate first), but abentley is one of the major contributors there, and since he did fai annotate, I think it's going to be something similar. And there has also been discussion on the list a while back, where there is a strong possibility for cacheing the annotations for revisions. Kind of like how the ancestry.gz file was added, or how cacherevs work. You could have an annotate-log.gz file in the archive. Or maybe an annotaterev.tar.gz. You might seriously want to look into fai, since it seems to have some of the features that you are asking for. John =:->
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |