1 | This is cl-darcs, a darcs client written in Common Lisp. I started |
---|
2 | writing it because the original client requires GHC (the Glasgow |
---|
3 | Haskell Compiler), which is not available on all platforms. |
---|
4 | |
---|
5 | cl-darcs is currently in a very early state of development. |
---|
6 | |
---|
7 | * Usage |
---|
8 | |
---|
9 | At the REPL: |
---|
10 | |
---|
11 | (asdf:oos 'asdf:load-op :cl-darcs) |
---|
12 | (darcs:get-repo "http://path/to/repo" "/local/non-existent/directory/") |
---|
13 | |
---|
14 | Or if you want to select which patches to apply: |
---|
15 | |
---|
16 | (darcs:get-repo "http://path/to/repo" "/local/repo-dir/" :query t) |
---|
17 | |
---|
18 | To pull new patches from a repo (the address from the remote repo is |
---|
19 | optional, as it defaults to where you got the tree from): |
---|
20 | |
---|
21 | (darcs:pull "/local/repo-dir/") |
---|
22 | or |
---|
23 | (darcs:pull "/local/repo-dir/" "http://path/to/repo") |
---|
24 | |
---|
25 | cl-darcs currently doesn't try to merge changes in your local tree |
---|
26 | with patches you pull; you have to do that manually if you want to |
---|
27 | edit files. For now, you need an external tool to find the local |
---|
28 | changes, e.g: |
---|
29 | |
---|
30 | diff -x _darcs -ru _darcs/pristine/ . |
---|
31 | |
---|
32 | * Configuration |
---|
33 | |
---|
34 | cl-darcs can use an HTTP proxy: |
---|
35 | |
---|
36 | (setf darcs:*http-proxy* "proxy.example.com:3128") |
---|
37 | |
---|
38 | * Known bugs and misfeatures |
---|
39 | |
---|
40 | Above all, cl-darcs is currently a read-only client. There is no |
---|
41 | support for generating diffs or committing patches. |
---|
42 | |
---|
43 | Some combinations of merger patches are not properly handled. You |
---|
44 | should be able to get a tree with a real darcs client, and then use |
---|
45 | cl-darcs for pulling new patches. |
---|
46 | |
---|
47 | Repositories can be fetched only from local files and HTTP. |
---|
48 | |
---|
49 | Tags are not faithfully reproduced. |
---|
50 | |
---|
51 | Checkpoints are not used. |
---|
52 | |
---|
53 | * Compatibility |
---|
54 | |
---|
55 | I primarily develop cl-darcs on CLISP, but try to keep it working on |
---|
56 | SBCL as well. Users of non-Unix systems probably need to change |
---|
57 | MAKE-TEMP-FILE-NAME in util.lisp. |
---|
58 | |
---|
59 | * Dependencies |
---|
60 | |
---|
61 | - split-sequence: http://www.cl-user.net/asp/libs/split-sequence |
---|
62 | - Portable AllegroServe: http://portableaserve.sourceforge.net/ |
---|
63 | - trivial-gray-streams: |
---|
64 | http://www.cl-user.net/asp/libs/trivial-gray-streams |
---|
65 | - Ironclad: http://www.cl-user.net/asp/libs/ironclad |
---|
66 | - CL-FAD: http://weitz.de/cl-fad/ |
---|
67 | - For CLISP, you need SB-SHA1: http://www.cliki.net/sb-sha1 |
---|
68 | |
---|
69 | All of these are ASDF-INSTALLable. |
---|
70 | |
---|
71 | * License |
---|
72 | |
---|
73 | cl-darcs is covered by the GPL, like the original darcs client. |
---|
74 | ifstar.lisp and inflate.lisp were borrowed from Franz Inc, and are |
---|
75 | public domain and LLGPL, respectively. |
---|
76 | |
---|
77 | * Links |
---|
78 | |
---|
79 | Project page: http://common-lisp.net/project/cl-darcs/ |
---|
80 | Mailing list: cl-darcs-devel@common-lisp.net |
---|
81 | http://common-lisp.net/cgi-bin/mailman/listinfo/cl-darcs-devel |
---|
82 | |
---|
83 | The original darcs: http://www.darcs.net/ |
---|
84 | |
---|
85 | |
---|
86 | Local variables: |
---|
87 | mode: outline |
---|
88 | End: |
---|