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

发布于 2024-09-02 20:34:20 字数 415 浏览 4 评论 0原文

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

  • Commit 1 *Mark 1
  • Commit 2 *Mark 2
  • Commit 3
  • Commit 4 *Mark 1
  • Commit 5 *Mark 2

目标是轻松定位特定标记的所有更改,并将该分组直接保留在 VCS 中,而不是一些外部系统,例如错误跟踪系统。

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

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

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

I would like to mark an arbitrary group of commits/changesets with a label.

  • Commit 1 *Mark 1
  • Commit 2 *Mark 2
  • Commit 3
  • Commit 4 *Mark 1
  • Commit 5 *Mark 2

The goal is to easily locate all the changes for a specific mark, and to have that grouping persisted in the VCS directly, as opposed to some outside system like a bug tracking system.

The location and ordering of the marks needs to be arbitrary, and should be able to work with both committed/uncommitted and pushed/unpushed changes.

In SVN the best way I know is to just edit the commit notes and add some sort of special text that you can search for e.g. "**Mark 1". Or just to make a fake edit and commit it and use its commit note to list all the included revisions.

Is there a better solution for SVN? Are there equivalent or better solutions for Hg or Git?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

御守 2024-09-09 20:34:21

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

因此,您有三个选择:

这两个选择不适用于已推送的提交。

第三种选择是将数据与这些提交关联起来,就像票证一样。请参阅ticgit,了解集成的票证错误跟踪示例 到你的 git 仓库。

There is no special metadata with Git, beside the commit comment and date, or the tag.

So you are left with three choices:

Those two choices won't work well with commits already pushed.

The third choice is associate data to those commits, like a ticket. See ticgit for example of ticket bug tracking integrated to your git repo.

鼻尖触碰 2024-09-09 20:34:21

在 Mercurial 中,您将使用标签:

hg tag -r REVISIONNUMBER "MARK 1"

在您提到的所有三个系统中,您将无法注释“未提交的……更改”。

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

http://stevelosh.com/blog/2009 /08/mercurial 分支指南/

In mercurial you'd use a tag:

hg tag -r REVISIONNUMBER "MARK 1"

In all three systems you mention you're not going to be able to annotate "uncommitted ... changes".

It sounds like if you fully understood the branching options in either git or mercurial you'd probably abandon your notion of "groups of annotations", it's what branches do.

http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

故事↓在人 2024-09-09 20:34:21

对于 SVN,您可以使用“SVN 属性”或提交日志消息。 查看类似问题的答案,以及功能请求线程
如果您使用修订版属性,要查找具有特定值的修订版,您需要遍历所有修订版,这在您的情况下可能是性能问题
如果您使用提交日志,则可以使用 svn log 并解析输出。

参考:svn book 属性部分

For SVN you can use "SVN Properties" or the commit log messages. Check out this answer to a similar problem, and the feature request thread.
If you use revision properties, to find the revisions with a specific value, you need to iterate through all the revisions, which in your case may be an issue regarding performance
If you use the commit logs, you can use svn log and parse the output.

Ref: svn book Properties section

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文