在 Mercurial 中克隆存储库时,有没有办法根据最新的变更集创建目标文件夹?例子:
$ hg clone http://hg.repo.com:8000/myrepo 'myrepo-$VERSION'
该文件夹应以项目的版本命名,例如myrepo-1.3
.
您必须首先将其克隆到某个临时文件夹中,然后检查 repo 的提示以查看其修订版或您想在命名方案中使用的任何特征,然后将以前的(临时)位置重命名为现在应该是的任何位置.. . 据我所知,它在香草汞中不可用。
如果您可以使用变更集哈希,那么您可以从
$ hg identify -i http://hg.repo.com:8000/myrepo
获取提示变更集的 ID。您可以在 Unix shell 中将它与这样的克隆结合起来:
$ 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 shell 别名中引用,那么你就不走运了。)