Mercurial でリポジトリをクローンする場合、最新の変更セットに基づいてターゲット フォルダを作成する方法はありますか? 例:
$ hg clone http://hg.repo.com:8000/myrepo 'myrepo-$VERSION'
フォルダには、プロジェクトのバージョンにちなんで名前を付ける必要があります (例: myrepo-1.3
.
チェンジセットハッシュを使用しても問題ない場合は、次から始めることができます
$ hg identify -i http://hg.repo.com:8000/myrepo
ヒント変更セットの ID を取得します。これを UNIX シェルで次のように clone と組み合わせることができます。
$ hg clone http://hg.repo.com:8000/myrepo \
"myrepo-$(hg -i identify http://hg.repo.com:8000/myrepo)"
より使いやすくするために、このエイリアスを作成します。
[alias]
vclone = !DEST=$(basename "$1")-$($HG identify -i "$1");
echo "destination directory: $DEST";
$HG clone "$1" "$DEST"
これでクローンhg vclone foo
を取得できます。foo-<ID>
別名では、クローン URL から適切なベース名を計算しhg clone
、明示的な宛先を指定しない場合と同じように宛先を出力するようにしました。最後に、名前にスペースを含むディレクトリを複製できるように、引数を引用するように注意しました。(あなたの名前のような文字もある場合"
、Mercurial シェル エイリアスでの引用のサポートが改善されていなければ、運が悪いことになります。)
最初に一時フォルダーにクローンを作成し、リポジトリのヒントを調べて、そのリビジョンまたは命名スキームで使用する特性を確認し、以前の (一時的な) 場所の名前を現在の名前に変更する必要があります.. .私の知る限り、バニラHgでは利用できません。