gitosisからgitoliteに移行(Ubuntu)
参考:
http://gitolite.com/gitolite/gsmigr.html
サーバをupgradeしたついでにgitosisは古いらしく無くなってしまったのでgitoliteに移行.
aptitudeで入れようとしたらバージョンが古いみたいなのでgitから入れる.
$ git clone http://github.com/sitaramc/gitolite.git $ mkdir $HOME/bin $ gitolite/install -ln # デフォルトだと$HOME/binに入る.適当にパスを通すかなんかする
gitolite用のgitユーザの追加(別にgitじゃなくても良い)
$ sudo useradd -m -U -r -s /bin/bash -d /srv/git git
gitアカウントでgitoliteの初期設定
$ sudo su - git $ gitolite setup -pk aaa.pub # aaa.pub がadminユーザの公開鍵 $ exit
あとはgitosisなんかと同じようにgitolite-admin.gitで管理
$ git clone git@host:gitolite-admin.git
gitosisからリポジトリを移行する場合にはgitosisアカウントのホームにあるrepositoriesディレクトリをgitアカウントのホームディレクトリにコピーする.
ユーザやグループの変更を忘れずにする.
$ sudo cp -a /srv/gitosis/repositories /srv/git $ sudo chown -R git.git /srv/git/repositories
これであとはgitolite-admin.gitのコンフィグを設定したりkeyを登録し直せばok.
コンフィグ移行ツールとしてgitolite.gitの中に./convert-gitosis-confってのがある.
@ローカル環境
# gitosis-admin.gitをcloneしたディレクトリ $ git clone http://github.com/sitaramc/gitolite.git $ git clone git@sakura:gitolite-admin.git $ gitolite/convert-gitosis-conf < gitosis-admin/gitosis.conf >> gitolite-admin/conf/gitolite.conf $ cp -a gitosis-admin/keydir gitolite-admin $ cd gitolite-admin $ git add conf/gitolite.conf keydir $ git commit -m "migrating from gitosis" $ git push origin master
これで移行できるはず.keydirをコピーするときgitosisとgitoliteでの自分の公開鍵の名前が違うと重複してしまうので注意.
あとはいままでのローカルのリポジトリのremoteを適当に修正する.
今回の場合ユーザ名がgitosisからgitに変更になっているので,
$ git remote set-url origin git@host:xxx.git
とかすればok.