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

Re: Toolbox 1.5.0 release candidates

   There are three concerns with the footer.  First, it is
   auto-generated, and as best practice you shouldn't store
   auto-generated components in version control -

By that reasoning, one should never store a checksum inside a
version-controlled file.  This is a very reasonable position, assuming
that a version control system could never ever have a bug that
corrupts a file.

   Second, it duplicates information found both in file metadata and (in
   greater detail) the version control log itself

Given your first objection, I presume that you are too young to have
learned one fact of digital life: Any piece of information about a
file not contained within the file will eventually become separated
from the file and lost.  That is why, if you write code based on a
TLA+ spec, a copy of that spec should be embedded as a comment within
the code.  Unfortunately, the method with which information is encoded
in a file is an important piece of information that cannot be
contained in the file.  Hence, all files will eventually become
unreadable.  My solution has been to encode all my source files in
ASCII, which I seem to have correctly predicted will outlive me.

   Third, it will cause merge conflicts any time two users edit a spec
   concurrently - even if their edits are to completely different parts
   of the file.

This is a valid objection, though a minor one in light of the fact
that a timestamp is added to an existing file only if it already has
one.  If people find it enough of a nuisance, it should be easy enough
to add a preference to disable timestamping.  (And perhaps one to add
a timestamp even if it doesn't already exist.)  On the other hand,
a version control system written by someone who is not so egotistical
as to believe that his system will be used forever would provide some
method for properly handling such timestamps.