我收到了许多客户的请求,要求提供完整的文件列表以及每个文件的功能(包括业务逻辑的简短描述)。这构成了他们需要的发行说明的一部分。
我们开发ASP.NET网站并使用 VisualSVN Server 来管理Subversion以及 TortoiseSVN 作为客户端。我已经配置了一个预提交挂钩,强制开发人员在尝试提交时添加文件更改原因的描述。但是,这特定于文件的修订。
我需要做的是存储文件内容的描述,第一次将文件添加到SVN时需要添加。我无法通过TortoiseSVN找到任何这样的领域。
如果我不能在Subversion中执行此操作,则意味着使用电子表格!
答案 0 :(得分:3)
您可以将自己的自定义SVN属性添加到每个文件中:
svn propset filedescription'这个文件描述了Foo'src / Foo.cs的功能
然后,您可以编写一个工具,为每个文件读取此属性并为您构建文档,使用:
svn propget filedescription src / Foo.cs
在TortoiseSVN中:右键点击结帐->
TortoiseSVN ->
属性中的文件。
然后,新... ->
高级,并在添加属性窗口中添加自定义属性:< / p>
结果:
希望这有帮助。
答案 1 :(得分:1)
有没有办法自动将自定义属性添加到每个文件?我不想依赖人们记住这样做。
是,不......
您可以在个人Subversion配置中创建自动属性。这将在该用户添加时自动创建特定文件的属性。但是,这是不可执行的。
我的pre-commit hook可以强制执行特定媒体资源的用户。
[property All files must have a site:description property on them]
match = .*
property = site:description
value = .+
type = regex
这会阻止某人提交没有设置属性site:description
的文件。
你使用这个钩子, 和 让用户知道他们如何setup auto-properties in their Subversion configuration。预提交挂钩将作为温和的提醒,开发人员需要在他们的Subversion配置中设置自动属性设置。
(顺便说一下,我的钩子也可以验证是否存在提交描述,甚至可以验证描述的格式。)
我已经配置了一个预提交挂钩,强制开发人员在尝试提交时添加文件更改原因的描述。
您是否鼓励开发人员逐个文件提交?
Subversion使用更改集。例如,我可能会通过更改六个文件来添加新功能。这应该在一次提交中提交。并且,提交消息适用于所有这6个文件。
提交消息可以是多行,并且许多开发人员都是这样做的,因为他们想要描述对每个文件所做的更改。没关系。我坚持的是更改的一般原因,并且通常与我们的问题跟踪系统中的特定问题ID相关。我想看看“BUG-1233:密码现在存储为编码字符串,不再是明文”。 23个文件可能已被更改,两个文件被删除,并添加了四个新文件,但所有这些更改都是针对这一个修复,这就是我想要看到的。开发人员可以详细查看29个文件更改中的每一个,并使提交消息长达60多行。我只想查看与特定功能或错误相关的更改原因。
这样,我可以使用提交消息来查看我们的代码中解决了哪些问题,如果在测试过程中出现问题,我可以退出更改。
有没有办法自动将自定义属性添加到每个文件?我不想依赖人们记住这样做。
您强制开发人员描述每个文件的用途,然后想给他们一个自动生成默认描述的方法吗?您知道开发人员只会使用默认描述并且永远不会更改它吗?正确?
TortoiseSVN中有一种方法可以创建客户端钩子。我从来没有这样做过,但是用户可能会创建一个客户端钩子来打开一个对话框,这样他们就可以输入文件的描述。
这只适用于Tortoise,仅适用于该特定机器。但是,您可以将它与我的预提交钩子结合使用,并向开发人员展示如何创建Tortoise客户端钩子(在服务器的预提交钩子之前执行)。这样,他们的TortoiseSVN钩子将帮助他们填写描述,我的服务器预提交钩子将确保他们不会。