mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
Update darcs.html for the code.haskell.org repo.
This commit is contained in:
233
doc/darcs.html
233
doc/darcs.html
@@ -8,7 +8,7 @@
|
|||||||
<P ALIGN="center"><CENTER><H1>GF Darcs repository</H1>
|
<P ALIGN="center"><CENTER><H1>GF Darcs repository</H1>
|
||||||
<FONT SIZE="4">
|
<FONT SIZE="4">
|
||||||
<I>Author: Björn Bringert <bringert@cs.chalmers.se></I><BR>
|
<I>Author: Björn Bringert <bringert@cs.chalmers.se></I><BR>
|
||||||
Last update: Wed Oct 3 15:13:24 2007
|
Last update: Mon Feb 25 16:26:54 2008
|
||||||
</FONT></CENTER>
|
</FONT></CENTER>
|
||||||
|
|
||||||
<P></P>
|
<P></P>
|
||||||
@@ -26,54 +26,21 @@ Last update: Wed Oct 3 15:13:24 2007
|
|||||||
</UL>
|
</UL>
|
||||||
<LI><A HREF="#toc8">Read-write access</A>
|
<LI><A HREF="#toc8">Read-write access</A>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="#toc9">Setting up your $PATH on the Chalmers system</A>
|
<LI><A HREF="#toc9">Getting a fresh copy</A>
|
||||||
<LI><A HREF="#toc10">Getting a fresh copy</A>
|
<LI><A HREF="#toc10">Getting other people's changes?</A>
|
||||||
<LI><A HREF="#toc11">Getting other people's changes?</A>
|
<LI><A HREF="#toc11">Commit your changes</A>
|
||||||
<LI><A HREF="#toc12">Commit your changes</A>
|
<LI><A HREF="#toc12">Apply a patch from someone else</A>
|
||||||
<LI><A HREF="#toc13">Apply a patch from someone else</A>
|
|
||||||
</UL>
|
</UL>
|
||||||
<LI><A HREF="#toc14">Troubleshooting</A>
|
<LI><A HREF="#toc13">Further information about Darcs</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>
|
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P></P>
|
<P></P>
|
||||||
<HR NOSHADE SIZE=1>
|
<HR NOSHADE SIZE=1>
|
||||||
<P></P>
|
<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>
|
<A NAME="toc1"></A>
|
||||||
<H1>What is darcs?</H1>
|
<H1>What is darcs?</H1>
|
||||||
<P>
|
<P>
|
||||||
Darcs is a decentralized revision control system. These are some of
|
Darcs is a decentralized revision control system. See <A HREF="http://darcs.net/">http://darcs.net/</A> for more information.
|
||||||
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>.
|
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc2"></A>
|
<A NAME="toc2"></A>
|
||||||
<H1>How do I install Darcs?</H1>
|
<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):
|
Anyone can get the latest development version of GF by running (all on one line):
|
||||||
</P>
|
</P>
|
||||||
<PRE>
|
<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>
|
</PRE>
|
||||||
<P></P>
|
<P></P>
|
||||||
<P>
|
<P>
|
||||||
This will create a directory called <CODE>GF</CODE> in the current
|
This will create a directory called <CODE>gf</CODE> in the current
|
||||||
directory. See <CODE>GF/src/INSTALL</CODE> for instructions on compiling. The
|
directory. See <CODE>gf/src/INSTALL</CODE> for instructions on compiling. The
|
||||||
main difference compared to compiling a GF release is that you
|
main difference compared to compiling a GF release is that you
|
||||||
need to run <CODE>autoconf</CODE> before <CODE>./configure</CODE>.
|
need to run <CODE>autoconf</CODE> before <CODE>./configure</CODE>.
|
||||||
</P>
|
</P>
|
||||||
@@ -112,7 +79,7 @@ To get all new patches from the main repo:
|
|||||||
</PRE>
|
</PRE>
|
||||||
<P></P>
|
<P></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.
|
directory, or any of its subdirectories.
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
@@ -179,65 +146,28 @@ patch directly from darcs. If so, replace <CODE>-o mypatch.patch</CODE> with
|
|||||||
<A NAME="toc8"></A>
|
<A NAME="toc8"></A>
|
||||||
<H1>Read-write access</H1>
|
<H1>Read-write access</H1>
|
||||||
<P>
|
<P>
|
||||||
If you have an account on the Chalmers system and want read-write
|
If you have a user account on code.haskell.org, you can get read-write access over SSH
|
||||||
access, you can access the repository using ssh.
|
to the GF repository.
|
||||||
You need to be a member of the <CODE>langtech</CODE> group to push changes to
|
To get an account, <A HREF="form">http://community.haskell.org/admin/account_request.html fill out this</A>.
|
||||||
the repository.
|
Once you have an account, ask <<A HREF="mailto:bringert@cs.chalmers.se">bringert@cs.chalmers.se</A>> to add you to the <CODE>gf</CODE> project.
|
||||||
</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.
|
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc9"></A>
|
<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 >> $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>
|
<H2>Getting a fresh copy</H2>
|
||||||
<P>
|
<P>
|
||||||
Get your copy with (all on one line),
|
Get your copy with (all on one line),
|
||||||
replacing <CODE>bringert</CODE> with your own username on the
|
replacing <CODE>bringert</CODE> with your own username on code.haskell.org:
|
||||||
Chalmers system:
|
|
||||||
</P>
|
</P>
|
||||||
<PRE>
|
<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>
|
</PRE>
|
||||||
<P></P>
|
<P></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
|
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,
|
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
|
and most people don't need the full history of all changes in the
|
||||||
past.
|
past.
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc11"></A>
|
<A NAME="toc10"></A>
|
||||||
<H2>Getting other people's changes?</H2>
|
<H2>Getting other people's changes?</H2>
|
||||||
<P>
|
<P>
|
||||||
Get all new patches from the main repo:
|
Get all new patches from the main repo:
|
||||||
@@ -249,7 +179,7 @@ Get all new patches from the main repo:
|
|||||||
<P>
|
<P>
|
||||||
Without <CODE>-a</CODE>, you can choose which patches you want to get.
|
Without <CODE>-a</CODE>, you can choose which patches you want to get.
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc12"></A>
|
<A NAME="toc11"></A>
|
||||||
<H2>Commit your changes</H2>
|
<H2>Commit your changes</H2>
|
||||||
<P>
|
<P>
|
||||||
There are two steps to commiting a change to the main repo. First you
|
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
|
If you use the <CODE>-a</CODE> flag to push, all local patches which are not in
|
||||||
the main repo are pushed.
|
the main repo are pushed.
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc13"></A>
|
<A NAME="toc12"></A>
|
||||||
<H2>Apply a patch from someone else</H2>
|
<H2>Apply a patch from someone else</H2>
|
||||||
<P>
|
<P>
|
||||||
Use:
|
Use:
|
||||||
@@ -285,128 +215,7 @@ Use:
|
|||||||
This applies the patch to your local repository. To commit it to the
|
This applies the patch to your local repository. To commit it to the
|
||||||
main repo, use <CODE>darcs push</CODE>.
|
main repo, use <CODE>darcs push</CODE>.
|
||||||
</P>
|
</P>
|
||||||
<A NAME="toc14"></A>
|
<A NAME="toc13"></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:[~]>
|
|
||||||
</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>
|
|
||||||
<H1>Further information about Darcs</H1>
|
<H1>Further information about Darcs</H1>
|
||||||
<P>
|
<P>
|
||||||
For more info about what you can do with darcs, see <A HREF="http://darcs.net/manual/">http://darcs.net/manual/</A>
|
For more info about what you can do with darcs, see <A HREF="http://darcs.net/manual/">http://darcs.net/manual/</A>
|
||||||
|
|||||||
186
doc/darcs.txt
186
doc/darcs.txt
@@ -10,29 +10,9 @@ Last update: %%date(%c)
|
|||||||
%!options(html): --toc
|
%!options(html): --toc
|
||||||
%!encoding:utf-8
|
%!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? =
|
= What is darcs? =
|
||||||
|
|
||||||
Darcs is a decentralized revision control system. These are some of
|
Darcs is a decentralized revision control system. See http://darcs.net/ for more information.
|
||||||
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/.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
= How do I install Darcs? =
|
= 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
|
There is also source code if you want to compile it yourself. Darcs is
|
||||||
written in Haskell and you need GHC to compile it.
|
written in Haskell and you need GHC to compile it.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
= Read-only access =
|
= Read-only access =
|
||||||
|
|
||||||
== Getting a fresh copy for 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):
|
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
|
This will create a directory called ``gf`` in the current
|
||||||
directory. See ``GF/src/INSTALL`` for instructions on compiling. The
|
directory. See ``gf/src/INSTALL`` for instructions on compiling. The
|
||||||
main difference compared to compiling a GF release is that you
|
main difference compared to compiling a GF release is that you
|
||||||
need to run ``autoconf`` before ``./configure``.
|
need to run ``autoconf`` before ``./configure``.
|
||||||
|
|
||||||
@@ -68,7 +46,7 @@ To get all new patches from the main repo:
|
|||||||
$ darcs pull -a
|
$ 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.
|
directory, or any of its subdirectories.
|
||||||
|
|
||||||
Without ``-a``, you can choose which patches you want to get.
|
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 =
|
= Read-write access =
|
||||||
|
|
||||||
If you have an account on the Chalmers system and want read-write
|
If you have a user account on code.haskell.org, you can get read-write access over SSH
|
||||||
access, you can access the repository using ssh.
|
to the GF repository.
|
||||||
You need to be a member of the ``langtech`` group to push changes to
|
To get an account, [http://community.haskell.org/admin/account_request.html fill out this form].
|
||||||
the repository.
|
Once you have an account, ask <bringert@cs.chalmers.se> to add you to the ``gf`` project.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
== Getting a fresh copy ==
|
== Getting a fresh copy ==
|
||||||
|
|
||||||
Get your copy with (all on one line),
|
Get your copy with (all on one line),
|
||||||
replacing ``bringert`` with your own username on the
|
replacing ``bringert`` with your own username on code.haskell.org:
|
||||||
Chalmers system:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ 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
|
The option ``--partial`` means that you do not download all of the
|
||||||
history for the repository. This saves space, bandwidth and CPU time,
|
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
|
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
|
This applies the patch to your local repository. To commit it to the
|
||||||
main repo, use ``darcs push``.
|
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 =
|
= Further information about Darcs =
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user