automake
[Top][All Lists]
Advanced

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

Re: RFC: FAQ chapter for the manual (LONG)


From: Alexandre Duret-Lutz
Subject: Re: RFC: FAQ chapter for the manual (LONG)
Date: Thu, 06 Feb 2003 19:42:29 +0100
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu)

>>> "Ronald" == Ronald Landheer-Cieslak <address@hidden> writes:

[...]

 Ronald> I beg to differ: use the -d option with import keeps
 Ronald> the modification time, and The "commit" command retains
 Ronald> the timestamp of the file, if the act of checking it in
 Ronald> didn't change it (by expanding keywords).

My impression was that CVS could preserve timestamp on checkin,
but not on checkout.  Looks like I was wrong.  I just tried to
make a fresh checkout of Automake, and timestamps are correct.

However `cvs update' seems to always use the checkout time,
loosing original timestamps.  So although my description of 
this issue is admittedly wrong, there is still a problem.
Do you know how to tell `cvs update' to preserve timestamps?

 Ronald> AFAICT, neither autoconf nor automake nor libtool adds
 Ronald> any CVS keyswords (like $Id$, for example) - but
 Ronald> correct me if I'm wrong :)

They don't, but Autoconf and Automake will propagate keywords
from input.

[...]

 >> * The CVS repository contains all distributed files so you know
 >> exactly what is distributed, and you can checkout any prior
 >> version entirely (except for timestamps).
 Ronald>              ^^^^^^^^^^^^^^^^^^^^^
 Ronald> not true.

Agreed.

 Ronald> [snip]
 >> * Although we focused on spurious rebuilds, the converse can also
 >> happen.  CVS's timestamp handling can also let you think an
 >> out-of-date file is up-to-date.
 >> 
 >> For instance, suppose a developer has modified `Makefile.am' and
 >> rebuilt `Makefile.in', and then decide to do a last-minute change
 >> to `Makefile.am' right before checking in both files (without
 >> rebuilding `Makefile.in' to account for the change).

 Ronald> .. and while having a CVS tag in the Makefile.am file
 Ronald> (which is quite common)

Even without tag.  We are talking about `cvs update' below.

 >> This last change to `Makefile.am' make the copy of `Makefile.in'
 >> out-of-date.  Since CVS processes files alphabetically, when
 >> another developer update his or her tree, `Makefile.in' will
 >> happen to be newer than `Makefile.am'.  This other developer will
 >> not see `Makefile.in' is out-of-date.

[...]

 Ronald> AFAIK the problem with generated files in CVS is not a
 Ronald> problem of time stamps (file modification times) but
 Ronald> rather of CVS keyword expansion.

We probably have two problems.  I've never used CVS keywords (and I'm
accustomed to type `cvs add -ko ...'), but I've always been beaten
by this timestamp lossage.

Thanks to you, I'm relieved to learn it doesn't happen with 
`cvs checkout'.

 Ronald> In any case, CVS is a versioning tool, not a
 Ronald> distribution tool. For me, that means that it makes
 Ronald> sense not to have generated files in the CVS
 Ronald> repository.

I'll try to make your point in the relevant section.

Thanks for your comments.

pip-pip
-- 
Alexandre Duret-Lutz





reply via email to

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