Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SVN、Hg或Git中标记一组更改/更改集_Svn_Git_Version Control_Mercurial - Fatal编程技术网

如何在SVN、Hg或Git中标记一组更改/更改集

如何在SVN、Hg或Git中标记一组更改/更改集,svn,git,version-control,mercurial,Svn,Git,Version Control,Mercurial,我想用标签标记任意一组提交/变更集 提交1*标记1 提交2*标记2 承诺3 提交4*标记1 提交5*2分 我们的目标是轻松定位特定标记的所有更改,并将该分组直接保留在VCS中,而不是像bug跟踪系统这样的外部系统 标记的位置和顺序需要是任意的,并且应该能够处理提交/未提交和推送/未推送的更改 在SVN中,我知道的最好的方法就是编辑提交注释并添加某种特殊文本,您可以搜索这些文本,例如“**标记1”。或者只是进行一次假编辑并提交,然后使用提交注释列出所有包含的修订 SVN有更好的解决方案吗?Hg

我想用标签标记任意一组提交/变更集

  • 提交1*标记1
  • 提交2*标记2
  • 承诺3
  • 提交4*标记1
  • 提交5*2分
我们的目标是轻松定位特定标记的所有更改,并将该分组直接保留在VCS中,而不是像bug跟踪系统这样的外部系统

标记的位置和顺序需要是任意的,并且应该能够处理提交/未提交和推送/未推送的更改

在SVN中,我知道的最好的方法就是编辑提交注释并添加某种特殊文本,您可以搜索这些文本,例如“**标记1”。或者只是进行一次假编辑并提交,然后使用提交注释列出所有包含的修订

SVN有更好的解决方案吗?Hg或Git是否有同等或更好的解决方案?

对于SVN,您可以使用“SVN属性”或提交日志消息,还有。 如果使用修订属性来查找具有特定值的修订,则需要迭代所有修订,在您的情况下,这可能是性能方面的问题 如果使用提交日志,则可以使用svn日志并解析输出


除了提交注释和日期或标记之外,Git没有特殊的元数据

因此,您只有三个选择:

  • 为提交消息添加注释约定命名的步骤
  • 更新旧的提交消息并清理历史记录
这两个选择对于已经推送的提交不起作用


第三种选择是将数据与这些提交相关联,如票据。参见集成到git回购中的票证错误跟踪示例。

在mercurial中,您可以使用标签:

hg tag -r REVISIONNUMBER "MARK 1"
在您提到的所有三个系统中,您将无法注释“未提交的……更改”

听起来,如果您完全理解git或mercurial中的分支选项,您可能会放弃“注释组”的概念,分支就是这样做的


ticgit看起来很有趣,谢谢。我喜欢使用分支来存储引用变更集的伪变更的想法。+1用于从帖子中提取“注释组”思想。你的回答给人的印象是居高临下,但我认为不是。未提交的更改意味着能够向已标记的现有组添加新更改。分支对于我提出的问题来说是一个不合适的解决方案,而afaik mercurial或任何标签都不能满足问题的目标,除非你改变了问题(你确实改变了)。我向你保证,居高临下不是目标,但“未承诺”在版本控制领域有一个非常具体的含义,我仍然不清楚你的意思是什么。建议我改变你的问题是荒谬的;我只是在你的每一个项目清单前加了一个空格字符,所以它就是一个项目清单。我的意思不是从字面上改变我的问题——我的意思是象征性的——可能是在你回答的第一条评论的上下文中。无论如何,谢谢你花时间回答这个问题。谢谢你的帮助。