当提交到SVN时,我可以添加一个顶级提交消息来详细说明提交的内容,但理想情况下我想要一种方法来评论各个文件以及它们内部的变化。我在以前的工作中看到了类似的东西,但这是使用CVS(我不记得是否通过家庭酿造脚本来生成骨架文件)
我看了一下变更列表,但我再次认为(虽然我愿意被证明是错误的),这给出了如下所述的那种粒度。
理想情况下,我正在寻找以下内容:
Foo.vb
- 添加了新功能栏
Bar.vb
- 删除了函数foo
- 在xyz中添加功能来执行abc +/-记录错误的修改函数
答案 0 :(得分:4)
只要完成一项特定任务,您就可以提交。无论如何,这应该会带来更好的评论。在必要的三个文件上阅读“已实施电子邮件验证”的评论告诉我比“添加功能verify_email”更多的内容。我可以在差异中看到后者。
答案 1 :(得分:2)
我会在单独的提交消息中执行此操作。 TortoiseSVN具有文件名自动完成功能,因此极大地帮助了这一点。
在提交并将文件名复制/粘贴到提交消息之前,您可以做的另一件事就是svn st。
哦,一定要强烈质疑这个价值。我知道一些OSS项目(linux?)需要这种保真度,但对于很多项目来说这只是噪音。差异可以告诉你更多,更准确地说。
您可能想要考虑的另一件事是使用Git。 Git允许您以较小的步骤在本地提交。然后,您可以单独将所有提交推送到主服务器,或者将单个提交中的所有提交消息压缩到单个提交中。这是一种简化的解释,但它可能值得一试。
答案 2 :(得分:2)
SVN和CVS之间的一个本质区别是变化是以原子方式提交的。在CVS中,每个文件都有自己的版本,但在SVN中,版本适用于整个项目,包括一起签入的所有文件。
以下是解决方案的四个想法:
答案 3 :(得分:2)
我写过一个名为MOAP
的项目它的一个功能是从你的本地差异生成一个ChangeLog条目(目前支持bazaar,cvs,svn,git和darcs)。您可以通过运行'moap changelog prepare'或'moap cl prep'来执行此操作。如果启用该选项,该条目也可以包含更改的功能。
然后,您可以更改该条目,描述您的更改。您可以删除不希望在下一次提交过程中提交的文件。
然后,您可以运行'moap changelog commit'来提交ChangeLog条目中描述的更改。它只会提交那里列出的文件,并将所有其他更改保留在本地。
希望有所帮助!
答案 4 :(得分:0)
如果在每个提交的文件中写入注释的方式有一些规则,则可以获得这种结果。之后可以通过svn触发器提取这些注释。