1
0
forked from GitHub/gf-core

Update darcs.html for the code.haskell.org repo.

This commit is contained in:
bjorn
2008-02-25 15:27:44 +00:00
parent 831a2d97ea
commit de23fe7483
2 changed files with 32 additions and 387 deletions

View File

@@ -8,7 +8,7 @@
<P ALIGN="center"><CENTER><H1>GF Darcs repository</H1>
<FONT SIZE="4">
<I>Author: Björn Bringert &lt;bringert@cs.chalmers.se&gt;</I><BR>
Last update: Wed Oct 3 15:13:24 2007
Last update: Mon Feb 25 16:26:54 2008
</FONT></CENTER>
<P></P>
@@ -26,54 +26,21 @@ Last update: Wed Oct 3 15:13:24 2007
</UL>
<LI><A HREF="#toc8">Read-write access</A>
<UL>
<LI><A HREF="#toc9">Setting up your $PATH on the Chalmers system</A>
<LI><A HREF="#toc10">Getting a fresh copy</A>
<LI><A HREF="#toc11">Getting other people's changes?</A>
<LI><A HREF="#toc12">Commit your changes</A>
<LI><A HREF="#toc13">Apply a patch from someone else</A>
<LI><A HREF="#toc9">Getting a fresh copy</A>
<LI><A HREF="#toc10">Getting other people's changes?</A>
<LI><A HREF="#toc11">Commit your changes</A>
<LI><A HREF="#toc12">Apply a patch from someone else</A>
</UL>
<LI><A HREF="#toc14">Troubleshooting</A>
<UL>
<LI><A HREF="#toc15">I get the error "darcs not found" when pushing</A>
<LI><A HREF="#toc16">I get the error "(sftp) failed to fetch files."</A>
<LI><A HREF="#toc17">How do I avoid typing in my password so many times?</A>
<UL>
<LI><A HREF="#toc18">Using ssh ControlMaster</A>
<LI><A HREF="#toc19">Using ssh-agent</A>
</UL>
</UL>
<LI><A HREF="#toc20">Technical Information</A>
<LI><A HREF="#toc21">Further information about Darcs</A>
<LI><A HREF="#toc13">Further information about Darcs</A>
</UL>
<P></P>
<HR NOSHADE SIZE=1>
<P></P>
<P>
<B>GF has now been moved to a Darcs repository. No changes should be committed to the CVS repository from now on.</B>
</P>
<A NAME="toc1"></A>
<H1>What is darcs?</H1>
<P>
Darcs is a decentralized revision control system. These are some of
the reasons for switching GF from CVS to Darcs:
</P>
<UL>
<LI>You can keep local revision control in your checked-out copy, since
each checked-out copy is a repository in itself. For example, this
allows the WebALT project to keep a local GF repository for working
on the resource grammars, and submit patches to the main repo when
that is convenient. It also allows individual developers to keep
revision control over their own modifications before they are ready
to submit them, or if they are temporarily without net access.
<P></P>
<LI>We can provide read-only access over HTTP using the existing CS web server.
<P></P>
<LI>It is possible and easy to rename and remove both files and directories.
</UL>
<P>
For more information about Darcs, see <A HREF="http://darcs.net/">http://darcs.net/</A>.
Darcs is a decentralized revision control system. See <A HREF="http://darcs.net/">http://darcs.net/</A> for more information.
</P>
<A NAME="toc2"></A>
<H1>How do I install Darcs?</H1>
@@ -93,12 +60,12 @@ written in Haskell and you need GHC to compile it.
Anyone can get the latest development version of GF by running (all on one line):
</P>
<PRE>
$ darcs get --partial --set-scripts-executable http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/
$ darcs get --partial --set-scripts-executable http://code.haskell.org/gf/
</PRE>
<P></P>
<P>
This will create a directory called <CODE>GF</CODE> in the current
directory. See <CODE>GF/src/INSTALL</CODE> for instructions on compiling. The
This will create a directory called <CODE>gf</CODE> in the current
directory. See <CODE>gf/src/INSTALL</CODE> for instructions on compiling. The
main difference compared to compiling a GF release is that you
need to run <CODE>autoconf</CODE> before <CODE>./configure</CODE>.
</P>
@@ -112,7 +79,7 @@ To get all new patches from the main repo:
</PRE>
<P></P>
<P>
This can be done anywhere in your local repository, i.e. in the <CODE>GF</CODE>
This can be done anywhere in your local repository, i.e. in the <CODE>gf</CODE>
directory, or any of its subdirectories.
</P>
<P>
@@ -179,65 +146,28 @@ patch directly from darcs. If so, replace <CODE>-o mypatch.patch</CODE> with
<A NAME="toc8"></A>
<H1>Read-write access</H1>
<P>
If you have an account on the Chalmers system and want read-write
access, you can access the repository using ssh.
You need to be a member of the <CODE>langtech</CODE> group to push changes to
the repository.
</P>
<P>
If darcs seems to ask for your <B>password multiple times</B> for a single
push or pull, try upgrading to recent versions of darcs and OpenSSH
(OpenSSH version 4 or newer).
Recent OpenSSH versions include a connection multiplexing feature, which
recent darcs versions support.
Note that darcs 1.0.9 has some problems with this, try downgrading
to darcs 1.0.8.
</P>
<P>
<B>Note: we seem to have some problems getting read-write access working smoothly on Windows.</B>
If you figure out how to do this, let us know. If not, you can still use read-only access,
record patches in your local repository, and send them by e-mail once in a while.
If you have a user account on code.haskell.org, you can get read-write access over SSH
to the GF repository.
To get an account, <A HREF="form">http://community.haskell.org/admin/account_request.html fill out this</A>.
Once you have an account, ask &lt;<A HREF="mailto:bringert@cs.chalmers.se">bringert@cs.chalmers.se</A>&gt; to add you to the <CODE>gf</CODE> project.
</P>
<A NAME="toc9"></A>
<H2>Setting up your $PATH on the Chalmers system</H2>
<P>
The <CODE>darcs</CODE> program has to be on your <CODE>$PATH</CODE> on the Chalmers
system to make it possible for you to push changes to the main
repository. To fix this, log in to your Chalmers account and run:
</P>
<PRE>
mkdir -p $HOME/.vcs4
echo unsup &gt;&gt; $HOME/.vcs4/pathsetup
</PRE>
<P></P>
<P>
Note that the path setup works differently on different Chalmers machines.
The command above will setup you path on the newer machines correctly.
</P>
<A NAME="toc10"></A>
<H2>Getting a fresh copy</H2>
<P>
Get your copy with (all on one line),
replacing <CODE>bringert</CODE> with your own username on the
Chalmers system:
replacing <CODE>bringert</CODE> with your own username on code.haskell.org:
</P>
<PRE>
$ darcs get --partial --set-scripts-executable bringert@momo.medic.chalmers.se:/users/cs/www/Research/Language-technology/darcs/GF/
$ darcs get --partial --set-scripts-executable bringert@code.haskell.org:/srv/code/gf
</PRE>
<P></P>
<P>
Note that <B>you really need to use <CODE>momo.medic.chalmers.se</CODE></B>
(or some other server with the new Linux system) since we need to
have a server with at least Darcs 1.0.4. If you use some server
with an earlier Darcs version you can mess up the repository.
</P>
<P>
The option <CODE>--partial</CODE> means that you do not download all of the
history for the repository. This saves space, bandwidth and CPU time,
and most people don't need the full history of all changes in the
past.
</P>
<A NAME="toc11"></A>
<A NAME="toc10"></A>
<H2>Getting other people's changes?</H2>
<P>
Get all new patches from the main repo:
@@ -249,7 +179,7 @@ Get all new patches from the main repo:
<P>
Without <CODE>-a</CODE>, you can choose which patches you want to get.
</P>
<A NAME="toc12"></A>
<A NAME="toc11"></A>
<H2>Commit your changes</H2>
<P>
There are two steps to commiting a change to the main repo. First you
@@ -272,7 +202,7 @@ ssh-access, all you need to do is:
If you use the <CODE>-a</CODE> flag to push, all local patches which are not in
the main repo are pushed.
</P>
<A NAME="toc13"></A>
<A NAME="toc12"></A>
<H2>Apply a patch from someone else</H2>
<P>
Use:
@@ -285,128 +215,7 @@ Use:
This applies the patch to your local repository. To commit it to the
main repo, use <CODE>darcs push</CODE>.
</P>
<A NAME="toc14"></A>
<H1>Troubleshooting</H1>
<A NAME="toc15"></A>
<H2>I get the error "darcs not found" when pushing</H2>
<P>
If you get <CODE>darcs not found</CODE> when you try to push your changes, you
don't have darcs on your <CODE>$PATH</CODE> on the Chalmers system. See
the section above on setting up your <CODE>$PATH</CODE> on the Chalmers system.
</P>
<A NAME="toc16"></A>
<H2>I get the error "(sftp) failed to fetch files."</H2>
<P>
There seems to be a problem with how darcs 1.0.4 calls sftp, which
means that normal password authentication does not work.
Try upgrading to a more recent version of darcs.
</P>
<A NAME="toc17"></A>
<H2>How do I avoid typing in my password so many times?</H2>
<A NAME="toc18"></A>
<H3>Using ssh ControlMaster</H3>
<P>
Get a recent darcs and OpenSSH, see above.
</P>
<P>
Note that the ControlMaster feature does not seem to
work properly in darcs 1.0.9 under Mac OS X.
Use darcs 1.0.8 instead.
</P>
<A NAME="toc19"></A>
<H3>Using ssh-agent</H3>
<P>
<B>NOTE: the method below will not work with <CODE>momo.medic.chalmers.se</CODE></B>.
MEDIC has decided to disable public key authentication on all new machines.
This section is included just for reference in case they decide to enable
it again.
</P>
<P>
With the ssh access method, Darcs needs to log in with ssh. For some
reason it needs to do this several times for each operation. You can
avoid this by setting up public-key authentication for ssh.
</P>
<P>
Here is a guide to setting this up:
<A HREF="http://cfm.gs.washington.edu/security/ssh/client-pkauth/">http://cfm.gs.washington.edu/security/ssh/client-pkauth/</A>
</P>
<P>
Short summary (should on most modern Linux distros, maybe other
platforms too):
</P>
<P>
Generate a key pair:
</P>
<PRE>
$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
Enter passphrase (empty for no passphrase): ...
Enter same passphrase again: ...
</PRE>
<P></P>
<P>
Upload the public key to your Chalmers account (replace <CODE>bringert</CODE> with
your username):
</P>
<PRE>
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bringert@remote.cs.chalmers.se
</PRE>
<P></P>
<P>
Add the key to ssh-agent (ssh-agent then remembers your key for a
while, so that you don't have to type in the passphrase again):
</P>
<PRE>
$ ssh-add
Enter passphrase for /home/bjorn/.ssh/id_rsa: ...
</PRE>
<P></P>
<P>
This is the part that is most likely to fail. If ssh-add says that it
couldn't find ssh-agent, you need to follow the instructions linked to
above to start ssh-agent.
</P>
<P>
Try to use it to log in (with your own username again):
</P>
<PRE>
$ ssh bringert@remote.cs.chalmers.se
...
zsh:bringert:[~]&gt;
</PRE>
<P></P>
<A NAME="toc20"></A>
<H1>Technical Information</H1>
<P>
This section contains information about how the repository is set
up. It might be useful for troubleshooting the repository setup
or creating a similiar setup for another repository.
</P>
<P>
The main repository is in
<CODE>/users/cs/www/Research/Language-technology/darcs/GF</CODE>, which is
visible to the web server. The repository and all files and
directories in it group writable, owned by the group <CODE>langtech</CODE>, and
all directories have the setgid bit set:
</P>
<PRE>
drwxrwsr-x 10 bringert langtech 512 Nov 17 19:00 /users/cs/www/Research/Language-technology/darcs/GF
</PRE>
<P></P>
<P>
The repo has this in <CODE>_darcs/prefs/defaults</CODE>:
</P>
<PRE>
apply posthook find . -user "$USER" -a ! -perm +g+w -exec chmod g+w '{}' ';'
apply run-posthook
</PRE>
<P></P>
<P>
The server which we push to has darcs 1.0.4, which is needed for
posthook support.
</P>
<A NAME="toc21"></A>
<A NAME="toc13"></A>
<H1>Further information about Darcs</H1>
<P>
For more info about what you can do with darcs, see <A HREF="http://darcs.net/manual/">http://darcs.net/manual/</A>

View File

@@ -10,29 +10,9 @@ Last update: %%date(%c)
%!options(html): --toc
%!encoding:utf-8
**GF has now been moved to a Darcs repository. No changes should be committed to the CVS repository from now on.**
= What is darcs? =
Darcs is a decentralized revision control system. These are some of
the reasons for switching GF from CVS to Darcs:
- You can keep local revision control in your checked-out copy, since
each checked-out copy is a repository in itself. For example, this
allows the WebALT project to keep a local GF repository for working
on the resource grammars, and submit patches to the main repo when
that is convenient. It also allows individual developers to keep
revision control over their own modifications before they are ready
to submit them, or if they are temporarily without net access.
- We can provide read-only access over HTTP using the existing CS web server.
- It is possible and easy to rename and remove both files and directories.
For more information about Darcs, see http://darcs.net/.
Darcs is a decentralized revision control system. See http://darcs.net/ for more information.
= How do I install Darcs? =
@@ -42,8 +22,6 @@ http://darcs.net/DarcsWiki/CategoryBinaries.
There is also source code if you want to compile it yourself. Darcs is
written in Haskell and you need GHC to compile it.
= Read-only access =
== Getting a fresh copy for read-only access ==
@@ -51,11 +29,11 @@ written in Haskell and you need GHC to compile it.
Anyone can get the latest development version of GF by running (all on one line):
```
$ darcs get --partial --set-scripts-executable http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/
$ darcs get --partial --set-scripts-executable http://code.haskell.org/gf/
```
This will create a directory called ``GF`` in the current
directory. See ``GF/src/INSTALL`` for instructions on compiling. The
This will create a directory called ``gf`` in the current
directory. See ``gf/src/INSTALL`` for instructions on compiling. The
main difference compared to compiling a GF release is that you
need to run ``autoconf`` before ``./configure``.
@@ -68,7 +46,7 @@ To get all new patches from the main repo:
$ darcs pull -a
```
This can be done anywhere in your local repository, i.e. in the ``GF``
This can be done anywhere in your local repository, i.e. in the ``gf``
directory, or any of its subdirectories.
Without ``-a``, you can choose which patches you want to get.
@@ -131,53 +109,21 @@ patch directly from darcs. If so, replace ``-o mypatch.patch`` with
= Read-write access =
If you have an account on the Chalmers system and want read-write
access, you can access the repository using ssh.
You need to be a member of the ``langtech`` group to push changes to
the repository.
If darcs seems to ask for your **password multiple times** for a single
push or pull, try upgrading to recent versions of darcs and OpenSSH
(OpenSSH version 4 or newer).
Recent OpenSSH versions include a connection multiplexing feature, which
recent darcs versions support.
Note that darcs 1.0.9 has some problems with this, try downgrading
to darcs 1.0.8.
**Note: we seem to have some problems getting read-write access working smoothly on Windows.**
If you figure out how to do this, let us know. If not, you can still use read-only access,
record patches in your local repository, and send them by e-mail once in a while.
== Setting up your $PATH on the Chalmers system ==
The ``darcs`` program has to be on your ``$PATH`` on the Chalmers
system to make it possible for you to push changes to the main
repository. To fix this, log in to your Chalmers account and run:
```
mkdir -p $HOME/.vcs4
echo unsup >> $HOME/.vcs4/pathsetup
```
Note that the path setup works differently on different Chalmers machines.
The command above will setup you path on the newer machines correctly.
If you have a user account on code.haskell.org, you can get read-write access over SSH
to the GF repository.
To get an account, [http://community.haskell.org/admin/account_request.html fill out this form].
Once you have an account, ask <bringert@cs.chalmers.se> to add you to the ``gf`` project.
== Getting a fresh copy ==
Get your copy with (all on one line),
replacing ``bringert`` with your own username on the
Chalmers system:
replacing ``bringert`` with your own username on code.haskell.org:
```
$ darcs get --partial --set-scripts-executable bringert@momo.medic.chalmers.se:/users/cs/www/Research/Language-technology/darcs/GF/
$ darcs get --partial --set-scripts-executable bringert@code.haskell.org:/srv/code/gf
```
Note that **you really need to use ``momo.medic.chalmers.se``**
(or some other server with the new Linux system) since we need to
have a server with at least Darcs 1.0.4. If you use some server
with an earlier Darcs version you can mess up the repository.
The option ``--partial`` means that you do not download all of the
history for the repository. This saves space, bandwidth and CPU time,
and most people don't need the full history of all changes in the
@@ -228,116 +174,6 @@ $ darcs apply < mypatch.patch
This applies the patch to your local repository. To commit it to the
main repo, use ``darcs push``.
= Troubleshooting =
== I get the error "darcs not found" when pushing ==
If you get ``darcs not found`` when you try to push your changes, you
don't have darcs on your ``$PATH`` on the Chalmers system. See
the section above on setting up your ``$PATH`` on the Chalmers system.
== I get the error "(sftp) failed to fetch files." ==
There seems to be a problem with how darcs 1.0.4 calls sftp, which
means that normal password authentication does not work.
Try upgrading to a more recent version of darcs.
== How do I avoid typing in my password so many times? ==
=== Using ssh ControlMaster ===
Get a recent darcs and OpenSSH, see above.
Note that the ControlMaster feature does not seem to
work properly in darcs 1.0.9 under Mac OS X.
Use darcs 1.0.8 instead.
=== Using ssh-agent ===
**NOTE: the method below will not work with ``momo.medic.chalmers.se``**.
MEDIC has decided to disable public key authentication on all new machines.
This section is included just for reference in case they decide to enable
it again.
With the ssh access method, Darcs needs to log in with ssh. For some
reason it needs to do this several times for each operation. You can
avoid this by setting up public-key authentication for ssh.
Here is a guide to setting this up:
http://cfm.gs.washington.edu/security/ssh/client-pkauth/
Short summary (should on most modern Linux distros, maybe other
platforms too):
Generate a key pair:
```
$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
Enter passphrase (empty for no passphrase): ...
Enter same passphrase again: ...
```
Upload the public key to your Chalmers account (replace ``bringert`` with
your username):
```
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bringert@remote.cs.chalmers.se
```
Add the key to ssh-agent (ssh-agent then remembers your key for a
while, so that you don't have to type in the passphrase again):
```
$ ssh-add
Enter passphrase for /home/bjorn/.ssh/id_rsa: ...
```
This is the part that is most likely to fail. If ssh-add says that it
couldn't find ssh-agent, you need to follow the instructions linked to
above to start ssh-agent.
Try to use it to log in (with your own username again):
```
$ ssh bringert@remote.cs.chalmers.se
...
zsh:bringert:[~]>
```
= Technical Information =
This section contains information about how the repository is set
up. It might be useful for troubleshooting the repository setup
or creating a similiar setup for another repository.
The main repository is in
``/users/cs/www/Research/Language-technology/darcs/GF``, which is
visible to the web server. The repository and all files and
directories in it group writable, owned by the group ``langtech``, and
all directories have the setgid bit set:
```
drwxrwsr-x 10 bringert langtech 512 Nov 17 19:00 /users/cs/www/Research/Language-technology/darcs/GF
```
The repo has this in ``_darcs/prefs/defaults``:
```
apply posthook find . -user "$USER" -a ! -perm +g+w -exec chmod g+w '{}' ';'
apply run-posthook
```
The server which we push to has darcs 1.0.4, which is needed for
posthook support.
= Further information about Darcs =