3

在提交到 SVN 时,我可以添加一个顶级提交消息来详细说明正在提交的内容,但理想情况下,我希望有一种方法可以评论各个文件以及它们中发生的变化。我在以前的工作中看到过类似的东西,但这是使用 CVS(我不记得这是否是通过自制脚本生成骨架文件来实现的)

我已经查看了变更列表,但我不认为(尽管我愿意被证明是错误的)这给出了如下所述的粒度。

理想情况下,我正在寻找以下内容:

Foo.vb

  • 新增功能栏

酒吧.vb

  • 删除函数 foo
  • 在 xyz 中添加功能以执行 abc +/- 修改功能以记录错误
4

5 回答 5

4

每当您完成一项特定任务时,您就可以提交。无论如何,这应该会带来更好的评论。对三个必要文件的“实施的电子邮件验证”的评论比“添加的功能 verify_email”告诉我更多。我可以在差异中看到后者。

于 2008-09-19T14:58:58.233 回答
2

我会在单个提交消息中执行此操作。TortoiseSVN具有文件名自动补全功能,因此对此有很大帮助。

您可以做的另一件事是在提交之前 svn st 并将文件名复制/粘贴到您的提交消息中。

哦,一定要强烈质疑这个的价值。我知道一些 OSS 项目(linux?)需要这种保真度,但对于许多项目来说,这只是噪音。Diff 可以告诉你的远不止这些,而且更准确。

您可能要考虑的另一件事是使用Git。Git 允许您以较小的步骤在本地提交。然后,您将所有提交单独推送到主服务器,或者将所有提交消息压缩到单个提交中。这是一种简化的解释,但可能值得一试。

于 2008-09-19T14:58:34.180 回答
2

SVN 和 CVS 之间的本质区别之一是更改是原子提交的。在 CVS 中,每个文件都有自己的版本,但在 SVN 中,版本是针对整个项目的,包括一起签入的所有文件。

以下是解决方案的四个想法:

  1. 使用自己的日志消息分别签入每个程序。这可能意味着,如果您签入五个文件,您将“用完”五个版本,其中四个可能会导致构建损坏。
  2. 在单独的路径(即您自己的私有分支)上进行开发,如上所述,然后在战略时刻将您的分支合并到主干。
  3. 将所有内容一起签入,并将各个记录作为注释保留在程序标题中。这可能意味着(一点)额外的工作,但无论如何您都必须编写单独的登录消息。
  4. 对所有文件进行一次签入,但有一个很好的完整日志消息,详细说明每个文件的每个部分。
于 2008-09-19T15:05:23.960 回答
2

我写了一个项目来做这种叫做MOAP的事情

它的功能之一是从本地 diff 生成 ChangeLog 条目(目前支持 bazaar、cvs、svn、git 和 darcs)。您可以通过运行“moap changelog prepare”或“moap cl prep”来执行此操作,如果您启用该选项,该条目也可以包含更改的功能。

然后你去改变那个条目,描述你的改变。作为下一次提交的一部分,您可以删除不想提交的文件。

然后,您可以运行“moap changelog commit”来提交 ChangeLog 条目中描述的更改。它只会提交那里列出的文件,并将所有其他更改保留在本地。

希望有帮助!

于 2008-09-20T07:48:33.440 回答
0

如果对在每个提交的文件中写入注释的方式有一些规则,则可以获得这种结果。之后可以通过 svn 触发器提取这些注释。

于 2008-09-19T15:02:22.703 回答