我想开始在Mercurial中使用标签。我计划有一个“稳定”标签,该标签始终指向最新的修订版。
据我了解,我可以通过hg tag stable
标记当前的变更集。
移动标签的正确方法是什么? 当我尝试再次运行hg tag stable
时,它告诉我:
如果我强制执行,则会得到this bug,它没有任何解析或注释。即,它复制了旧标签。我什至不知道为什么标签首先需要在其中多次出现;为什么?我只想更新它以指向单个变更集。
最佳答案
我没有看到这样的标签移动操作,但是它实际上是在复制某些内容并删除原始内容,因此:
hg tag --remove stable
hg tag -r newrevisionhash stable
或在标签后加上某种后缀,例如版本号。它还可以让您跟踪您的发行。
意见1:我一直认为Mercurial只是为了保存历史,而在git中,您可以更改某些内容,而在Mercurial中,您必须改写它。
意见2:标记稳定版本的另一种选择是将它们保留在一个分支中。我在哪里工作
default
仅保存稳定的代码。所有其他工作都在隔离的分支中完成。肮脏的单线更新标签:
current=`hg log -l1 --template '{node}'`; hg tag --remove stable; hg tag -r $current stable
似乎可以将这种暴行甚至添加为
.hgrc
中的Mercurial别名:[alias]
movetag=!(current=`hg log -l1 --template '{node}'`; $HG tag --remove stable; $HG tag -r $current stable)
我捕获了当前tip的值,因为标签删除/添加本身就是提交,因此它们“移动” tip(看不到标记
tip
的任何错误-仅出于精度考虑)。当然,有可能使它更漂亮,但是那些对我有用。关于mercurial - 如何移动标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18340078/