我很好奇GIT(或Mercurial)或SVN是否可以在提交评论中附加您的评论。例如,如果我有一个文件ABC.cpp并执行一个Commit -m“hello world”,那么在ABC.cpp文件的末尾,它会附加提交注释吗?或相反亦然? EG:让GIT或SVN查看ABC.cpp代码末尾附近的标记值并将其附加为提交注释吗?
由于
答案 0 :(得分:3)
仍然是,你可以尝试在Git / Mercurial中获取,但Greg无论如何都是对的 - 今天做的不礼貌。
只是提示,而不是随时可用的解决方案
您可以编写自己的过滤器,以便在文件中进行替换 提交/结帐。这些是“干净”和“涂抹”过滤器。在里面 .gitattributes文件,您可以为特定路径设置过滤器 然后设置将在文件处理之前处理文件的脚本 签出(“涂抹”,见图7-2),就在它们之前 承诺(“干净”,见图7-3)
(Pro Git,“关键字扩展”部分)。
如果是Mercurial,关键字扩展和精心设计的关键字,它会捕获提交消息
[keywordmaps] ... Commitmess = {desc}
答案 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感兴趣。