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

3

我想给一组任意的提交/变更打上一个标签。

  • 提交1 *标记1
  • 提交2 *标记2
  • 提交3
  • 提交4 *标记1
  • 提交5 *标记2

目标是轻松定位特定标记下的所有更改, 并将该分组直接保存在版本控制系统中,而不是像缺陷跟踪系统这样的外部系统中。

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

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

在SVN中是否有更好的解决方案?Hg或Git是否有类似的或更好的解决方案?

3个回答

2

除了提交评论和日期或标签外,Git没有特殊的元数据。

因此,你只剩下三个选择:

这两种方式对于已经推送的提交效果不好。

第三种选择是将数据关联到这些提交中,例如一个票号。参见ticgit,这是一个示例,它可以将故障跟踪工具与你的Git存储库集成


ticgit 看起来很有趣,谢谢。我喜欢使用分支存储伪更改并引用变更集的想法。 - sylvanaar

2
在Mercurial中,您需要使用标签(tag):
hg tag -r REVISIONNUMBER "MARK 1"

在你提到的这三个系统中,你都无法注释“未提交的更改”。听起来,如果你完全理解了git或mercurial中的分支选项,你可能会放弃“注释组”的想法,因为这就是分支所做的事情。
参考链接:http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

从这篇文章中提取出“注释组”的思想是一个很好的点子,值得赞赏。 - msw
你的回复听起来有点傲慢,但我假设你并不是这样想的。未提交的更改意味着能够向已标记的现有组添加新更改。分支对于我所要求的并不是一个合适的解决方案,据我所知,Mercurial或任何标签都不能满足问题的目标,除非你改变问题(而你确实这样做了)。 - sylvanaar
我向您保证,贬低并不是我的目的,但在版本控制领域,“未提交”有一个非常具体的含义,而且我仍然不清楚您的意思。暗示我改变了您的问题是荒谬的;我只是在每个项目列表项之前添加了一个空格字符,以便它成为一个项目列表。 - Ry4an Brase
我并不是字面上改变我的问题的意思 - 我的意思是比喻性地改变 - 可能与您回答中的第一条评论有关。无论如何,感谢您抽出时间来回答问题。非常感谢您的帮助。 - sylvanaar

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接