groff
[Top][All Lists]
Advanced

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

Re: [Groff] Overview, Sept. 2014


From: Werner LEMBERG
Subject: Re: [Groff] Overview, Sept. 2014
Date: Wed, 10 Sep 2014 13:23:41 +0200 (CEST)

>>  Additionally, `git blame' would become much more inconvenient to
>> use.
>
> I am not familiar with git and git blame, used cvs in my active
> time.  Could you explain, what the problem with upper case class
> names and git blame would be?

Please say `git help blame' on the command line and read this
command's manpage :-)

`git blame' allows to trace changes in a source code file, based on
the line number; here some example lines.

  dea765aa src/roff/troff/input.cpp (Werner LEMBERG 2008-09-29 21:56:05 +0000  
204) struct arg_list;
  dea765aa src/roff/troff/input.cpp (Werner LEMBERG 2008-09-29 21:56:05 +0000  
205) 
  ^351da0d troff/input.c            (James Clark    1991-06-02 04:20:34 -0500  
206) class input_iterator {
  ^351da0d troff/input.c            (James Clark    1991-06-02 04:20:34 -0500  
207) public:
  ^351da0d troff/input.c            (James Clark    1991-06-02 04:20:34 -0500  
208)   input_iterator();
  dc3c168c src/roff/troff/input.cpp (Werner LEMBERG 2004-10-10 19:08:03 +0000  
209)   input_iterator(int is_div);
  60e517eb src/roff/troff/input.cc  (Werner LEMBERG 2001-10-05 14:12:25 +0000  
210)   virtual ~input_iterator() {}

If you reformat a file (and renaming is basically a reformatting), you
need one more step to find out why this and that line was added or
changed, and by whom.

>> >         - reducing the number of global variables
>> 
>> Why?  Again, please provide an example that could benefit.
>
> because it is toublesome to find out where they are initialized,
> modified, and read.

`git grep' is your friend, searching in the git repository for a
regexp.  Example:

  > git grep color_flag

  input.cpp:int color_flag = 1;           // colors are on by default
  input.cpp:    color_flag = n != 0;
  input.cpp:    color_flag = 1;
  input.cpp:      color_flag = 0;
  input.cpp:  number_reg_dictionary.define(".color", new 
constant_int_reg(&color_flag));
  node.cpp:  if (!color_flag)
  node.cpp:  if (!color_flag)
  troff.h:extern int color_flag;

The nice thing is that `git grep' works repository-wide by default,
not directory-wide.

I suggest that you get acknowledged with the git system; it seems to
me that right now you are underestimating the power of it...


    Werner



reply via email to

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