mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
227 lines
6.8 KiB
HTML
227 lines
6.8 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="generator" CONTENT="http://txt2tags.sf.net">
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
|
<TITLE>GF Darcs repository</TITLE>
|
|
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
<P ALIGN="center"><CENTER><H1>GF Darcs repository</H1>
|
|
<FONT SIZE="4">
|
|
<I>Author: Björn Bringert <bringert@cs.chalmers.se></I><BR>
|
|
Last update: Tue May 13 20:26:34 2008
|
|
</FONT></CENTER>
|
|
|
|
<P></P>
|
|
<HR NOSHADE SIZE=1>
|
|
<P></P>
|
|
<UL>
|
|
<LI><A HREF="#toc1">What is darcs?</A>
|
|
<LI><A HREF="#toc2">How do I install Darcs?</A>
|
|
<LI><A HREF="#toc3">Read-only access</A>
|
|
<UL>
|
|
<LI><A HREF="#toc4">Getting a fresh copy for read-only access</A>
|
|
<LI><A HREF="#toc5">Updating your copy</A>
|
|
<LI><A HREF="#toc6">Recording local changes</A>
|
|
<LI><A HREF="#toc7">Submitting patches</A>
|
|
</UL>
|
|
<LI><A HREF="#toc8">Read-write access</A>
|
|
<UL>
|
|
<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="#toc13">Further information about Darcs</A>
|
|
</UL>
|
|
|
|
<P></P>
|
|
<HR NOSHADE SIZE=1>
|
|
<P></P>
|
|
<A NAME="toc1"></A>
|
|
<H1>What is darcs?</H1>
|
|
<P>
|
|
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>
|
|
<P>
|
|
There are precompiled packages for many platforms available at
|
|
<A HREF="http://darcs.net/DarcsWiki/CategoryBinaries">http://darcs.net/DarcsWiki/CategoryBinaries</A>.
|
|
</P>
|
|
<P>
|
|
There is also source code if you want to compile it yourself. Darcs is
|
|
written in Haskell and you need GHC to compile it.
|
|
</P>
|
|
<A NAME="toc3"></A>
|
|
<H1>Read-only access</H1>
|
|
<A NAME="toc4"></A>
|
|
<H2>Getting a fresh copy for read-only access</H2>
|
|
<P>
|
|
Anyone can get the latest development version of GF by running (all on one line):
|
|
</P>
|
|
<PRE>
|
|
$ 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
|
|
main difference compared to compiling a GF release is that you
|
|
need to run <CODE>autoconf</CODE> before <CODE>./configure</CODE>.
|
|
</P>
|
|
<A NAME="toc5"></A>
|
|
<H2>Updating your copy</H2>
|
|
<P>
|
|
To get all new patches from the main repo:
|
|
</P>
|
|
<PRE>
|
|
$ darcs pull -a
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
This can be done anywhere in your local repository, i.e. in the <CODE>gf</CODE>
|
|
directory, or any of its subdirectories.
|
|
</P>
|
|
<P>
|
|
Without <CODE>-a</CODE>, you can choose which patches you want to get.
|
|
</P>
|
|
<A NAME="toc6"></A>
|
|
<H2>Recording local changes</H2>
|
|
<P>
|
|
Since every copy is a repository, you can have local version control
|
|
of your changes.
|
|
</P>
|
|
<P>
|
|
If you have added files, you first need to tell your local repository to
|
|
keep them under revision control:
|
|
</P>
|
|
<PRE>
|
|
$ darcs add file1 file2 ...
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
To record changes, use:
|
|
</P>
|
|
<PRE>
|
|
$ darcs record
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
This creates a patch against the previous version and stores it in your
|
|
local repository. You can record any number of changesets before
|
|
pushing them to the main repo. In fact, you don't have to push them at
|
|
all if you want to keep the changes only in your local repo.
|
|
</P>
|
|
<P>
|
|
If you think there are too many questions about what to record, you
|
|
can use the <CODE>-a</CODE> flag to <CODE>record</CODE>. Or answer <CODE>a</CODE> to the first
|
|
question. Both of these record all the changes you have in your local
|
|
repository.
|
|
</P>
|
|
<A NAME="toc7"></A>
|
|
<H2>Submitting patches</H2>
|
|
<P>
|
|
If you are using read-only access, send your patches by email to
|
|
someone with write-access. First record your changes in your local
|
|
repository, as described above. You can send any number of recorded
|
|
patches as one patch bundle. You create the patch bundle with:
|
|
</P>
|
|
<PRE>
|
|
$ darcs send -o mypatch.patch
|
|
$ gzip mypatch.patch
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
(where <CODE>mypatch</CODE> is hopefully replaced by a slightly more
|
|
descriptive name). Since some e-mail setups change text attachments
|
|
(most likely by changing the newline characters) you need to send
|
|
the patch in some compressed format, such as GZIP, BZIP2 or ZIP.
|
|
</P>
|
|
<P>
|
|
Send it as an e-mail attachment. If you have
|
|
sendmail or something equivalent installed, it is possible to send the
|
|
patch directly from darcs. If so, replace <CODE>-o mypatch.patch</CODE> with
|
|
<CODE>--to=EMAIL</CODE> where <CODE>EMAIL</CODE> is the address to send it to.
|
|
</P>
|
|
<A NAME="toc8"></A>
|
|
<H1>Read-write access</H1>
|
|
<P>
|
|
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="http://community.haskell.org/admin/account_request.html">fill out this form</A>.
|
|
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>
|
|
<A NAME="toc9"></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 code.haskell.org:
|
|
</P>
|
|
<PRE>
|
|
$ darcs get --partial --set-scripts-executable bringert@code.haskell.org:/srv/code/gf
|
|
</PRE>
|
|
<P></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="toc10"></A>
|
|
<H2>Getting other people's changes?</H2>
|
|
<P>
|
|
Get all new patches from the main repo:
|
|
</P>
|
|
<PRE>
|
|
$ darcs pull -a
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Without <CODE>-a</CODE>, you can choose which patches you want to get.
|
|
</P>
|
|
<A NAME="toc11"></A>
|
|
<H2>Commit your changes</H2>
|
|
<P>
|
|
There are two steps to commiting a change to the main repo. First you
|
|
have to record the changes that you want to commit, then you push them
|
|
to the main repo.
|
|
</P>
|
|
<P>
|
|
For instructions on recording your changes locally,
|
|
see "Recording local changes" above.
|
|
</P>
|
|
<P>
|
|
Then you can push the patch(es) to the main repo. If you are using
|
|
ssh-access, all you need to do is:
|
|
</P>
|
|
<PRE>
|
|
$ darcs push
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
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="toc12"></A>
|
|
<H2>Apply a patch from someone else</H2>
|
|
<P>
|
|
Use:
|
|
</P>
|
|
<PRE>
|
|
$ darcs apply < mypatch.patch
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
This applies the patch to your local repository. To commit it to the
|
|
main repo, use <CODE>darcs push</CODE>.
|
|
</P>
|
|
<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>
|
|
</P>
|
|
|
|
<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
|
|
<!-- cmdline: txt2tags darcs.txt -->
|
|
</BODY></HTML>
|