aboutsummaryrefslogtreecommitdiff
path: root/gitmove
diff options
context:
space:
mode:
Diffstat (limited to 'gitmove')
-rwxr-xr-xgitmove31
1 files changed, 31 insertions, 0 deletions
diff --git a/gitmove b/gitmove
new file mode 100755
index 0000000..90a943d
--- /dev/null
+++ b/gitmove
@@ -0,0 +1,31 @@
+#!/usr/bin/env ruby
+#!DESCRIBE: Migrate repos to gitolite
+
+iam = "me"
+from = "git@github.com:Me/"
+to = "git@gitolite:"
+repos = %w( ... )
+
+File.open("repos.conf", ?w) do |f|
+ repos.each do |r|
+ f.puts "repo #{r}"
+ f.puts " RW+ = #{iam}"
+ end
+end
+
+File.open("repos.script", ?w) do |f|
+ f.puts "#!/bin/bash"
+ repos.each do |r|
+ f.puts "git clone --bare #{from}#{r} __repo_#{r}"
+ f.puts "cd __repo_#{r}"
+ f.puts "git push --all #{to}#{r}"
+ f.puts "git push --tags #{to}#{r}"
+ f.puts "cd .."
+ f.puts "rm -rf __repo_#{r}"
+ f.puts
+ end
+end
+
+File.chmod(0744, "repos.script")
+
+puts "Done generating; now push the contents of repos.conf to your gitolite config, then run the repos.script script."