unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Eric S. Raymond" <esr@thyrsus.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Karl Fogel <kfogel@red-bean.com>, Eli Zaretskii <eliz@gnu.org>,
	emacs-devel@gnu.org
Subject: Re: Repo cpnversion progress report
Date: Fri, 31 Jan 2014 16:51:24 -0500	[thread overview]
Message-ID: <20140131215124.GB19192@thyrsus.com> (raw)
In-Reply-To: <jwvwqhfvpfn.fsf-monnier+emacs@gnu.org>

Stefan Monnier <monnier@iro.umontreal.ca>:
> > I hear the argument about forensics, but the Bazaar revision numbers
> > are no more helpful for that than the action stamps. If anything,
> > spelunking is an argument for appending those numbers to the change
> > comment of each revision - leaving them in as references would a
> > bass-ackwards approach to the problem.
> 
> Moving the "equiv to bzr r123456" to the commit message of that
> corresponding Git commit sounds like an good compromise.  Of course, we
> don't need it for every commit, but for all those commits that have
> a corresponding "action stamp".

Technically, I could do this.  It would take a minor extension of
reposurgeon, but that is in itself OK because I'm going to have to
build that same primitive to do the thing Eli Zaretskii wanted
(fixes-bugs headers folded into the commit comments).

Let me explain this; it will give some insight into my working methods.
The primitive I plan to add to reposurgeon will be called "append"
or some verb like that.  It will take two arguments; one commit 
identifier, one string.  The effect will be to append the specified
line to the specifed commit comment.

Then, I would extract a list of revisions to be marked from my master
FOSSILS file and compile it into a sequence of append commands.  So, for
ecample, this association:

	100984 -> 2010-08-05T23:34:12Z!dann@ics.uci.edu

would compile to this append command:

<2010-08-05T23:34:12Z!dann@ics.uci.edu> append "\nBazaar revision 100984"

For Eli's feature, I would build a map from revisions to fixes-bug numbers
by mechanically analyzing the output of bzr log, then generating append
commands like this:

<2010-08-05T23:34:12Z!dann@ics.uci.edu> append "\nFixes bug 2317"

All these append commands would be appended to the lift script to be
applied on conversion day.

These things can be done.  The question is whether they *should* be done.
Because with each benefit there also comes a cost.

There is a real cost to burdening the commit comments with an
ever-increasing load of fossil data.  As Paul Eggert pointed out in
connection with references, this will scale badly over time.
Additionally, while none of these processing steps (or many others like
them) are difficult in principle, they accumulate to a huge load
of work for me.

Accordingly, I want to hear a use-case analysis.  That is, rather than
relatively vague hand-waving about forensics I want somebody with a
stake in the process *other than me* to lay out a set of user stories
about what kinds of navigation and lookup we want to support, so that
potential data representations (map file, in-commit comments, etc.)
can be checked against those stories.

Here's an example of a user story:  Someone is reading the emacs-devel 
archives and reads mail containing a reference to an Emacs change by 
Bazaar revision.  How does he get to the corresponding git revision?

What other user stories are there?  What do they tell us about 
acceptable gradients in lookup costs?  What does that tell us 
about good metadata representations?

I think I know what many of the conclusions will look like.  I've
been around this track before!  But others might educate me, and
will certainly educate some of the rest of you.

> > But there's a better way.  We're going to have a complete
> > revision-to-action-stamp map as part of the record.  It would be
> > pretty easy to write Emacs code that uses that map to find revisions
> > by Bazaar reference number.  That's the right solution, IMO.
> 
> But where would this map be stored?

/etc, same as any other static data used by a mode.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>



  reply	other threads:[~2014-01-31 21:51 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-30 19:55 Repo cpnversion progress report Eric S. Raymond
2014-01-30 20:11 ` Andreas Schwab
2014-01-30 20:27   ` Eric S. Raymond
2014-01-30 22:04     ` Andreas Schwab
2014-01-30 21:23 ` Eli Zaretskii
2014-01-30 21:42   ` Eric S. Raymond
2014-01-31  7:50     ` Eli Zaretskii
2014-01-31 15:25       ` Eric S. Raymond
2014-01-31 15:57         ` David Kastrup
2014-01-31 16:15         ` Eli Zaretskii
2014-01-31 17:31       ` Karl Fogel
2014-01-31 17:56         ` Juanma Barranquero
2014-01-31 19:23           ` Eric S. Raymond
2014-01-31 19:55             ` Juanma Barranquero
2014-01-31 20:30             ` Eli Zaretskii
2014-01-31 21:20             ` Sean Sieger
2014-01-31 21:22             ` Sean Sieger
2014-02-01  9:38             ` David Kastrup
2014-01-31 19:31           ` Karl Fogel
2014-01-31 20:18             ` Eli Zaretskii
2014-02-01 11:04             ` Richard Stallman
2014-01-31 18:16         ` Eric S. Raymond
2014-01-31 19:44           ` Paul Eggert
2014-01-31 21:07             ` Eric S. Raymond
2014-02-01  0:05               ` Paul Eggert
2014-02-01  0:25                 ` Juanma Barranquero
2014-02-01  4:19                 ` Eric S. Raymond
2014-02-01  8:40                 ` Eli Zaretskii
2014-02-02  1:03                 ` Stefan Monnier
2014-01-31 21:03           ` Stefan Monnier
2014-01-31 21:51             ` Eric S. Raymond [this message]
2014-01-31 23:15               ` Jan D.
2014-02-01  4:22                 ` Eric S. Raymond
2014-01-31 23:16               ` Stefan Monnier
2014-02-01  4:26                 ` Eric S. Raymond
2014-02-01 11:04                 ` Eli Zaretskii
2014-02-02  0:58                   ` Stefan Monnier
2014-02-02 10:24                     ` Eric S. Raymond

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140131215124.GB19192@thyrsus.com \
    --to=esr@thyrsus.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=kfogel@red-bean.com \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).