[Top][All Lists]

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

[Gnu-arch-users] tla-cvs-sync / cvs keyword question

From: Miles Bader
Subject: [Gnu-arch-users] tla-cvs-sync / cvs keyword question
Date: 20 Mar 2004 09:00:13 +0900

I guess this is the wrong mailing list, but there are some knowledgeable
people here so...

I'm getting very annoyed at always having to clean up the mess left by
CVS keyword expansion when merging among my various arch emacs branches;
the main problem is that I re-sync an arch-merged branch with a
_different_ cvs branch, which is a very handy way of keeping CVS
up-to-date, but I then always get spurious conflicts because of the !#$%
keyword expansion.

So, I'd really like to just disable keyword expansion entirely when
syncing between CVS and arch (at least in the emacs sources, these
keywords serve no useful purpose, so it's no loss).

However, looking at the CVS docs, I'm not sure which cvs option is best
for this.

The CVS docs, at least the sections I looked at, are very vague on how
keyword expansion actually happens, so my mental model of what's going
on might be screwed up.

The _best_ thing would be if CVS stored keywords `unexpanded' in the
repository, and checkout/update expanded them into the working
directory.  Then I couuld just use some option which said `never expand
anything'.  However, the docs give the impression (but don't say
explicitly) that cvs stores the _expanded_ form in the repository, and
so no matter what you do, you're screwed.

  -kk  --  `canonicalizes' keywords (e.g., $Id$); best effect for
           merging; if keywords are stored expanded in the repository,
           this actually modifies the checked-out file, _and_ since the
           command-line option overrides any file that's marked as
           `binary' (-kb), it might screw up binary files.

  -ko  --  Looks like it actually leaves the keyword untouched, so it
           gets whatever expanded form was in the repository.  This
           would avoid spurious rewriting when updating a file on a cvs
           branch (I think), but might result in occasional conflicts,
           as the various branches are already going to contains
           different expanded keywords, even in files that are otherwise

  -kb  --  Like -ko but also does no line-ending conversion.

So I'm not sure what to do; any hints?

I really, really want to just not have keyword expansion at all...

Well I guess the other option in this case is to get permission to
delete the use of keywords from the source files... maybe not that hard...
but it would be nice to have a solution which could be used for cases
other than emacs.


Quidquid latine dictum sit, altum viditur.

reply via email to

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