ローカルで作成していたリポジトリをリモートサーバーに設置する方法

個人でローカルのMercurialを使って開発していたけど、リモートサーバーに置きたくなった場合の作業です。

基本的には、ローカルのリポジトリファイル一式をリモートサーバーに持って行ってhg cloneするだけでOKです。
とりあえず最終状態をコミットしておきます。

$ cd test_local
$ hg commit -m "move to remote"
$ tar cvzf test_local.tar.gz ./test_local

で、test_local.tar.gzをリモートサーバーに転送します。

リモートサーバーでは、適当に/home以下にでも配置して展開します。今回はApacheを動かしているwwwユーザのhomeディレクトリで展開します。

$ cd /home/www
$ tar xvzf test_local.tar.gz
$ chmod www:www -R ./test_local

他のリポジトリが置いてある場所と同じ場所(今回は/var/lib/hg)に移動します。

$ cd /var/lib/hg
$ mkdir test_local
$ cd test_local
$ hg clone /home/www/test_local .

.hg/hgrcは新しいパスに上書きされます。ここからはpushしないので、消してしまっても大丈夫だと思います。

で、hgweb.configのpathsを追加します。

[paths]
test_local = /var/lib/hg/test_local

サーバ側はこれだけです。

ローカル側は、hg pullにソースパスを指定すればそこから差分を取得できます。

が、面倒なので.hg/hgrcを編集して、hg pullコマンドだけでpullできるようにします。

[paths]
default = https://user1:password@repository.sample.com/hg/test_local

ユーザ名とパスワードもURLに含めることによって認証の手間も解決できます。


タグ:

新しく会社作りました!

コメントをどうぞ