emacs-devel
[Top][All Lists]
Advanced

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

Re: Moving files from lisp/gnus/ to lisp/net/?


From: Miles Bader
Subject: Re: Moving files from lisp/gnus/ to lisp/net/?
Date: Thu, 21 Oct 2004 10:28:52 +0900

Lars Magne Ingebrigtsen <address@hidden> writes:
>> I think this is generally considered a very bad thing to do.  It's much safer
>> (if less exciting) to just do the old cvs add+rm thing, and make the first
>> commit log in the new location "renamed from foo".
>
> But then we lose the log.

Not really -- it's still there in the old deleted file.  My practice is
simply to put in a pointer to the old file as the first commit message
in the new file, so that someone interested in pre-rename history can
look there, e.g.:

    cvs add foo; cvs commit -m"Renamed from bar" foo

Alternatively, you can do as David suggested and simply use the entire
old log as the initial commit message.

Personally I don't think it's worth the bother -- CVS logs are handy on
occasion, but they're not _that_ commonly used; if somebody has to
expend a slight bit of extra effort to look at old logs (e.g., follow
the pointer to the old name), it's not a tragedy.  What's most important
is that the information _is_ still there.

Furthermore, as Stefan pointed out, CVS logs are typically not as
necessary in GNU projects because the info is usually already there in
the ChangeLogs (often in a more useful form).

>> The reason it's bad, as I understand it, is that it essentially changes
>> history; I'm not entirely sure of the all the user-visible repercussions, but
>> I'm not sure I want to find out the hard way...
>
> Hm...  I don't quite follow you.  The CVS tree is (almost) just a
> bunch of ,v files.

The problem is that you're changing history:  By renaming the ,v file,
in effective you retroactively rename the file in old versions too.  So
sombody that tries to check out an old version using a tag (or -D...)
will see the old version _with the more recent renames applied_.

This loses for a few reasons:  old Makefiles won't work correctly, diffs
between these "retroactively updated" old versions and newer (post
rename) versions won't actually reflect the "real" difference, possibly
causing great confusion in merging, etc.

It may be that in practice the bad effects are "acceptable" -- maybe
nobody at all cares about old versions -- but it's really hard to tell
in advance, and if it turns out later there _is_ a problem, well, then
what?

It's all around safer to use the boring and clunky rm+add method.  It is
less likely to yield surprises, and I think where source control is
concerned, surprises are usually not what you want ... :-)

[From my arch-gateway perspective, I presume that if you do the rename
 on both the v5-10 branch and the trunk simultaneously, the user-visible
 effect (from "cvs update") will be the same:  the old names will
 disappear and will seem to be added under the new names.

 But ... I don't really know, and thus and somewhat worried.]

-Miles
-- 
We are all lying in the gutter, but some of us are looking at the stars.
-Oscar Wilde




reply via email to

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