emacs-devel
[Top][All Lists]
Advanced

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

Public repo for Emacs transition machinery


From: Eric S. Raymond
Subject: Public repo for Emacs transition machinery
Date: Mon, 3 Feb 2014 05:04:54 -0500 (EST)

At: address@hidden:emacs-transition/emacs-transition.git

Here's the README:

= Enacs repo conversion tools =

This is a collection of scripts being used to prepare the Emacs
repository history to full transition to git.  I have published
it so others can audit my work and suggest corrections.

The output of this process is a lift script, emacs.lift, intended
to be run against Andreas Schwab's mirror on conversion day.

== How to help ==

1. Report Bazaar and CVS references that aren't already in the
emacs.lift file (see BAZAAR REFERENCES and CVS REFERENCES). 

2. Check the CVS references already in emacs.lift (see CVS REFERENCES). 
The Bazaar ones don't have to be checked by hand as they were automatically
generated in a simple way.

3. Identify the actual merge points of as many of the =-prefixed attic
files as possible, so I can do the cleanup Andreas wants.  (Look for
the string "ATTIC FILES" in emacs.lift.)

4. Use gitk or git log to spot CVS cliques consisting of uncoalesced
single-file changes and their ChangeLog entry commits; report them so
I can squash them into proper changesets. 

5. Investigate the old-branches and other-branches groups and determine
which branches, if any, should be discarded.

6. (Advanced) Learn the reposurgeon DSL.  Use this knowledge to audit
emacs.lift for correctness.

== Prerequisites ==

To begin using these, you need to create two files:

emacs.fi:
        A stream dump of Andreas Schwab's git mirror. There is a production
        in the Makefile that will create this, provided you give it the
        location of a repository instance.  It is OK for this file to be
        a bit out of date; the stuff that needs to be fixed is all in older
        sections of the file.

BZR.LOG:
        A dump of "bzr log --levels 0" from the trunk branch.  Various scripts 
        start from this to extract required metadata.

== Source files

These need to be maintained by hand.

FOSSILS:
        An association from CVS and Bazaar revision specifications to
        action stamps. Used by mergefossils.py. Updated by decorate.py.

== Intermediate files ==

emacs.map:
        Associates ever Bazaar revision to an action stamp. Automatically
        generated from BZR.LOG ny bzrlog2map. Used by decorate.py.

== Documentation ==

README:
        This file

transition.txt:
        The transition plan.

== Workflow == 

The goal is to create a complete and up-to-date emacs.lift file. 
The scripts are aimed at creating sections of the file that can be
automatically generated.  Here they are:

bzrlog2map:
        Takes BZR.LOG and produces a revision-to-action-stamp map (emacs.map).
        Unlile FOSSILS, this map is is (a) complete, not selective,
        (b) covers only Bazaar references, and (c) is guaranteed correct
        modulo unknown bugs in bzrlog2map.

decorate.py:
        Uses emacs.map to update FOSSILS after you have added new Bazaar
        source revisions to it.  This means you don't have to update the 
        target action stamps by hand, which would be highly error prone.
        May be obsolete now.

mergefossils.py:
        Massage FOSSILS into a command sequence that can go in emacs.lift.
        May be obsolete now; it may be better to incrementally patch
        emacs.lift.

revlocate.py:
        Attempt to mine Bazaar revision numbers out of BZR.LOG, to be used
        in the FOSSILS file.



-- 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>

'Faith' means not _wanting_ to know what is true.
        -- Nietzsche, Der Antichrist



reply via email to

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