CVS update by stephent xemacsweb/Develop ...
xemacs-cvs at xemacs.org
xemacs-cvs at xemacs.org
Sat Feb 2 02:27:21 EST 2008
User: stephent
Date: 08/02/02 08:27:20
Modified: xemacsweb/Develop ChangeLog index.content cvsaccess.content
Added: xemacsweb/Develop hgaccess.content
Log:
Update repository access information to December 2007 reality.
<878x23ak9f.fsf at uwakimon.sk.tsukuba.ac.jp>
Revision Changes Path
1.106 +9 -0 XEmacs/xemacsweb/Develop/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Develop/ChangeLog,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -p -r1.105 -r1.106
--- ChangeLog 2007/03/24 15:30:19 1.105
+++ ChangeLog 2008/02/02 07:27:19 1.106
@@ -1,3 +1,12 @@
+2008-02-01 Stephen J. Turnbull <stephen at xemacs.org>
+
+ * hgaccess.content: New file based on cvsaccess.html.
+
+ * index.content: Add reference to hgaccess.html.
+ Add reference to beta.html.
+
+ * cvsaccess.content: Add reference to hgaccess.html.
+
2007-03-25 Stephen J. Turnbull <stephen at xemacs.org>
* devTeam.content: XHTML doesn't permit omitting close tags.
1.16 +33 -10 XEmacs/xemacsweb/Develop/index.content
Index: index.content
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Develop/index.content,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -p -r1.15 -r1.16
--- index.content 2003/11/08 22:37:13 1.15
+++ index.content 2008/02/02 07:27:20 1.16
@@ -8,20 +8,39 @@ john s jacobs anderson
<h2 id="xemacs">XEmacs Development</h2>
+ <p>As of 5 December 2007, the development mainline (aka version
+ 21.5) has been moved to a
+ <a href="http://hgbook.red-bean.com/hgbook.html">Mercurial</a>
+ repository on <code>hg.debian.org</code> from which you may
+ <a href="http://hg.debian.org/hg/xemacs/xemacs">browse</a> the
+ latest checked-in code. Please see the introduction to the
+ <a href="hgaccess.html">XEmacs Mercurial Repository</a> for
+ instructions on its use.</p>
+
+ <p>Other XEmacs repositories, including the 21.4 branch, the
+ packages, and the sources for this website, continue to be
+ provided by the CVS repository on <code>cvs.xemacs.org</code>,
+ hosted by our friends at <code>dotsrc.org</code>.</p>
+
<p>
- More detailed information is forthcoming, but in the short term,
- if you'd like to help with the XEmacs development effort, do the
+ If you'd like to help with the XEmacs development effort, do the
following:</p>
<ol>
<li>
<p>
- <a href="../Download/index.html">Download</a> the
- latest beta release, or (better) go to <a href="<!-- _GP_
- relPath(qq{Develop/cvsaccess.html}) -->"><!--
- _GP_ relPath(qq{Develop/cvsaccess.html}) --></a> and follow
- the instructions to get an up-to-date CVS tree of the XEmacs
- source.</p>
+ <a href="<!-- _GP_ relPath(qq{Download/index.html}) -->">Download</a>
+ the latest releases of 21.4 (the stable branch) or 21.5 (the
+ development mainline, or (better) get the most up-to-date
+ sources from the source repositories. For 21.5, see the
+ introduction to the
+ <a href="hgaccess.html">XEmacs Mercurial Repository</a> and
+ follow the instructions to get an up-to-date tree of the
+ XEmacs 21.5 source. For other resources, such as the 21.4
+ stable tree, the package tree and the source to this website,
+ see the introduction to the
+ <a href="cvsaccess.html">XEmacs CVS Repository</a> and follow
+ the instructions to get an up-to-date trees of those resources.</p>
</li>
<li>
<p>
@@ -51,8 +70,12 @@ john s jacobs anderson
<p>
The rules for creating and submitting patches are set forth in
- etc/BETA (look for <strong>Creating patches for submission</strong>
- in documentation accessed via M-x <strong>describe-beta</strong>)</p>
+ etc/BETA (section <strong>Creating patches for submission</strong>
+ in documentation accessed via M-x <strong>describe-beta</strong>),
+ or see the
+ <a href="<!-- _GP_ relPath(qq{Documentation/21.5/html/beta.html}) -->">
+ web version</a>.
+ </p>
<p>
You may find the <a
1.31 +16 -2 XEmacs/xemacsweb/Develop/cvsaccess.content
Index: cvsaccess.content
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Develop/cvsaccess.content,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -p -r1.30 -r1.31
--- cvsaccess.content 2006/01/12 09:41:58 1.30
+++ cvsaccess.content 2008/02/02 07:27:20 1.31
@@ -9,8 +9,22 @@ Stephen J. Turnbull <stephen at xemacs.o
<h1>XEmacs CVS Repository</h1>
- <p>
- Please review the information below even if you are familiar with
+ <p>As of 5 December 2007, the development mainline (aka version
+ 21.5) has been moved to a
+ <a href="http://hgbook.red-bean.com/hgbook.html">Mercurial</a>
+ repository on <code>hg.debian.org</code> from which you may
+ <a href="http://hg.debian.org/hg/xemacs/xemacs">browse</a> the
+ latest checked-in code. Please see the introduction to the
+ <a href="hgaccess.html">XEmacs Mercurial Repository</a> for
+ instructions on its use.</p>
+
+ <p>Other XEmacs repositories, including the 21.4 branch, the
+ packages, and the sources for this website, continue to be
+ provided by the CVS repository on <code>cvs.xemacs.org</code>,
+ hosted by our friends at <code>dotsrc.org</code>. This page
+ describes access to those resources.</p>
+
+ <p>Please review the information below even if you are familiar with
the XEmacs CVS repository.</p>
<ul>
1.1 XEmacs/xemacsweb/Develop/hgaccess.content
Index: hgaccess.content
===================================================================
%title%
XEmacs CVS Archive
%author%
Jareth Hein <jareth at xemacs.org>
Steve Youngs <youngs at xemacs.org>
Adrian Aichner <adrian at xemacs.org>
Stephen J. Turnbull <stephen at xemacs.org>
%main%
<h1>XEmacs Mercurial Repository</h1>
<p>As of 5 December 2007, the development mainline (aka version
21.5) has been moved to a
<a href="http://hgbook.red-bean.com/hgbook.html">Mercurial</a>
repository on <code>hg.debian.org</code> from which you may
<a href="http://hg.debian.org/hg/xemacs/xemacs">browse</a> the
latest checked-in code. This page describes access to those
resources.</p>
<p>Other XEmacs repositories, including the 21.4 branch, the
packages, and the sources for this website, continue to be
provided by the CVS repository on <code>cvs.xemacs.org</code>,
hosted by our friends at <code>dotsrc.org</code>. Please see the
introduction to the <a href="cvsaccess.html">XEmacs CVS
Repository</a> for instructions on its use.</p>
<p><strong>Please note:</strong> This page was hacked up quickly
by copying and editing the corresponding page for CVS. If you
spot any CVS-isms or other statements that are not correct for
the new repository, please report it as a bug to the
<a href="mailto:xemacs-beta at xemacs.org">XEmacs Developers</a>.</p>
<ul>
<li><a href="#quickstart">Quick start guide</a></li>
<li><a href="#whatishg">What is Mercurial?</a></li>
<li><a href="#tutorial">Using the XEmacs Mercurial server</a></li>
<li><a href="#tags">Tags: what they are and their use</a></li>
<li><a href="#packages">Packages info</a></li>
<li><a href="#webaccess">Web access to the trees</a></li>
<li><a href="#committers">Commit (R/W) access to the CVS trees</a></li>
<li><a href="#recent">Recent news</a></li>
</ul>
<p>
This site has a collection of
<a href="http://www.selenic.com/">Mercurial</a>trees for XEmacs,
a feature-packed text-editing environment based on Lisp. For
general information about XEmacs, check out the
<a href="http://www.xemacs.org">XEmacs main WWW server</a>.</p>
<h3><a name="quickstart">Quick Start Guide</a></h3>
<p>
To get the official (21.5) development sources, do:</p>
<pre xml:space="preserve">
<strong>hg clone http://hg.debian.org/hg/xemacs/xemacs-beta</strong>
</pre>
<p>
To get the bleeding edge patches that are still under review (and
in some cases may already have been vetoed or be known to cause
crashes and other showstoppers) do:</p>
<pre xml:space="preserve">
<strong>hg clone http://hg.debian.org/hg/xemacs/xemacs</strong>
</pre>
<p>
instead. The XEmacs lisp packages are now unbundled, and are
available from the <a href="cvsaccess.html">CVS repository</a>.
Older versions of XEmacs, including the currently stable version
(21.4) may also be checked out from <a href="cvsaccess.html">CVS
repository</a>.</p>
<p>
Each of these components are available separately as non-CVS
tarballs via HTTP and FTP. Here are the current HTTP URLs:</p>
<ul>
<li><a href="http://ftp.xemacs.org/pub/xemacs/xemacs-21.5"><strong>http://ftp.xemacs.org/pub/xemacs/xemacs-21.5</strong></a></li>
<li><a href="http://ftp.xemacs.org/pub/xemacs/xemacs-21.4"><strong>http://ftp.xemacs.org/pub/xemacs/xemacs-21.4</strong></a></li>
<li><a href="http://ftp.xemacs.org/pub/xemacs/xemacs-21.1"><strong>http://ftp.xemacs.org/pub/xemacs/xemacs-21.1</strong></a></li>
<li><a href="http://ftp.xemacs.org/pub/xemacs/packages"><strong>http://ftp.xemacs.org/pub/xemacs/packages</strong></a></li>
</ul>
<p>If you prefer FTP for some reason, simply change the URL scheme
from "http" to "ftp".</p>
<hr />
<h3><a name="whatishg">What is Mercurial?</a></h3>
<p>
<a href="http://hgbook.red-bean.com/hgbook.html">Mercurial</a>
is a modern version control system (VCS) that not only keeps
track of older versions also handles branching and distributed
development well. Unlike CVS or Subversion (the defacto
industry-standard source code control system for open source
software projects), every Mercurial checkout is a full
repository, containing all of the project's history. Because
the archives are compressed, a full repository (back to 21.5.0)
requires much less than twice the space of the source tree
alone. Unlike many other VCSes (including CVS and git)
Mercurial is perfectly happy to serve remote clients over an
ordinary HTTP connection, using an unmodified httpd and a tiny
CGI. This means that you can easily share your
version-controlled patches with others, even if they are not
accepted for the mainline.
</p>
<p>
Regular contributors to XEmacs are strongly encouraged to get
Mercurial write access to the source repository. This
distributes most of the patch-tracking work to those most
qualified to do it, namely the patch authors. XEmacs source
code maintenance is basically organized on the bazaar model -
we'd like to have as many people as possible, including
<strong>you</strong>, making high quality contributions to the
source code, in parallel. But even if you are just a lurker
with no desire to make any modifications to the tree, Mercurial
gives you a painless way to upgrade between versions.
</p>
<p>
By current standards, these trees are moderate in size. XEmacs
21.5 sources will take up 80 MB of hard drive space, before
compilation, the Mercurial metadata and archive about as much.
A typical build will add about 60 MB of build products, for a
total of about 220 MB required for core development. Add in
the lisp packages tree (another 120 MB of source, with compiled
Lisp taking about 70MB) in your calculations if you're
interested in messing with them too.
<!-- #### Update these:
All in all, the total tree size for the XEmacs core tree is
196MB, comprising over 2006 files with 397754-some odd lines of
code. Packages add another 4042 files for 760315 lines of lisp.
-->
</p>
<hr />
<h3><a name="tutorial">Using the XEmacs Mercurial server</a></h3>
<p>
If you're interested in using the XEmacs Mercurial trees
directly, you'll need to install Mercurial. Mercurial is highly
portable because it is entirely written in Python. Binary
packages are available for most platforms, either through native
package distributions or from
<a href="http://www.selenic.com/mercurial/wiki/index.cgi/Download">
Selenic</a>.</p>
<p>
Unlike many centralized servers, XEmacs's Mercurial repository
does not require login for cloning the repository. (Note: for
modern distributed VCSes, whole repository is duplicated and can
stand alone, so we use the word "clone" rather than "checkout".
"Checkout" is used to describe the operation of copying files
from the repository archive to the working copy, whether to
revert undesirable changes in a single file, or to switch the
entire working copy over to another branch.) The clone
operation is simple.
</p>
<p>
First cd to the place you want to put the tree, and actually
clone the repository.</p>
<pre xml:space="preserve">
chibi$ <strong>hg clone http://hg.debian.org/hg/xemacs/xemacs-beta xemacs-21.5</strong>
<i>(churn, churn, churn)</i>
</pre>
<p>
And voila! One <strong>xemacs-21.5</strong> directory complete
with the latest versions of the base code. Packages are
separate, of course.</p>
<p>
The last argument <code>xemacs-21.5</code> gives the name of the
directory to use as a workspace. The repository metadata and
archives go in the <code>.hg</code> subdirectory, and there will
usually be a <code>.hgignore</code> file containing regexps
matching names of files to ignore for version control purposes.
If the tree root name (here <code>xemacs-21.5</code>) is
omitted, it will be defaulted to the basename of the URL being
cloned.</p>
<p>
You probably want to create a <code>~/.hgrc</code> file to
configure your local defaults. At least it's worth setting your
Mercurial username:</p>
<pre xml:space="preserve"><tt>
[ui]
username = J. Random Hacker <jrhacker at example.com>
</tt></pre>
<p>
so that any local commits to your own repository look nice.
(Feel free to commit what you like, it's <em>your</em>
repository. If you expect to contribute upstream, however, you
may want to keep a separate "pristine" workspace or learn about
named branches.)</p>
<p>
When there is an upstream update, you can get the whole skinny
quick, fast and relatively painlessly with the following command
(executed from the directory created by <tt><strong>hg
clone</strong></tt>).</p>
<pre xml:space="preserve">
chibi$ <strong>hg pull -u</strong>
</pre>
<p>
The <code>-u</code> switch automatically updates your workspace
to correspond to the tip.</p>
<p>
If you have local changes that you'd like to keep under version
control, you can either use a separate repository or named
branches. Here's one suggestion:</p>
<pre xml:space="preserve">
Message-ID: <87abmmc1lo.fsf at uwakimon.sk.tsukuba.ac.jp>
From: "Stephen J. Turnbull" <stephen at xemacs.org>
Cc: XEmacs Beta List <xemacs-beta at xemacs.org>
Subject: Converting from using CVS to hg
Date: Thu, 31 Jan 2008 08:53:07 +0900
robert writes:
> I have 21.5.b28 from CVS which I have kept uptodate. I also have a few
> changes to files in src and lisp for my own use.
>
> I just got a clone of the current tree using
> mv xemacs xemacs-cvs
> hg clone http://hg.debian.org/hg/xemacs/xemacs
> When I want to update the xemacs tree, do I
> cd xemacs
> hg pull http://hg.debian.org/hg/xemacs/xemacs
No, you should do "hg pull -u", which updates the directory from the
default "other repository". This starts out as the repo you cloned,
and won't change unless you edit .hg/hgrc. The update, like CVS,
merges.
> If I am only compiling and using XEmacs--not contributing code, is
> hg still the way I should go?
Yes. Because hg is so much better at branching, what you probably
want to do is to keep a pristine checkout of XEmacs, and a separate
checkout of your changes. so the initial clone would look like
cd $parent
hg clone http://hg.debian.org/hg/xemacs/xemacs
mv xemacs xemacs-upstream
hg clone xemacs-upstream
for f in $files_I_want_to_keep_from_my_version; do
cp f xemacs/$the_right_place
done
cd xemacs
hg commit -m "Bring in my existing local changes."
and your update process would look like:
cd xemacs-upstream
hg pull -u # there should never be any merge conflicts
cd ../xemacs
hg pull -u
# fix any merge conflicts here
# if there were merge conflicts, commit
Alternatively, you could use named branches. Initial clone:
cd $parent
hg clone http://hg.debian.org/hg/xemacs/xemacs
hg branch myxemacs
for f in $files_I_want_to_keep_from_my_version; do
cp f $the_right_place
done
hg commit -m "Bring in my existing local changes."
and update
cd xemacs
hg checkout default
hg pull # no -u because you're just going to overwrite
# again immediately
hg checkout myxemacs
hg merge default
# fix any merge conflicts here
hg commit -m "Merge $date."
(WARNING: The above use of named branches is as yet untested by me!)
</pre>
<h3><a name="tags">Just how much do you want to bleed?</a></h3>
<p>
XEmacs developers push their commits on an asynchronous basis.
The idea is to keep those actively coding on the same page by
making everyone's most recent code available in a central place.
There is no strong guarantee that the tip of the default
Mercurial branch even compiles for anyone. This means that if
you blindly do a <strong>hg pull -u</strong>, there is a good
chance that what you get is not functional.</p>
<p>There are several ways to deal with the churn.</p>
<ul>
<li>Since you have the whole repository available, you can
simply revert to an earlier revision.
<pre xml:space="preserve">
chibi$ hg checkout -r 1234
</pre>
If this mechanism satisfies you, you may even want to clone
and update to the completely unfiltered repository that the
active developers are committing to:
<pre xml:space="preserve">
chibi$ <strong>hg clone http://hg.debian.org/hg/xemacs/xemacs xemacs-21.5</strong>
</pre>
</li>
<li>
You can also take advantage of the review process, and use the
<code>xemacs-beta</code> repository as described above.</li>
<li>
Finally, the most conservative approach is to checkout only
the official releases. These are identical to the tarballs
distributed by <code>xemacs.org</code>, and are identified in
the <code>xemacs-beta</code> repository by tags of the form
<i>rX-Y-Z</i>, corresponding to the version number X.Y.Z (or
X.Y-bZ). X is the major version, Y the minor version, and Z
the micro version or patchlevel.</li>
</ul>
<p>
In general, tags are admissible anywhere a revision number or
hash is allowed. To checkout a particular revision use the
<code>checkout</code> command with the <strong>-r
<TAG></strong> option to. Therefore, to update to 21.5
beta 16 (but no further), you'd type:</p>
<pre xml:space="preserve">
chibi$ <strong>hg checkout -r r21-5-16</strong>
</pre>
<p>
The most recent patchlevel or beta release is identified by the
tag <i>rX-Y-latest-beta</i>.</p>
<p>
For more info, check the Mercurial documentation:</p>
<ul>
<li>the <a href="http://hgbook.red-bean.com/hgbook.html">
Mercurial book</a></li>
<li>the <a href="http://www.selenic.com/mercurial/wiki/">
Mercurial wiki</a></li>
<li>the builtin help, using <code>hg help</code></li>
</ul>
<hr />
<h3><a name="packages">New Package system</a></h3>
<p>
For those of you wishing to work with XEmacs 21, you should
probably know about our new packaging system. All the details are
available <a href="packages.html">here</a>, and there is also an
<a href="cvsaccess.html#packages">introduction to the packages
CVS repository</a>.</p>
<h3><a name="webaccess">Web Access</a></h3>
<p>
You can browse the repositories simply by accessing the
repositories with any web browser.</p>
<ul>
<li>The <a href="http://hg.debian.org/hg/xemacs/xemacs-beta">
reviewed and approved beta versions</a></li>
<li>The <a href="http://hg.debian.org/hg/xemacs/xemacs">raw
patch stream</a></li>
</ul>
<hr />
<h3><a name="committers">Commit (R/W) access to the Mercurial tree</a></h3>
<p>
Anybody who has become reasonably well-known to the
<a href="jobs.html">XEmacs Reviewers</a> can get access to
commit to the repository. This has the following advantages:</p>
<ul>
<li>
The revision history will contain the true author of a change,
which makes tracking changes easier, and gives credit where
credit is due.</li>
<li>
Committers are more likely to take responsibility for their
changes when they are directly modifying the repository
themselves.</li>
</ul>
<p>
To qualify to be a committer, you should have a history of
submitting successful patches to
<a href="http://list-archive.xemacs.org/xemacs-patches/">
xemacs-patches</a></p>
<p>
Currently we are adding new committers using the following
method (which may change):</p>
<ol>
<li>
Make sure ssh (version 1 or 2) is installed on your
computer.</li>
<li><p>
Get yourself a ssh public key. Here is some unsolicited
advice on maintaining your ssh key:</p>
<p>
In general, you should only have ONE identity that you expose
to the outside world. Create only ONE key pair:
<tt>~/.ssh/identity</tt> and <tt>~/.ssh/identity.pub</tt>
for version 1. Or for version 2, one of either
<tt>~/.ssh/id_rsa</tt> and <tt>~/.ssh/id_rsa.pub</tt> or
<tt>~/.ssh/id_dsa</tt> and <tt>~/.ssh/id_dsa.pub</tt>
with <tt>ssh-keygen</tt>, and change the comment to something
more meaningful like your email address. Your ssh public key
is a lot like a business card.</p>
<p>
For example, I modified the comment in my version 1 public key
using</p>
<pre xml:space="preserve">
ssh-keygen -c -C 'Steve Youngs <youngs at xemacs.org>'
</pre>
<p>
SSH version 2 is slightly different. If you try the above
command on a version 2 key you'll get an error saying that
comments are only supported for version 1 keys. Don't believe
everything you read, you can have a comment in a version 2
key. You just have to add the comment when you create the
key:</p>
<pre xml:space="preserve">
ssh-keygen -t dsa -C 'Steve Youngs <youngs at xemacs.org>'
</pre>
<p>
After you have created your keys, copy the <tt>~/.ssh/identity</tt>
or <tt>~/.ssh/id_dsa</tt> or <tt>~/.ssh/id_rsa</tt> file to
all the machines you run ssh <strong>from</strong>.</p>
<p>
Also, append your public key file <tt>~/.ssh/identity.pub</tt>
to the <tt>~/.ssh/authorized_keys</tt> file for SSH 1 or
<tt>~/.ssh/id_(dsa|rsa).pub</tt> to
<tt>~/.ssh/authorized_keys2</tt> on all the machines you run
ssh <strong>to</strong>.</p>
<p>
When people ask you for your public ssh key, just send them
the contents of <tt>~/.ssh/identity.pub</tt> or
<tt>~/.ssh/id_dsa.pub</tt> or
<tt>~/.ssh/id_rsa.pub</tt>.</p></li>
<li>
If you are not already a Debian developer, you'll need to go
to <a href="http://alioth.debian.org/">Alioth</a>
(<code>http://alioth.debian.org/</code>) and get an account
for guest developers. If you're not a Debian person, it will
have "-guest" appended to it, so be prepared. (Sorry,
"unwelcome-guest" is already taken, but I can think of a few
others that are moderately creative. Think!)</li>
<li>
Send the <a href="mailto:mike at xemacs.org">Mercurial
Administrator</a> your Alioth user name and your public
ssh key (i.e. the contents of <tt>~/.ssh/identity.pub</tt> for
SSH 1, or <tt>~/.ssh/id_dsa.pub</tt> or
<tt>~/.ssh/id_rsa.pub</tt> for SSH 2). The administrator
will take care of the administrivia to give you
access.</li>
<li>
<p>
Add this stanza to your <tt>~/.ssh/config</tt> file (create it
if necessary):</p>
<pre xml:space="preserve">
Host hg.debian.org
User <i>alioth-user</i>-guest
ForwardX11 no
ForwardAgent no
</pre>
</li>
</ol>
<hr />
<h3><a name="recent"></a>News and changes</h3>
<h5>2008-02-01</h5>
<h4>Changes by Stephen:</h4>
<p>
Steal the contents of cvsaccess.html and modify them for
Mercurial.</p>
<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:("../template.html" "html" "body" "table" "tr" "td")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
More information about the XEmacs-CVS
mailing list