How to migrate from darcs to Mercurial or git

Posted in haskell, mercurial, open source
8 comments on “How to migrate from darcs to Mercurial or git
  1. Malcolm Wallace says:

    There have been other darcs-to-git converters for a long time.
    What you don’t say, but which is hinted at ever so subtly, is that, at long last, darcs-fastconvert can also translate repos the other way. Hurrah! Now I can get stuff out of git and into darcs, something I have been wanting for ages. So thanks for the pointer…

  2. Johan Tibell says:

    Just tried to convert the network darcs repo. Unfortunately, that failed with this error message:

    fatal: mark :44 not declared

    Perhaps the darcs repo is borked somehow.

  3. Eric Kow says:

    Yep, I certainly don’t want anybody to feel locked into using Darcs, technically or culturally. The ideal is that if you use Darcs, use it because you want to, not because you have to.

    Whether you use tailor, darcs-fastconvert or some other mechanism, we hope you find it actually quite easy to transition from one to other.

    As Malcolm points out, it also goes both ways, so you could use this to try Darcs out if you’re curious about it. (We use darcs-fastconvert for benchmarking against other DVCS).

    See also which proposes adding marksfile support to darcs-fastconvert. This would allow for incremental 2-way bridges.

    @Johan, that may be one for our BTS

  4. Petr Rockai says:


    Johan — your bug is fixed now. It’s just that tags have been wrongly counted in as marked (which they originally were, until I realised that’s not allowed by the stream format). I have tried to convert the network repo and didn’t run into any other issues.


    PS: darcs-fastconvert 0.1.1

  5. David Hess says:

    Thanks for the great post! Trying to follow your directions with “cabal install darcs-fastconvert” but get the following error when attempting to install atto-parsec dependency:

    [3 of 6] Compiling Data.Attoparsec.Internal ( Data/Attoparsec/Internal.hs, dist/build/Data/Attoparsec/Internal.o )

    `*>’ is not a (visible) method of class `Applicative’

    `<*' is not a (visible) method of class `Applicative'

    Any suggestions on how to handle this? This is on a Snow Leopard Mac with ghc-6.10.4 via mac ports and hs-cabal package.


  6. David Hess says:

    Turns out darcs-fastconvert needs a more recent version of GHC. I removed the mac ports version and downloaded the latest installer from – everything installed fine.

  7. Robin says:

    Explicitly enabling the ‘convert’ Mercurial extension was also required for me. I simply added “convert =” to the “[extensions]” section of my ~/.hgrc and everything worked.

    Thanks for this great post, Bryan.

  8. Rana says:

    I am new to programming, I am not able to unstrdeand the flow and know only to create one by using IB.Can you please help me to create such a custom cell which has a label and editable content that can later be saved to a database by clicking on the navigationrightbutton at the top. Also i need to scroll the view to the height of the keyboard only if the editable cell selected does not come in view. i tried doing this using the cgrect and change the frame of the table view but it is buggy and does not give desired results.Any help would be appreciated.Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *