An open API service indexing awesome lists of open source software.

https://github.com/jgoerzen/arch2darcs

Convert Arch (tla) branches to Darcs [Haskell] (unmaintained)
https://github.com/jgoerzen/arch2darcs

Last synced: 2 months ago
JSON representation

Convert Arch (tla) branches to Darcs [Haskell] (unmaintained)

Awesome Lists containing this project

README

        

Welcome to arch2darcs, a program for converting Arch repositories to
Darcs.

FEATURES
--------

arch2darcs is used to convert an Arch repository to Darcs,
automaticaly preserving:

* All original logs
* Modification dates
* All adds, deletes, and renames that were versioned with tla
* Files in Arch.

arch2darcs can process entire Arch/tla branches at once.

I wrote arch2darcs because tla2darcs:

* Didn't handle renames properly
* Lacked good support for importing a whole branch at once
* Seemed crash-prone

PREREQUISITES
-------------

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

BUILDING
--------

Type "make". The binary will be in dist/build. You can install it
with ./setup install.

CONVERTING ENTIRE ARCH BRANCH
-----------------------------

To convert an entire Arch branch, the overall procedure is:

1. Check out base-0 from that branch
2. Initialize the working directory for darcs
3. Run arch2darcs -i
4. Delete temporary files

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 {} \;

CONVERTING BRANCH TAGS
----------------------

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
...

UPDATING EXISTING CONVERSION
----------------------------

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?

LATEST VERSION AND AUTHOR
-------------------------

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