Commits

Taylor Venable committed 2d4c566

A little program to convert from Mercurial to Fossil

Comments (0)

Files changed (1)

Programs/hg-to-fossil.tcl

+#!/usr/bin/env tclsh
+
+### Copyright (c) 2013, Taylor Venable
+### All rights reserved.
+###
+### Redistribution and use in source and binary forms, with or without
+### modification, are permitted provided that the following conditions are met:
+###
+###     * Redistributions of source code must retain the above copyright
+###       notice, this list of conditions and the following disclaimer.
+###
+###     * Redistributions in binary form must reproduce the above copyright
+###       notice, this list of conditions and the following disclaimer in the
+###       documentation and/or other materials provided with the distribution.
+###
+### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+### AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+### ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+### INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+### CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+### ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+### POSSIBILITY OF SUCH DAMAGE.
+
+set repo(hg)  [file normalize [lindex $argv 0]]
+set repo(git) [file normalize [lindex $argv 1]]
+set repo(fsl) [file normalize [lindex $argv 2]]
+
+set fastExport [file normalize "./fast-export/hg-fast-export.sh"]
+set env(PYTHON) python2
+
+if {![file exists $fastExport]} {
+    exec git clone "git://repo.or.cz/fast-export.git"
+}
+
+file mkdir $repo(git)
+file mkdir [file dirname $repo(fsl)]
+
+cd $repo(git)
+exec git init
+exec -ignorestderr $fastExport -r $repo(hg)
+exec git fast-export --all | fossil import --git $repo(fsl)