unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* deleting rcs keywords from emacs sources
@ 2004-03-23  6:46 Miles Bader
  2004-03-23  7:47 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Miles Bader @ 2004-03-23  6:46 UTC (permalink / raw)


A few files in the emacs source have embedded `rcs keywords', which look
like $Id: ... $ and are rewritten by cvs upon checkout/checkin (I'm not
entirely sure which) to automatically reflect 

These are quite annoying when merging between branches because they
cause spurious conflicts (as they contain the revision number, they are
guaranteed to differ between branches), and as far as I know aren't
really particularly useful, so I'd like to simply delete them from the
emacs sources.

Any objections?

-Miles
-- 
97% of everything is grunge

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23  6:46 Miles Bader
@ 2004-03-23  7:47 ` Eli Zaretskii
  2004-03-23 10:56   ` Kim F. Storm
  2004-03-23  9:51 ` spiegel
  2004-03-24  5:34 ` Richard Stallman
  2 siblings, 1 reply; 32+ messages in thread
From: Eli Zaretskii @ 2004-03-23  7:47 UTC (permalink / raw)
  Cc: emacs-devel

> From: Miles Bader <miles@lsi.nec.co.jp>
> Date: 23 Mar 2004 15:46:35 +0900
> 
> These are quite annoying when merging between branches because they
> cause spurious conflicts (as they contain the revision number, they are
> guaranteed to differ between branches), and as far as I know aren't
> really particularly useful, so I'd like to simply delete them from the
> emacs sources.

I, for one, would be very happy when these keywords are removed.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
@ 2004-03-23  9:51 ` spiegel
  2004-03-23 10:16   ` Miles Bader
  2004-03-23 11:41   ` Juanma Barranquero
  0 siblings, 2 replies; 32+ messages in thread
From: spiegel @ 2004-03-23  9:51 UTC (permalink / raw)
  Cc: spiegel

> [...] and as far as I know aren't really particularly useful,
> so I'd like to simply delete them from the
> emacs sources.

I absolutely, positively couldn't live without them. I have in fact doubts whether 
intelligent life on earth would be possible at all without them. Of course 
that could be just me, so I'm open for counter-arguments :-)

I have used these keywords on countless occasions in VC maintenance. I don't 
know how I should identify the file versions that people are talking about 
without these stamps inside the files.  It is true that as long as people 
use vanilla code from an Emacs release, they can always say "I have this 
problem with VC from Emacs 21.x", but it is still easier for me if they 
just say "vc.el version 1.311 barfs on me".  Then I don't have to go looking 
which version we shipped with Emacs 21.x (if a release tag was applied at 
all).

Identifying the version becomes impossible when I send people an updated copy 
of vc.el (which I often do), or they grab it from CVS.
What other means would be available?  Should I ask for an md5sum of the 
file, or a copy of the file itself and diff it against my copy?

If the headers are a problem during merging, I think it would be very worthwhile 
to implement a way for the merge operation to ignore them. That would be 
helpful for many people like myself for whom the version headers are an 
integral part of their work routine. (Incidentally, a user once reported 
a VC bug to me in an old version that didn't have headers in the file, and 
he was astonished that he couldn't find any.)

As I said, I am certainly open for alternatives (incidentally, does your remark 
mean that arch doesn't have version headers at all, Miles)?

Sorry for the rough writeup and the unfamiliar e-mail address, I'm writing from 
a customer site.

Andre

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23  9:51 ` spiegel
@ 2004-03-23 10:16   ` Miles Bader
  2004-03-23 11:41   ` Juanma Barranquero
  1 sibling, 0 replies; 32+ messages in thread
From: Miles Bader @ 2004-03-23 10:16 UTC (permalink / raw)
  Cc: spiegel, emacs-devel

spiegel@genion.de writes:
> As I said, I am certainly open for alternatives

I'd say that it should usually be the same as any emacs bug report --
M-x emacs-version (if they're actively tracking CVS, they can easily
enough get the cvs revision with `cvs status').

> incidentally, does your remark mean that arch doesn't have version
> headers at all, Miles?

Nope, and won't -- they're a big ball of hair just using CVS, and they'd
be even more insane with arch.  [In the case of arch, of course, there's
a `version' for the source tree as a whole, which could be reported by
M-x emacs-version for development trees.]

-Miles
-- 
`To alcohol!  The cause of, and solution to,
 all of life's problems' --Homer J. Simpson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23  7:47 ` Eli Zaretskii
@ 2004-03-23 10:56   ` Kim F. Storm
  0 siblings, 0 replies; 32+ messages in thread
From: Kim F. Storm @ 2004-03-23 10:56 UTC (permalink / raw)
  Cc: Miles Bader, emacs-devel

Eli Zaretskii <eliz@elta.co.il> writes:

> > From: Miles Bader <miles@lsi.nec.co.jp>
> > Date: 23 Mar 2004 15:46:35 +0900
> > 
> > These are quite annoying when merging between branches because they
> > cause spurious conflicts (as they contain the revision number, they are
> > guaranteed to differ between branches), and as far as I know aren't
> > really particularly useful, so I'd like to simply delete them from the
> > emacs sources.
> 
> I, for one, would be very happy when these keywords are removed.

Me too!  Id keywords are nothing but trouble!!!

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23  9:51 ` spiegel
  2004-03-23 10:16   ` Miles Bader
@ 2004-03-23 11:41   ` Juanma Barranquero
  2004-03-23 13:13     ` Miles Bader
  2004-03-23 18:07     ` Nick Roberts
  1 sibling, 2 replies; 32+ messages in thread
From: Juanma Barranquero @ 2004-03-23 11:41 UTC (permalink / raw)



On Tue, 23 Mar 2004 09:51:11 +0000 (GMT)
spiegel@genion.de wrote:

> Identifying the version becomes impossible when I send people an updated copy 
> of vc.el (which I often do), or they grab it from CVS.
> What other means would be available?  Should I ask for an md5sum of the 
> file, or a copy of the file itself and diff it against my copy?

Now, if we switched from CVS to Subversion, we could have our cake and
eat it too (in Subversion, keywords don't cause spurious
conflicts/differences).

Of course that's not the best or only good feature of Subversion.
Maintaining history when a file gets moved (as recently done on many
lisp/ packages) comes to mind. And lots of other goodies: directory
versioning, good performance on acces to remote repositories (CVS is a
dog, as I'm forced to remember every time I commit a lisp/ChangeLog
change), versioned metadata, etc.

I know there are Emacs maintainers whose preferred VC tool is arch, and
I've only heard good things about it, but it suffers at least two
problems, IMHO of course: there is no arch port to Windows, and the
decentralized model arch supports, though interesting, is quite
different from the one in CVS, while Subversion is modelled to be "a
better CVS". Switching to Subversion would be, I think, a lot less
painful.

Yeah, this is an off-side plea to at least consider the idea of
switching to SVN. The Apache people is carefully doing it, one repo at a
time, and it seems like the experience is being very positive.

OTOH, Karl Fogel is an Emacs developer and I suppose he's reading the
list, so he could make the point far, far better than me ;-)

                                                                Juanma

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 11:41   ` Juanma Barranquero
@ 2004-03-23 13:13     ` Miles Bader
  2004-03-23 14:01       ` Juanma Barranquero
  2004-03-23 18:17       ` Nick Roberts
  2004-03-23 18:07     ` Nick Roberts
  1 sibling, 2 replies; 32+ messages in thread
From: Miles Bader @ 2004-03-23 13:13 UTC (permalink / raw)
  Cc: emacs-devel

On Tue, Mar 23, 2004 at 12:41:31PM +0100, Juanma Barranquero wrote:
> Now, if we switched from CVS to Subversion, we could have our cake and
> eat it too (in Subversion, keywords don't cause spurious
> conflicts/differences).

Keywords are just a generally stupid idea, so that's hardly an advantage
(even more so in a system with tree-wide version numbers, like subversion --
there the right thing to is just put the version number hacks in your
Makefile).

> I know there are Emacs maintainers whose preferred VC tool is arch, and
> I've only heard good things about it, but it suffers at least two
> problems, IMHO of course: there is no arch port to Windows

I don't use windows so it's hard for me to judge, but I believe there are
several ports of tla to windows, it's just that none of them is free from
dependencies on particular non-standard environment (cygwin or various
microsoft environments, etc).

> and the decentralized model arch supports, though interesting, is quite
> different from the one in CVS

Yes -- it's much, much (much) better than CVS (and subversion).  This is
_not_ an advantage of subversion.

> while Subversion is modelled to be "a better CVS". Switching to Subversion
> would be, I think, a lot less painful.

Actually I suspect that arch would is likely easier, despite the differences
-- its network model is extremely flexible and simple, and it has none of the
special hosting requirements that subversion does.

I say "is" because as you might know, there's _already_ an emacs arch archive
(synchronized with CVS), which could take over from CVS quickly if the
developers wanted that (the main sticking point being that it's running on
fencepost, not on savannah, so anyone that wanted commit access would need to
have ssh access there; moving to savannah would probably be pretty
straightforward except that _everything_ involving savannah is slow :-)

> Yeah, this is an off-side plea to at least consider the idea of
> switching to SVN. The Apache people is carefully doing it, one repo at a
> time, and it seems like the experience is being very positive.

You might want to check the emacs-devel archives: there was a big thread on
this about 10 months ago -- and at that time I was tentatively on the
subversion, for many of the reasons you gave above.  Now that I've seen
personally how superior arch is, I'm firmly in the arch camp.

-Miles
-- 
Is it true that nothing can be known?  If so how do we know this?  -Woody Allen

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 13:13     ` Miles Bader
@ 2004-03-23 14:01       ` Juanma Barranquero
  2004-03-23 14:35         ` Miles Bader
  2004-03-23 15:04         ` Stefan Monnier
  2004-03-23 18:17       ` Nick Roberts
  1 sibling, 2 replies; 32+ messages in thread
From: Juanma Barranquero @ 2004-03-23 14:01 UTC (permalink / raw)



On Tue, 23 Mar 2004 08:13:16 -0500
Miles Bader <miles@gnu.org> wrote:

> Keywords are just a generally stupid idea, so that's hardly an advantage

Well, no. Keywords are wrong, perhaps, the way they're implemented in
CVS; but is a fact that lots of people find them useful, so dismissing
them as stupid is not very useful, I think. And I'm not defending my
turf here: I don't like keywords and I've never used them.

But quite recently there was a thread on the Subversion list about $log$
(which Subversion *does not* implement), because a guy explained how
they used it to track sources and releases, etc. They had a complex
system, which worked fine for them all allowed them to do *exactly*
what they wanted, and it depended heavily on $log$. Granted: there are
other ways of doing the same things; but that does not mean they aren't
useful, or perhaps *the* right answer to some problems, even.

> I don't use windows so it's hard for me to judge, but I believe there are
> several ports of tla to windows, it's just that none of them is free from
> dependencies on particular non-standard environment (cygwin or various
> microsoft environments, etc).

AFAICS, there is no official Windows port. The existence of home-brewed
ports eases the problem, but doesn't solve it. I could, after all,
compile my own tla; but I'm interested in hacking Emacs, not arch, so I
don't see why should I be forced to do that. What I mean is: before
considering whether to switch to another VC, wide disponibility of the
tool (not in number of platforms, but in number of potential developers
able to use it) should be considered paramount. Perhaps I'm biased
because I'm on Windows :)

> Yes -- it's much, much (much) better than CVS (and subversion).  This is
> _not_ an advantage of subversion.

Sorry, but "much better" is subjective. I know, at least a bit, what
decentralized VC systems (like BitKeeper and Arch and Monotone) do, and
I agree that it *is* interesting and useful; but I don't think I can
unconditionally agree that it is "better" than the centralized model of
CVS and Subversion and other tools. Decentralized seems to work for
Linux, partly because there is a "centralized repository", known to the
world as Linus Torvalds (I know I'm simplifying there). But a
centralized model is good for quite a lot of environments, and most free
and open-source projects have been developed that way for thirty years.
That's why I mentioned Apache: they're high-profile, and they don't seem
afraid of going to Subversion, so clearly there's not much they find
lacking on it.

(And BTW, speaking of decentralized, there's svk: a BitKeeper-style VC
system built on top of Subversion.)

> Actually I suspect that arch would is likely easier, despite the differences
> -- its network model is extremely flexible and simple, and it has none of the
> special hosting requirements that subversion does.

Subversion requires Berkeley DB 4.0.X or 4.2.X, and, *if* used as an
Apache module, httpd 2.0.48+; having Python is a plus, but not necessary.
Not much more, I think. With respect to ease of porting, you convert the
repository with cvs2svn.py (preserving all history, tags, branches, etc),
install the Apache module, define the access model, and that's all.

> I say "is" because as you might know, there's _already_ an emacs arch archive
> (synchronized with CVS), which could take over from CVS quickly if the
> developers wanted that

Yes, I know. But I'm not letting the fact that there's already an
alternative trick me into believing this is necessarily the best one :)

> You might want to check the emacs-devel archives: there was a big thread on
> this about 10 months ago -- and at that time I was tentatively on the
> subversion, for many of the reasons you gave above.  Now that I've seen
> personally how superior arch is, I'm firmly in the arch camp.

Well, I'm in no camp, other than the non-CVS one. I firmly believe
switching to another, better VC would be a good move for Emacs; and I
also think that doing it to Subversion would be easier and safer (in the
sense that Subversion seems a stable, well-maintained and active
project: my admittedly subjective view of arch is that of a on-and-off
development effort with very few contributors).

All that said, if Emacs switched to arch and I had good, up-to-date
tools to access it from Windows I wouldn't complain. But still think
Subversion is a better match to our needs.

                                                                Juanma

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 14:01       ` Juanma Barranquero
@ 2004-03-23 14:35         ` Miles Bader
  2004-03-23 14:58           ` Juanma Barranquero
  2004-03-23 15:04         ` Stefan Monnier
  1 sibling, 1 reply; 32+ messages in thread
From: Miles Bader @ 2004-03-23 14:35 UTC (permalink / raw)
  Cc: emacs-devel, Miles Bader

On Tue, Mar 23, 2004 at 03:01:59PM +0100, Juanma Barranquero wrote:
> > Yes -- it's much, much (much) better than CVS (and subversion).  This is
> > _not_ an advantage of subversion.
> 
> Sorry, but "much better" is subjective. I know, at least a bit, what
> decentralized VC systems (like BitKeeper and Arch and Monotone) do, and
> I agree that it *is* interesting and useful; but I don't think I can
> unconditionally agree that it is "better" than the centralized model of
> CVS and Subversion and other tools.

I think the main point is that `centralized' is the easy case, and arch can
do that too.  If people want centralized, that's no problem -- but the
additional freedom of painless distributed development is a _significant_
advantage to arch.

[Perhaps this is not something that's entirely obvious if you've not used it
before, but it's wonderfully liberating.]

-Miles
-- 
Freedom's just another word, for nothing left to lose   --Janis Joplin

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 14:35         ` Miles Bader
@ 2004-03-23 14:58           ` Juanma Barranquero
  2004-03-23 15:14             ` Stefan Monnier
  2004-03-24  5:34             ` Richard Stallman
  0 siblings, 2 replies; 32+ messages in thread
From: Juanma Barranquero @ 2004-03-23 14:58 UTC (permalink / raw)
  Cc: emacs-devel


On Tue, 23 Mar 2004 09:35:20 -0500
Miles Bader <miles@gnu.org> wrote:

> I think the main point is that `centralized' is the easy case, and arch can
> do that too. If people want centralized, that's no problem -- but the
> additional freedom of painless distributed development is a _significant_
> advantage to arch.

Yeah, I understand that. My point, OTOH, is that Emacs developers
probably don't want or need an additional freedom they're not going to
use, if the cost is a less stable, less well maintained or more complex
tool.

Of course, I'm not trying to speak on behalf of the Emacs developers
here, it's just a feeling. But, as the issue of enhancement value vs.
ease of maintaining is weighted once and again with respect to new
features and functionality, the same parameters can be applied to the
choosing of a VC tool. I'm *sure* there are lots of projects for which
arch is the right (or best) tool, much better than Subversion. I simply
don't see why should it be the case for Emacs.

> [Perhaps this is not something that's entirely obvious if you've not used it
> before, but it's wonderfully liberating.]

I can well imagine it, and I'm looking forward to giving a fair try to arch,
when it is well supported on Windows and for the right projects.

                                                                Juanma

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 14:01       ` Juanma Barranquero
  2004-03-23 14:35         ` Miles Bader
@ 2004-03-23 15:04         ` Stefan Monnier
  1 sibling, 0 replies; 32+ messages in thread
From: Stefan Monnier @ 2004-03-23 15:04 UTC (permalink / raw)
  Cc: emacs-devel, Miles Bader

>> Keywords are just a generally stupid idea, so that's hardly an advantage
> Well, no. Keywords are wrong, perhaps, the way they're implemented in

Can we stop talking generically and get to the specific of CVS keywords in
the Emacs repository?
The reason why I want them gone is because they make handling branches (as
well as uncommitted local changes, which are basically a kind of
ultra-lightweight branch) more painful than needed, and that's particularly
annoying when you want to make some of the updating automatic.

> AFAICS, there is no official Windows port. The existence of home-brewed

And can we stop talking Arch-vs-Subversion.  There's already plenty of such
threads elswhere.  Emacs is not about to switch to one system or another.

> I agree that it *is* interesting and useful; but I don't think I can
> unconditionally agree that it is "better" than the centralized model of
> CVS and Subversion and other tools. Decentralized seems to work for

All the decentralized models I know of have the centralized model as
a special case.  You can definitely use Arch with a single centralized
server (accessed via SFTP) and it works very much like Subversion or CVS in
this respect.  And I expect that if Emacs ever switches to something like
Arch or Bitkeeper it will be setup in a centralized way anyway, so that part
of the equation is simply out.


        Stefan

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 14:58           ` Juanma Barranquero
@ 2004-03-23 15:14             ` Stefan Monnier
  2004-03-23 15:36               ` Juanma Barranquero
  2004-03-24  5:34             ` Richard Stallman
  1 sibling, 1 reply; 32+ messages in thread
From: Stefan Monnier @ 2004-03-23 15:14 UTC (permalink / raw)
  Cc: emacs-devel, Miles Bader

Can we either stick to the subject (i.e. removing $Id$) or at least change
the subject line, please?


        Stefan


>>>>> "Juanma" == Juanma Barranquero <jmbarranquero@wke.es> writes:

> On Tue, 23 Mar 2004 09:35:20 -0500
> Miles Bader <miles@gnu.org> wrote:

>> I think the main point is that `centralized' is the easy case, and arch can
>> do that too. If people want centralized, that's no problem -- but the
>> additional freedom of painless distributed development is a _significant_
>> advantage to arch.

> Yeah, I understand that. My point, OTOH, is that Emacs developers
> probably don't want or need an additional freedom they're not going to
> use, if the cost is a less stable, less well maintained or more complex
> tool.

> Of course, I'm not trying to speak on behalf of the Emacs developers
> here, it's just a feeling. But, as the issue of enhancement value vs.
> ease of maintaining is weighted once and again with respect to new
> features and functionality, the same parameters can be applied to the
> choosing of a VC tool. I'm *sure* there are lots of projects for which
> arch is the right (or best) tool, much better than Subversion. I simply
> don't see why should it be the case for Emacs.

>> [Perhaps this is not something that's entirely obvious if you've not used it
>> before, but it's wonderfully liberating.]

> I can well imagine it, and I'm looking forward to giving a fair try to arch,
> when it is well supported on Windows and for the right projects.

>                                                                 Juanma

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 15:14             ` Stefan Monnier
@ 2004-03-23 15:36               ` Juanma Barranquero
  0 siblings, 0 replies; 32+ messages in thread
From: Juanma Barranquero @ 2004-03-23 15:36 UTC (permalink / raw)



On 23 Mar 2004 10:14:57 -0500
Stefan Monnier <monnier@iro.umontreal.ca> wrote:

> Can we either stick to the subject (i.e. removing $Id$) or at least change
> the subject line, please?

No objection to removing keywords.

                                                                Juanma

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 11:41   ` Juanma Barranquero
  2004-03-23 13:13     ` Miles Bader
@ 2004-03-23 18:07     ` Nick Roberts
  1 sibling, 0 replies; 32+ messages in thread
From: Nick Roberts @ 2004-03-23 18:07 UTC (permalink / raw)
  Cc: emacs-devel

 > Now, if we switched from CVS to Subversion, we could have our cake and
 > eat it too (in Subversion, keywords don't cause spurious
 > conflicts/differences).

Whatever the advantages of Subversion (or Arch), keywords would not appear
to be one of them because the info manual on CVS says:

info>   If you merge files containing keywords (*note Keyword
info> substitution::), you will normally get numerous conflicts during the
info> merge, because the keywords are expanded differently in the revisions
info> which you are merging.

info>   Therefore, you will often want to specify the `-kk' (*note
info> Substitution modes::) switch to the merge command line.  By
info> substituting just the name of the keyword, not the expanded value of
info> that keyword, this option ensures that the revisions which you are
info> merging will be the same as each other, and avoid spurious conflicts.

eg. cvs update -kk -j mybranch

There is a caution:

info>    There is, however, one major caveat with using `-kk' on merges.
info> Namely, it overrides whatever keyword expansion mode CVS would normally
info> have used.  In particular, this is a problem if the mode had been `-kb'
info> for a binary file.  Therefore, if your repository contains binary
info> files, you will need to deal with the conflicts rather than using `-kk'.

The only binary files that I'm aware of in Emacs CVS are the bitmaps for
the toolbar.

Nick

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 13:13     ` Miles Bader
  2004-03-23 14:01       ` Juanma Barranquero
@ 2004-03-23 18:17       ` Nick Roberts
  1 sibling, 0 replies; 32+ messages in thread
From: Nick Roberts @ 2004-03-23 18:17 UTC (permalink / raw)
  Cc: Juanma Barranquero, emacs-devel

 > > while Subversion is modelled to be "a better CVS". Switching to Subversion
 > > would be, I think, a lot less painful.
 > 
 > Actually I suspect that arch would is likely easier, despite the differences
 > -- its network model is extremely flexible and simple, and it has none of the
 > special hosting requirements that subversion does.
 > 
 > I say "is" because as you might know, there's _already_ an emacs arch archive
 > (synchronized with CVS), which could take over from CVS quickly if the
 > developers wanted that (the main sticking point being that it's running on
 > fencepost, not on savannah, so anyone that wanted commit access would need to
 > have ssh access there; moving to savannah would probably be pretty
 > straightforward except that _everything_ involving savannah is slow :-)

There is a project called Xouvert on Savannah that is trying to use arch for
version control. If you look at their mailing list you'll see that they have
had difficulty because of security issues. It might be a good idea to monitor
their progress (or lack of it).

Nick

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
@ 2004-03-23 18:46 spiegel
  2004-03-23 21:47 ` Miles Bader
  0 siblings, 1 reply; 32+ messages in thread
From: spiegel @ 2004-03-23 18:46 UTC (permalink / raw)
  Cc: spiegel, emacs-devel

As it looks like I'm the only one who sees any benefit in version headers, 
I certainly won't insist on keeping them in there.

> if they're actively tracking CVS, they can easily
> enough get the cvs revision with `cvs status').

Is that really the only answer?  To find out what version of a file you are 
looking at, you need to be hooked up to the version control system?  I often 
send files back and forth, and frequently I need to decide what version 
I'm looking at, with the file being isolated from its version control history.

I find it completely natural, even essential that a file is stamped with the 
version it contains, the stamp being a part of the actual contents of the 
file.

It should be the job of the version control system to ignore this kind of 
changes for operations where it clearly doesn't make sense.  CVS, as somebody 
pointed out, is capable of this for the headers it produces.

I have occasionally received bug reports about old versions of vc.el which didn't 
have any headers in them.  People were astonished that the version control 
part of emacs didn't contain this essential versioning information itself.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 18:46 deleting rcs keywords from emacs sources spiegel
@ 2004-03-23 21:47 ` Miles Bader
  2004-03-25  7:45   ` Andre Spiegel
  0 siblings, 1 reply; 32+ messages in thread
From: Miles Bader @ 2004-03-23 21:47 UTC (permalink / raw)
  Cc: emacs-devel, spiegel, miles

On Tue, Mar 23, 2004 at 06:46:09PM +0000, spiegel@genion.de wrote:
> > if they're actively tracking CVS, they can easily
> > enough get the cvs revision with `cvs status').
> 
> Is that really the only answer?  To find out what version of a file you are 
> looking at, you need to be hooked up to the version control system?

In general, the version of a single file is not what you want for bug
reports, you want the state of the entire _system_.

There are several reasons for this, e.g. (a) it doesn't rely on the the
bug-reporter knowing what the relevant file is (which they often get wrong,
even if they think they do), and (b) many problems which manifest in a
particular piece of code are actually due to changes outside it, or
interactions between changes in both places.  Really you want bug reports to
come from M-x report-emacs-bug, unless the submitter is very knowledgeable,
as that will make sure to include other info that will tell you the state
more exactly.

If someone is using a packaged distribution of emacs, then it should be set
up to generate a meaningful emacs version number, which will tell you what
snapshot of the source tree it is from.

The only other common case (AFAIK) is that someone is actively tracking emacs
CVS; in this case, you probably _still_ want to know the state of the whole
system for the reasons stated above, but the version reported by M-x
emacs-version is not very useful (it effectively just tells you "CVS sometime
after this release").  However, you also know that in this case both that the
user has CVS info easily available, and is probably more knowledgable than
average (so probably _knows_ they have CVS info available).

So given this, I think we ought to (1) encourage people to use M-x
report-emacs-bug, (2) find a way to make M-x emacs-version give more useful
info for CVS checkouts (easy for arch though).

> I often send files back and forth, and frequently I need to decide what
> version I'm looking at, with the file being isolated from its version
> control history.

Er, if you're making changes outside of CVS than the keyword info isn't
going to be very useful, is it?

> I find it completely natural, even essential that a file is stamped with the 
> version it contains, the stamp being a part of the actual contents of the 
> file.

I've seen others say this too, and I suspect that's a major reason people use
rcs keywords -- it gives them warm fuzzies.

> It should be the job of the version control system to ignore this kind of
> changes for operations where it clearly doesn't make sense.  CVS, as
> somebody pointed out, is capable of this for the headers it produces.

It's too much of a tar pit: it means that the V.C.S. is _changing_ the
contents of the file, which is _dangerous_ (see the CVS documentation for
details); arch uses the much more robust model that what you put in is
exactly what you get out.

These keywords are the sort of thing that may seem like a great idea at
first, but which come back to haunt you later (as we now see :-)

-Miles
-- 
Somebody has to do something, and it's just incredibly pathetic that it
has to be us.  -- Jerry Garcia

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23  6:46 Miles Bader
  2004-03-23  7:47 ` Eli Zaretskii
  2004-03-23  9:51 ` spiegel
@ 2004-03-24  5:34 ` Richard Stallman
  2004-03-25  8:17   ` Miles Bader
  2 siblings, 1 reply; 32+ messages in thread
From: Richard Stallman @ 2004-03-24  5:34 UTC (permalink / raw)
  Cc: emacs-devel

I have never liked RCS keywords, and I would be glad if they were gone.

In all cases, they are present because some Lisp package maintainer
wanted them.  Sometimes I argued against this, and sometimes I did not.
I'd guess some of those maintainers are still active, while some of them
are long gone. 

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 14:58           ` Juanma Barranquero
  2004-03-23 15:14             ` Stefan Monnier
@ 2004-03-24  5:34             ` Richard Stallman
  1 sibling, 0 replies; 32+ messages in thread
From: Richard Stallman @ 2004-03-24  5:34 UTC (permalink / raw)
  Cc: emacs-devel, miles

We're going to keep using CVS for Emacs for the foreseeable future.
(I don't have time to even consider the merits of anything else.)

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-23 21:47 ` Miles Bader
@ 2004-03-25  7:45   ` Andre Spiegel
  2004-03-26 16:45     ` Richard Stallman
  0 siblings, 1 reply; 32+ messages in thread
From: Andre Spiegel @ 2004-03-25  7:45 UTC (permalink / raw)
  Cc: emacs-devel

On Tue, 2004-03-23 at 22:47, Miles Bader wrote:

> > I often send files back and forth, and frequently I need to decide what
> > version I'm looking at, with the file being isolated from its version
> > control history.
> 
> Er, if you're making changes outside of CVS than the keyword info isn't
> going to be very useful, is it?

This has nothing to do with changes outside CVS.  The scenario usually
goes like this: Somebody reports a bug, I fix it.  The user doesn't have
CVS access, my fix is not readily backported into the version of the
file he has, so I send him the entire current source file.  Later, that
person has another problem, and reports it along with the version number
of the file I sent him.  Without version numbers in the files, this is 
very difficult, if not impossible to keep track of.

Now, *if* changes outside of CVS happen, then the version numbers in the
file at least give you a clear indication what CVS version this file was
based on, and then it's trivial to find out what these changes were,
relative to the corresponding CVS version.  This is very difficult to
find out if you have no idea what CVS version the file was based on.

I could go on and on with scenarios that are not Emacs-related, but
where version numbers also play an important role.  For example, people
sometimes print files on paper to carry into a review meeting.  Files
get deployed to machines with no access to the version control system
etc. etc.

> > I find it completely natural, even essential that a file is stamped with the 
> > version it contains, the stamp being a part of the actual contents of the 
> > file.
> 
> I've seen others say this too, and I suspect that's a major reason people use
> rcs keywords -- it gives them warm fuzzies.

I think the scenarios above show the contrary.

> These keywords are the sort of thing that may seem like a great idea at
> first, but which come back to haunt you later (as we now see :-)

I used to think that the keywords, being a huge benefit for myself, did
not cause any trouble elsewhere.  But if they really do, then the cost
vs. the benefit needs to be weighed of course.  As it appears that
several people are suffering trouble, I won't insist on my objections.

In the general case (i.e. outside Emacs development), I firmly believe
that this needs to be handled properly, because surely, many projects
and shops will insist on having such a feature.  If it takes effort to
reconcile this with merging etc., so be it.  A feature is not bad just
because it is non-trivial to implement.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-24  5:34 ` Richard Stallman
@ 2004-03-25  8:17   ` Miles Bader
  0 siblings, 0 replies; 32+ messages in thread
From: Miles Bader @ 2004-03-25  8:17 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:
> I have never liked RCS keywords, and I would be glad if they were gone.
> 
> In all cases, they are present because some Lisp package maintainer
> wanted them.

Ok, given that there's a rough consensus, I'm going to do what Stefan
suggested:  first remove all those from files where there's obviously no
problem (the maintainer is the FSF, or someone that doesn't object, or
someone that appears to be missing for a long time).

-Miles
-- 
We live, as we dream -- alone....

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-25  7:45   ` Andre Spiegel
@ 2004-03-26 16:45     ` Richard Stallman
  2004-03-26 18:10       ` Stefan Monnier
                         ` (3 more replies)
  0 siblings, 4 replies; 32+ messages in thread
From: Richard Stallman @ 2004-03-26 16:45 UTC (permalink / raw)
  Cc: emacs-devel, miles

    The user doesn't have
    CVS access, my fix is not readily backported into the version of the
    file he has, so I send him the entire current source file.  Later, that
    person has another problem, and reports it along with the version number
    of the file I sent him.  Without version numbers in the files, this is 
    very difficult, if not impossible to keep track of.

I can follow how this is useful for you.  I would guess that only a
few Lisp file maintainers do this, though.

If you put a date manually into the files when you send an entire
file to someone, it would achieve the same purpose, right?
You'd be doing it manually instead of automatically.

How much extra work would that impose on you?
(It depends on how often you actually do this.)

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 16:45     ` Richard Stallman
@ 2004-03-26 18:10       ` Stefan Monnier
  2004-03-26 18:46       ` David Kastrup
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 32+ messages in thread
From: Stefan Monnier @ 2004-03-26 18:10 UTC (permalink / raw)
  Cc: miles, Andre Spiegel, emacs-devel

> If you put a date manually into the files when you send an entire
> file to someone, it would achieve the same purpose, right?
> You'd be doing it manually instead of automatically.

The date can even be put automatically (when Emacs saves the file).
At least that's what timestamp.el is for, AFAIK.


        Stefan

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 16:45     ` Richard Stallman
  2004-03-26 18:10       ` Stefan Monnier
@ 2004-03-26 18:46       ` David Kastrup
  2004-03-28  1:36         ` Richard Stallman
  2004-03-26 19:05       ` Robert J. Chassell
  2004-03-26 19:37       ` Andre Spiegel
  3 siblings, 1 reply; 32+ messages in thread
From: David Kastrup @ 2004-03-26 18:46 UTC (permalink / raw)
  Cc: miles, Andre Spiegel, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     The user doesn't have CVS access, my fix is not readily
>     backported into the version of the file he has, so I send him
>     the entire current source file.  Later, that person has another
>     problem, and reports it along with the version number of the
>     file I sent him.  Without version numbers in the files, this is
>     very difficult, if not impossible to keep track of.
> 
> I can follow how this is useful for you.  I would guess that only a
> few Lisp file maintainers do this, though.

FWIW, AUCTeX uses RCS tags to announce the version number used
(either released version or CVS revision and build date) in bug
reports sent by the standard bug reporting commands.  Since we don't
release that often, this information helps quite a lot in tracking
what code base the bug report refers to.

> If you put a date manually into the files when you send an entire
> file to someone, it would achieve the same purpose, right?  You'd be
> doing it manually instead of automatically.

If somebody checks out and compiles my CVS archive, I won't be in the
position of putting dates into his files manually.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 16:45     ` Richard Stallman
  2004-03-26 18:10       ` Stefan Monnier
  2004-03-26 18:46       ` David Kastrup
@ 2004-03-26 19:05       ` Robert J. Chassell
  2004-03-26 19:37       ` Andre Spiegel
  3 siblings, 0 replies; 32+ messages in thread
From: Robert J. Chassell @ 2004-03-26 19:05 UTC (permalink / raw)


   If you put a date manually into the files when you send an entire
   file to someone, it would achieve the same purpose, right?
   You'd be doing it manually instead of automatically.

   How much extra work would that impose on you?
   (It depends on how often you actually do this.)

Here is a function to insert the date at point.  I put it in my .emacs
file and use it all the time.

    ;;; Insert current date and, optionally, UTC time into current buffer
    (defun date (&optional full)
      "Insert current date; with optional arg, insert UTC time"
      (interactive "P")
      (if full
          ;; The third, last, optional, argument to format-time-string means
          ;; describe time as Universal Time; this may be labled GMT
          ;; rather than UTC.  2001 Aug 16: Gerd says
          ;;     This is a feature of the OS.  Strftime.c only adds a
          ;;     zone name when gmtime(3) doesn't already return one.
          ;; (format-time-string "%a, %Y %h %e  %H:%M %Z" nil t)
          (insert (format-time-string "%a, %Y %h %e  %H:%M %Z"))
        (insert (format-time-string "%Y %h %e"))))

For example, 

    M-x date  ==> 2004 Mar 26

C-u M-x date  ==> Fri, 2004 Mar 26  19:00 UTC

(I once formatted time strings as day - month - year, but then found
that I often need to see the year, so for this function and the way I
use it, the better format is year - month - day.)

-- 
    Robert J. Chassell                         Rattlesnake Enterprises
    http://www.rattlesnake.com                  GnuPG Key ID: 004B4AC8
    http://www.teak.cc                             bob@rattlesnake.com

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 16:45     ` Richard Stallman
                         ` (2 preceding siblings ...)
  2004-03-26 19:05       ` Robert J. Chassell
@ 2004-03-26 19:37       ` Andre Spiegel
  2004-03-28  1:36         ` Richard Stallman
  3 siblings, 1 reply; 32+ messages in thread
From: Andre Spiegel @ 2004-03-26 19:37 UTC (permalink / raw)
  Cc: emacs-devel

On Fri, 2004-03-26 at 17:45, Richard Stallman wrote:

> I can follow how this is useful for you.  I would guess that only a
> few Lisp file maintainers do this, though.

It may not be that common among Emacs maintainers, but as I said, it
surely is an essential feature in many other contexts.

> If you put a date manually into the files when you send an entire
> file to someone, it would achieve the same purpose, right?
> You'd be doing it manually instead of automatically.

It's doable, but it would be inconvenient.

How about this: CVS/RCS allows you to switch off keyword substitution by
default for each individual file.  The keywords are then only
substituted when somebody asks for it while checking out his personal
working copy.  This way, the files would contain unexpanded $Id$ headers
for everybody by default, but people like me who want and need them can
turn on keyword substitution locally for themselves.

How does that sound?

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 18:46       ` David Kastrup
@ 2004-03-28  1:36         ` Richard Stallman
  0 siblings, 0 replies; 32+ messages in thread
From: Richard Stallman @ 2004-03-28  1:36 UTC (permalink / raw)
  Cc: emacs-devel, spiegel, miles

    FWIW, AUCTeX uses RCS tags to announce the version number used

AUCTeX is not included in Emacs anyway, so the present issue doesn't
include AUCTeX.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-26 19:37       ` Andre Spiegel
@ 2004-03-28  1:36         ` Richard Stallman
  2004-03-28 11:10           ` Andre Spiegel
  0 siblings, 1 reply; 32+ messages in thread
From: Richard Stallman @ 2004-03-28  1:36 UTC (permalink / raw)
  Cc: emacs-devel

    > I can follow how this is useful for you.  I would guess that only a
    > few Lisp file maintainers do this, though.

    It may not be that common among Emacs maintainers, but as I said, it
    surely is an essential feature in many other contexts.

I see no reason to assume that RCS keywords in Emacs files are useful
to anyone in general.  You've said that those in VC files are useful
to some extent for you.

    > If you put a date manually into the files when you send an entire
    > file to someone, it would achieve the same purpose, right?
    > You'd be doing it manually instead of automatically.

    It's doable, but it would be inconvenient.

I asked that question so I can get an idea of how much
inconvenience it would be for you.

We could keep the keywords in the files you maintain, if the
inconvenience for you of removing them would be substantial.  But I
would like to see how much inconvenience we're talking about.

    How about this: CVS/RCS allows you to switch off keyword substitution by
    default for each individual file.  The keywords are then only
    substituted when somebody asks for it while checking out his personal
    working copy.

Maybe that would work ok.  In practice, I am not sure it is much better
than the other two alternatives.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-28  1:36         ` Richard Stallman
@ 2004-03-28 11:10           ` Andre Spiegel
  2004-03-29 20:56             ` Richard Stallman
  0 siblings, 1 reply; 32+ messages in thread
From: Andre Spiegel @ 2004-03-28 11:10 UTC (permalink / raw)
  Cc: emacs-devel

On Sun, 2004-03-28 at 03:36, Richard Stallman wrote:

> I asked that question so I can get an idea of how much
> inconvenience it would be for you.

The time I would need to put a timestamp into a file before I send it to
someone is surely negligible.  I assume between 5-10 seconds.  Less than
that if I write myself a clever macro for it.  I'd be doing it between
5-10 times a year, so that's your absolute measure of "inconvenience".

The problem with this approach is that the files would only be stamped
when *I* send them out.  When somebody gets a file through a different
channel, e.g. via Web-CVS, or because somebody else sends it to him, the
file won't have an identification in it.

As a result, I might get bug reports where we unknowingly talk about
different versions of a file.  It might take considerable time to sort
out such a misunderstanding.  This is a more severe kind of
"inconvenience" than the time I would need to make a timestamp manually.

Even if everything goes well, there would now be several different ways
to determine the version of a file: If it's from an Emacs release, use
the ChangeLog and CVS history.  If you're hooked up to CVS, use the CVS
version information.  If you get it via another channel, hope that
somebody put a timestamp into it.

To me, that seems messy and an inconvenience in itself.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-28 11:10           ` Andre Spiegel
@ 2004-03-29 20:56             ` Richard Stallman
  2004-03-30 14:22               ` Andre Spiegel
  0 siblings, 1 reply; 32+ messages in thread
From: Richard Stallman @ 2004-03-29 20:56 UTC (permalink / raw)
  Cc: emacs-devel

    The problem with this approach is that the files would only be stamped
    when *I* send them out.  When somebody gets a file through a different
    channel, e.g. via Web-CVS, or because somebody else sends it to him, the
    file won't have an identification in it.

Is it a frequent occurrence for you that people report problems in
versions that of VC they got from CVS in this way, without updating
Emacs as a whole from CVS?  Very few of the bug reports that I see
seem to describe such cases.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-29 20:56             ` Richard Stallman
@ 2004-03-30 14:22               ` Andre Spiegel
  2004-03-31 15:05                 ` Richard Stallman
  0 siblings, 1 reply; 32+ messages in thread
From: Andre Spiegel @ 2004-03-30 14:22 UTC (permalink / raw)
  Cc: emacs-devel

On Mon, 2004-03-29 at 22:56, Richard Stallman wrote:

>     The problem with this approach is that the files would only be stamped
>     when *I* send them out.  When somebody gets a file through a different
>     channel, e.g. via Web-CVS, or because somebody else sends it to him, the
>     file won't have an identification in it.
> 
> Is it a frequent occurrence for you that people report problems in
> versions that of VC they got from CVS in this way, without updating
> Emacs as a whole from CVS?  Very few of the bug reports that I see
> seem to describe such cases.

It is hard to tell how frequent this is, because in the past, the files
people were referring to always contained version numbers, and so I
wouldn't know which path they actually took.

Myself, I have just recently built and installed a CVS snapshot of Emacs
at a customer site, because we needed some of the new features that are
not in any actual release yet.  I would assume that such installations
occur frequently all over the world, especially since there is so much
time between Emacs releases.  The installed source files are indeed
disconnected from their CVS history.  Now, if anybody were to discover a
bug in such an installation, in a source file without version headers in
it, it would be difficult to track down.

I don't have hard numbers for this.  I'm referring to potential
problems, which might turn out more or less severe.  (If I'm anywhere
near correct, it ought to be happening already for other files, which I
don't maintain, and which never had version headers in them.  Only other
developers could testify to that.)

You say that "very few" of the bug reports you see seem to describe such
cases.  So, if it actually does occur, and version headers would help
with these cases, then that appears to be an argument to keep them, and
to solve the problems they cause by some other means.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: deleting rcs keywords from emacs sources
  2004-03-30 14:22               ` Andre Spiegel
@ 2004-03-31 15:05                 ` Richard Stallman
  0 siblings, 0 replies; 32+ messages in thread
From: Richard Stallman @ 2004-03-31 15:05 UTC (permalink / raw)
  Cc: emacs-devel

    You say that "very few" of the bug reports you see seem to describe such
    cases.  So, if it actually does occur, and version headers would help
    with these cases, then that appears to be an argument to keep them, and
    to solve the problems they cause by some other means.

They impose a substantial maintenance burden.  It is worth removing them
when we don't need them.

If you find them useful in VC, we can keep them in VC for you.

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2004-03-31 15:05 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-23 18:46 deleting rcs keywords from emacs sources spiegel
2004-03-23 21:47 ` Miles Bader
2004-03-25  7:45   ` Andre Spiegel
2004-03-26 16:45     ` Richard Stallman
2004-03-26 18:10       ` Stefan Monnier
2004-03-26 18:46       ` David Kastrup
2004-03-28  1:36         ` Richard Stallman
2004-03-26 19:05       ` Robert J. Chassell
2004-03-26 19:37       ` Andre Spiegel
2004-03-28  1:36         ` Richard Stallman
2004-03-28 11:10           ` Andre Spiegel
2004-03-29 20:56             ` Richard Stallman
2004-03-30 14:22               ` Andre Spiegel
2004-03-31 15:05                 ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2004-03-23  6:46 Miles Bader
2004-03-23  7:47 ` Eli Zaretskii
2004-03-23 10:56   ` Kim F. Storm
2004-03-23  9:51 ` spiegel
2004-03-23 10:16   ` Miles Bader
2004-03-23 11:41   ` Juanma Barranquero
2004-03-23 13:13     ` Miles Bader
2004-03-23 14:01       ` Juanma Barranquero
2004-03-23 14:35         ` Miles Bader
2004-03-23 14:58           ` Juanma Barranquero
2004-03-23 15:14             ` Stefan Monnier
2004-03-23 15:36               ` Juanma Barranquero
2004-03-24  5:34             ` Richard Stallman
2004-03-23 15:04         ` Stefan Monnier
2004-03-23 18:17       ` Nick Roberts
2004-03-23 18:07     ` Nick Roberts
2004-03-24  5:34 ` Richard Stallman
2004-03-25  8:17   ` Miles Bader

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).