public
Description: Piston is a utility that eases vendor branch management. This repository is a complete reimplementation of Piston to provide different backends, depending on the repositories and working copies you pistonize from.
Homepage: http://piston.rubyforge.org/
Clone URL: git://github.com/francois/piston.git
francois (author)
Tue May 13 17:17:53 -0700 2008
commit  1d52246f7acabb0fdec2f555430702840146d418
tree    744b3fa8d01e231c8493bedd58a04a48fccff70c
parent  0d066f30f00db013c1dd0ac62b464156dc061b92
piston / samples / import_svn_git.rb
100644 30 lines (25 sloc) 0.652 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env ruby
#
# Import an SVN repository into a Git working copy.
require File.dirname(__FILE__) + "/common"
 
@root = @root + "tmp/svn_git"
@root.rmtree rescue nil
@root.mkpath
 
@repos = @root + "repos"
@wc = @root + "wc"
@tmp = @root + "xlsuite.tmp"
 
@wc.mkpath
File.open(@wc + "README", "wb") {|f| f.write "Hello World"}
Dir.chdir(@wc) do
  git :init
  git :add, "."
  git :commit, "-m", "initial"
end
 
repos = Piston::Svn::Repository.new("http://svn.xlsuite.org/trunk/lib")
rev = repos.at(:head)
rev.checkout_to(@tmp)
wc = Piston::Git::WorkingCopy.new(@wc + "vendor")
wc.create
wc.copy_from(rev)
wc.remember(rev.remember_values)
wc.finalize