GIT或SVN注释在提交或反之后附加到文件

时间:2011-11-01 00:51:04

标签: git svn version-control mercurial dvcs

我很好奇GIT(或Mercurial)或SVN是否可以在提交评论中附加您的评论。例如,如果我有一个文件ABC.cpp并执行一个Commit -m“hello world”,那么在ABC.cpp文件的末尾,它会附加提交注释吗?或相反亦然? EG:让GIT或SVN查看ABC.cpp代码末尾附近的标记值并将其附加为提交注释吗?

由于

3 个答案:

答案 0 :(得分:3)

仍然,你可以尝试在Git / Mercurial中获取,但Greg无论如何都是对的 - 今天做的不礼貌。

只是提示,而不是随时可用的解决方案

  • 如果是Git
  

您可以编写自己的过滤器,以便在文件中进行替换   提交/结帐。这些是“干净”和“涂抹”过滤器。在里面   .gitattributes文件,您可以为特定路径设置过滤器   然后设置将在文件处理之前处理文件的脚本   签出(“涂抹”,见图7-2),就在它们之前   承诺(“干净”,见图7-3)

Pro Git,“关键字扩展”部分)。

  • 如果是Mercurial,关键字扩展和精心设计的关键字,它会捕获提交消息

    [keywordmaps] ... Commitmess = {desc}

<。>在.hgrc中,它允许你在源代码中使用$ Commitmess $

答案 1 :(得分:1)

不,这是过去在CVS时代(以及之前)所做的事情,但它通常被视为今天的不良做法。主要问题是它使合并非常变得困难,因为对文件的每次更改都会自动与其他所有更改发生冲突。

答案 2 :(得分:1)

我最喜欢的一个例子就是为什么这是不好的来自CVS网站。在CVS中,如果在文件中放入“$ Log $”,它会将提交注释放在该行之后的行中。这就像把“cvs log”的输出放在你的提交中。

一些聪明人提交了提交评论“在文件中添加了$ Log $行”。因此,在提交注释的正下方是行:

Added $Log$ line in the file

在下一次提交中,$Log的两个实例都会导致重复提交注释。而且,由于其中一条评论包含“$ Log”,我们现在有四个“$ Log $”实例。

每次提交时,我们最终都会将$ Log $条目中的行数加倍。删除无关的$ Log $行没有用,因为下一次提交会将它们重新放入并再次加倍。

最后,我必须编辑存储库中的,v文件,以消除整个$ Log $混乱。

在Subversion文档中,他们对$ Log $ very clear感兴趣。