unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dan Nicolaescu <dann@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: rename and clean unexec.c
Date: Fri, 30 Jul 2010 12:30:35 +0300	[thread overview]
Message-ID: <83vd7xb9l0.fsf@gnu.org> (raw)
In-Reply-To: <yxqvd7xto79.fsf@fencepost.gnu.org>

> Cc: emacs-devel@gnu.org
> From: Dan Nicolaescu <dann@gnu.org>
> Date: Fri, 30 Jul 2010 03:37:30 -0400
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Cc: emacs-devel@gnu.org
> >> From: Dan Nicolaescu <dann@gnu.org>
> >> Date: Thu, 29 Jul 2010 17:18:02 -0400
> >> 
> >> I am not sure why are so opposed to this.
> >
> > Not "so opposed", just opposed.  I'm opposed in principle to every
> > cosmetic change that doesn't have a very good reason.  
> 
> Maintainability is a very good reason.   Keeping bad names is not.

It should be obvious by now that we disagree on how much this
particular renaming will contribute to better maintainability.

> > That's because
> > such changes obscure real code changes and make forensics harder.
> 
> Can you please explain exactly how renaming a file managed by a decent
> VCS makes forensics harder?

I can only speak about Bazaar, as I'm not familiar enough with
similar facilities of other dVCSs.

The tools I use for forensics are:

  . bzr log
  . bzr diff
  . bzr annotate
  . bzr bisect (and bzr revert in general)
  . ChangeLog entries
  . related discussions on emacs-devel and bug-gnu-emacs

"bzr diff" and "bzr annotate" indeed support renaming nicely and
transparently, but they are never enough to fully investigate the
reasons for some change.  They just show what was changed and when,
and who did that, so they are only the starting point.

A minor gripe about "bzr bisect" and "bzr revert" is that they will
move the renamed (or deleted) files to alternate names, which is fine,
but requires one to be alert in order to prevent all kind of weird
errors and warnings down the line.

The rest of the tools I use have problems with renaming:

  . The latter two need that you know about the renaming, or else you
    won't hit relevant information in a search.
  . The first one generally shows a slightly edited copy of a
    ChangeLog entry, so it doesn't support renaming well, either; even
    the entry for the rename itself will only mention the renaming if
    the committer remembered to state that, i.e. it's prone to human
    error.

In addition, "bzr log" seems to have a bug that rears its ugly head
with renamed files.  Observe:

  $ bzr log -c26091 --long src/s/usg5-4-common.h
  bzr: ERROR: Path unknown at end or start of revision range: src/s/usg5-4-common.h

(It works if I use usg5-4.h, the name it had when revno 26091 was
committed.)

Granted, these are not acute problems, more like annoyances, but if
you are in a hurry and need to find the information quickly and
efficiently, they could defeat you.

Again, I don't object to renaming in general.  We renamed (or moved)
quite a few files lately, and I don't remember myself objecting to
even one of them.  I just don't see a good reason in this particular
case.

Now, I hope that my reasons are clear, as are yours.  If only the two
of us have opinions on this matter, we could go on arguing forever.  I
think at this point it would be good to hear opinions from others,
preferably Stefan and/or Chong.



  reply	other threads:[~2010-07-30  9:30 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-28  4:38 rename and clean unexec.c Dan Nicolaescu
2010-07-28 17:45 ` Eli Zaretskii
2010-07-28 19:46   ` Dan Nicolaescu
2010-07-28 20:13     ` Óscar Fuentes
2010-07-28 20:53       ` Eli Zaretskii
2010-07-28 22:55         ` Dan Nicolaescu
2010-07-29  3:06           ` Eli Zaretskii
2010-07-29  3:21             ` Dan Nicolaescu
2010-07-29 17:59               ` Eli Zaretskii
2010-07-29 18:09                 ` Óscar Fuentes
2010-07-29 18:19                 ` Dan Nicolaescu
2010-07-29 20:37                   ` Eli Zaretskii
2010-07-29 21:18                     ` Dan Nicolaescu
2010-07-30  6:39                       ` Eli Zaretskii
2010-07-30  7:37                         ` Dan Nicolaescu
2010-07-30  9:30                           ` Eli Zaretskii [this message]
2010-08-04 16:40                             ` Dan Nicolaescu
2010-08-04 16:55                             ` Óscar Fuentes
2010-08-04 17:38                               ` Eli Zaretskii
2010-08-04 21:58                                 ` Óscar Fuentes
2010-08-05  3:07                                   ` Eli Zaretskii
2010-07-30  9:12                       ` Stefan Monnier
2010-08-05 17:27                         ` Eli Zaretskii
2010-08-05 18:41                           ` Dan Nicolaescu
2010-08-05 21:38                           ` Stefan Monnier
2010-07-29  7:54         ` Andreas Schwab
2010-07-28 20:46     ` Eli Zaretskii
2010-08-05 17:31       ` Eli Zaretskii
2010-08-05 18:46         ` Dan Nicolaescu
2010-08-05 21:39           ` Stefan Monnier
2010-08-13 11:19           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83vd7xb9l0.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dann@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).