You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "C. Scott Ananian" <ca...@lesser-magoo.lcs.mit.edu> on 2001/08/27 16:26:51 UTC

'cvs annotate' on reverted code.

On 27 Aug 2001 kfogel@tigris.org wrote:

>   Log:
>   Revert accidental commit 1.13, now back to contents of rev 1.12.

This brings up another CVS problem, which I wonder if the SVN guys have
thought of:
  cvsblame (or 'cvs annotate') is fantastic for finding out who wrote a
  particular line of code.  but when patches are reverted, the cvsblame
  information gets lost, because the annotation shows the person who
  *reverted* instead of the person (before them) who originally did the
  commit.

Has anyone thought of trying to preserve the annotation information in
SVN?  My current CVS-hosted project uses special tags (like @REVERT@) to
instruct a hacked version of cvs-blame.  The final result can be quite
useful:
http://www.flex-compiler.lcs.mit.edu/Harpoon/srcdoc/harpoon/Backend/Runtime1/ObjectBuilder.html

SVN ideas: provide a 'svn revert' command.  This would check-out an old
version into the working copy, but also set a property on the working copy
indicating that this was a reversion.  Then when the file is (possibly
modified then) committed, the property would exist to inform an annotation
tool of the true history of the file.

Possibly the 'change set' idea and some of the other SVN concepts can
accomplish this already.  I'm just bringing it up because it's a recurring
CVS annoyance and I want to make sure the misfeature doesn't propagate
into SVN. =)
 --s

counter-intelligence Waihopai planning Castro WTO Panama Khaddafi 
Boston Noriega Blair DC security Nader Suharto Moscow Sabana Seca 
              ( http://lesser-magoo.lcs.mit.edu/~cananian )
 --
 "These students are going to have to find out what law and order is
 all about."  -- Brig. General Robert Canterbury, Noon, May 4, 1970,
 minutes before his troops shot 13 unarmed Kent State students, killing 4.
 --
            [http://www.cs.cmu.edu/~dst/DeCSS/Gallery/]
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <si...@mit.edu>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [SVN-DEV] Re: 'cvs annotate' on reverted code.

Posted by kf...@collab.net.
"C. Scott Ananian" <ca...@lesser-magoo.lcs.mit.edu> writes:
> sounds good to me.  somebody should file an 'issue' on this idea so
> it doesn't get forgotten?

Things like this are demand-driven and won't be forgotten, because
they'll annoy people repeatedly until someone fixes it.  And if it
never annoys anyone enough, then it won't get done, in which case it
shouldn't have been an issue in the first place.

That is to say, let's try to use the issue tracker for only those
cases where reality itself won't serve as an issue tracker. :-)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [SVN-DEV] Re: 'cvs annotate' on reverted code.

Posted by "C. Scott Ananian" <ca...@lesser-magoo.lcs.mit.edu>.
On 27 Aug 2001 kfogel@collab.net wrote:

> Branko =?ISO-8859-2?Q?=C8ibej?= <br...@xbc.nu> writes:
> > C. Scott Ananian wrote:
> > >SVN ideas: provide a 'svn revert' command.  
> > 
> > There already is a svn revert command. It probably doesn't play nice 
> > with the blame, though. That might  be worth invesrigating after M3.
> 
> +1.  Good ideas, but let's do it later.

sounds good to me.  somebody should file an 'issue' on this idea so
it doesn't get forgotten?
 --s

Israel Bejing [Hello to all my fans in domestic surveillance] anthrax 
Bush munitions Cocaine direct action postcard mail drop supercomputer 
              ( http://lesser-magoo.lcs.mit.edu/~cananian )
 --
 "These students are going to have to find out what law and order is
 all about."  -- Brig. General Robert Canterbury, Noon, May 4, 1970,
 minutes before his troops shot 13 unarmed Kent State students, killing 4.
 --
            [http://www.cs.cmu.edu/~dst/DeCSS/Gallery/]
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <si...@mit.edu>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: 'cvs annotate' on reverted code.

Posted by kf...@collab.net.
Branko =?ISO-8859-2?Q?=C8ibej?= <br...@xbc.nu> writes:
> C. Scott Ananian wrote:
> >SVN ideas: provide a 'svn revert' command.  
> 
> There already is a svn revert command. It probably doesn't play nice 
> with the blame, though. That might  be worth invesrigating after M3.

+1.  Good ideas, but let's do it later.

-K

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: 'cvs annotate' on reverted code.

Posted by Branko Čibej <br...@xbc.nu>.
C. Scott Ananian wrote:

>SVN ideas: provide a 'svn revert' command.  
>

There already is a svn revert command. It probably doesn't play nice 
with the blame, though. That might  be worth invesrigating after M3.


-- 
Brane �ibej   <br...@xbc.nu>            http://www.xbc.nu/brane/




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [SVN-DEV] Re: 'cvs annotate' on reverted code.

Posted by "C. Scott Ananian" <ca...@lesser-magoo.lcs.mit.edu>.
On Mon, 27 Aug 2001, Greg Stein wrote:

> Essentially, you can get a history of *every* change to *every* line in your
> blame/annotation like thing. I'm not sure how the UI would work, but I can
> imagine a few variations.

right.  this is useful, but more useful is finding out whose code went
into a *specific* version of a file.  One you know who the guilty one is,
then you usually want to drill down to see whether they created the code
or just modified it, whether it was correct before they touched it, etc,
etc.

but i'm just talking about the top level interface. "who's the last person
to touch this line of code".  and usually there i *don't* want to know
about reverts, because they didn't actually "change" the code.
 --s

SDI NRA Moscow Hawk Rule Psix Suharto Morwenstow COBRA JANE Kennedy 
ammunition North Korea tonight munitions plutonium President Washington 
              ( http://lesser-magoo.lcs.mit.edu/~cananian )
 --
 "These students are going to have to find out what law and order is
 all about."  -- Brig. General Robert Canterbury, Noon, May 4, 1970,
 minutes before his troops shot 13 unarmed Kent State students, killing 4.
 --
            [http://www.cs.cmu.edu/~dst/DeCSS/Gallery/]
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <si...@mit.edu>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: 'cvs annotate' on reverted code.

Posted by Greg Stein <gs...@lyra.org>.
On Mon, Aug 27, 2001 at 12:26:51PM -0400, C. Scott Ananian wrote:
> On 27 Aug 2001 kfogel@tigris.org wrote:
> >   Log:
> >   Revert accidental commit 1.13, now back to contents of rev 1.12.
> 
> This brings up another CVS problem, which I wonder if the SVN guys have
> thought of:

Actually, yes :-) BitKeeper has a feature which may solve what you're asking
for. I'm not sure that I understand it properly, but from talking with Larry
McVoy a while back, he described a feature of BK.

Essentially, you can get a history of *every* change to *every* line in your
blame/annotation like thing. I'm not sure how the UI would work, but I can
imagine a few variations.

Note that ViewCVS's annotate feature (like cvsblame) can annotate any
specific revision of a file. Thus, you could find that a section was changed
in 1.23; then you pull up the annotation for 1.22 and look at the prior
change to that section.

In an "all changes to <this>" type mode, I'd think you could supply some
kind of UI that would allow you to backtrace like that.

The problem effectively boils down to navigating a two dimensional space
(lines vs history-of-changes-to-that-line), yet you only have one dimension
for displaying that information (downwards on a page). Thus, the need for an
interesting UI to handle this properly.

And yes... I plan to enhance ViewCVS to also support SVN repositories. My
biggest problem has been a new name :-) A lesser problem is how much of the
ViewCVS-like functionality should go into mod_dav_svn vs. what goes into an
external CGI/system.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org