gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Re: release goals for Bazaar 1.1


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
=:->

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]