2

在 Mercurial 中克隆存储库时,有没有办法根据最新的变更集创建目标文件夹?例子:

$ hg clone http://hg.repo.com:8000/myrepo 'myrepo-$VERSION'

该文件夹应以项目的版本命名,例如myrepo-1.3.

4

2 回答 2

0

您必须首先将其克隆到某个临时文件夹中,然后检查 repo 的提示以查看其修订版或您想在命名方案中使用的任何特征,然后将以前的(临时)位置重命名为现在应该是的任何位置.. . 据我所知,它在香草汞中不可用。

于 2012-04-05T00:49:16.623 回答
0

如果您可以使用变更集哈希,那么您可以从

$ 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 别名中引用,那么你就不走运了。)

于 2012-04-13T09:35:46.610 回答