我想用标签标记任意一组提交/变更集。
目标是轻松找到特定标记的所有更改,并将该分组直接保存在VCS中,而不是像bug跟踪系统这样的外部系统。
标记的位置和顺序必须是任意的,并且应该能够使用已提交/未提交和已推送/未按下的更改。
在SVN中,我知道的最好方法是编辑提交注释并添加一些您可以搜索的特殊文本,例如: “**马克1”。或者只是进行虚假编辑并提交它并使用其提交注释列出所有包含的修订。
SVN有更好的解决方案吗?是否有相同或更好的Hg或Git解决方案?
答案 0 :(得分:2)
除了提交注释和日期或标记之外,Git没有特殊的元数据。
所以你有三个选择:
这两个选择对于已经推送的提交不会很好。
第三种选择是关联数据与那些提交,如票证。请参阅 ticgit ,例如将集成的故障单跟踪添加到您的git仓库。
答案 1 :(得分:2)
在mercurial中你会使用一个标签:
hg tag -r REVISIONNUMBER "MARK 1"
在你提到的所有三个系统中,你都无法注释“未提交的......更改”。
听起来如果你完全理解git或mercurial中的分支选项,你可能会放弃你的“注释组”的概念,这就是分支的作用。
http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/
答案 2 :(得分:1)
对于SVN,您可以使用“SVN属性”或提交日志消息。 Check out this answer to a similar problem和feature request thread。 如果您使用修订属性,要查找具有特定值的修订,您需要遍历所有修订,在您的情况下可能是性能问题 如果使用提交日志,则可以使用svn log并解析输出。