個人でローカルの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に含めることによって認証の手間も解決できます。
タグ: mercurial