[Top][All Lists]
[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