Arch2darcs is a project mainly written in Haskell, based on the GPL-2.0 license.
Convert Arch (tla) branches to Darcs [Haskell] (unmaintained)
Welcome to arch2darcs, a program for converting Arch repositories to Darcs.
arch2darcs is used to convert an Arch repository to Darcs, automaticaly preserving:
arch2darcs can process entire Arch/tla branches at once.
I wrote arch2darcs because tla2darcs:
To build arch2darcs, you need:
GHC 6.2 or above http://www.haskell.org/ghc/ (if you built darcs from source, you have this already)
Cabal (only needed if you aren't using GHC 6.4 or above) http://www.haskell.org/cabal/
MissingH 0.10.6 or above http://quux.org/devel/missingh
Type "make". The binary will be in dist/build. You can install it with ./setup install.
To convert an entire Arch branch, the overall procedure is:
Example:
$ tla get [email protected]/missingh--head--0.5--base-0 missingh
*** IMPORTANT NOTE: make sure you include "--base-0" from the above command.
$ cd missingh $ darcs initialize $ arch2darcs -i Processing existing Arch situation... Looking for new patches... Processing [email protected]/missingh--head--0.5--patch-1 ... Processing [email protected]/missingh--head--0.5--patch-145 Done. $ rm -rf {arch} $ find . -name .arch-ids -exec rm -rf {} ;
With Arch, when one branches, one "tags" the source to the destination. It's common practice to cease development on one branch and then begin on the next in the Arch world. You can use arch2darcs to do this. Start by importing the oldest branch as shown above. Then follow this example, which shows moving from an 0.5 to an 0.7 branch and then following history there:
( assuming you're still in missingh/ from earlier ) $ tla sync-tree [email protected]/missingh--head--0.7--base-0
*** ONCE AGAIN, notice the presence of base-0! $ tla set-tree-version [email protected]/missingh--head--0.7 $ arch2darcs -i Processing existing Arch situation... Looking for new patches... Processing [email protected]/missingh--head--0.7--patch-1 ...
Maybe you want to make a Darcs mirror of an Arch repository. Once you have the Darcs version converted as described above, you can simply run arch2darcs periodically (without the -i). It will convert and apply all new patches in the Arch repository to Darcs. Nifty, eh?
arch2darcs is written by John Goerzen, jgoerzen at complete dot org. You can get the latest version with:
darcs get --partial http://darcs.complete.org/arch2darcs