我想配置以下内容:
我在步骤1本身就有错误。我尝试添加一个预提交钩子来检查是否设置了修订属性。我无法在提交前的钩子中做到这一点。我编写了一个pre-commit.BAT文件并使用了svn,如下所示:
“C:\ Files\Subversion\bin\svn.exe”propget "CodeReview“-t %TXN % REPOS% >属性查找"%property%”“C:\repos\hooks\requiredproperties.txt”>“空” 如果%ERRORLEVEL% EQU 0转到OK1
这就产生了错误--抱怨-t。
有人能帮我完成这三个步骤的脚本吗?
发布于 2013-04-16 21:55:09
如前所述,您必须在步骤1中使用svnlook。但是情况更糟:强烈建议不要在预提交钩子中修改事务内容(虽然不禁止),以避免不可预测的结果,但您希望在步骤2中这样做。
而且,JFYI属性(任何svn属性)都是文件或目录的属性,您尝试从transaction获得它,它永远不会成功。
发布于 2013-04-16 22:48:02
我有一个预提交钩,它可以确保在提交属性时在文件上设置属性,并且将这些属性设置为特定属性。
这将确保属性在提交文件时设置在文件上。--然而,--有几个问题:
文件属性就像文件一样被恢复。如果我在我的文件中设置了CodeReview = Done属性,那么当下一个人将更改提交到Subversion时,它将被设置为CodeReview = Done。不完全是你想要的。
没有一种简单的方法可以查询文件属性来查看哪些属性具有Done的值,哪些没有。
我谦逊地提出建议:你正走向一个充满痛苦的世界。相反,将詹金斯设置为一个持续构建服务器。每次有人在Subversion中提交更改时,Jenkins都会启动一个生成,记录被更改的内容和被谁更改的内容。然后,不将单个文件标记为被检查或未检查,而是验证Jenkins构建是在整个变更集中进行的(这实际上更有意义)。
您可以使用促进构建插件来标记某个特定的构建是否已被评审,以及它是否通过了代码评审。您还可以在每个构建中附加一个注释,说明在代码评审中发现的任何问题。
现在,请原谅我上了肥皂盒.
大多数代码评审都是毫无价值的。代码评审有三个主要方面:
太多的代码评审集中在第一个问题上,剩下很少的时间用于代码审查,甚至开发。我花了几个小时在代码评审中,开发人员调用变量CustomerServiceResponseCode而不是customerServiceResponseCode。我们甚至争论过是否应该是responseCodeCustomerService。我一生中的几个小时都不会回来做更重要的事情,比如玩“愤怒的小鸟”。
至于第2点:在编写任何代码之前,都应该在中完成。当开发人员花了5个小时的编码时间来告诉您这一切都是错误的时候,已经有点太晚了。
现在,让我们到第三点。
在审查代码之前:
开发者1:嘿,你的程序里有个bug!
开发者2:哇,是的。我忘了在插上之前把verbex装好了。孩子,这是个愚蠢的错误。
结果:一个感到无能和愚蠢的开发人员。
在对代码进行审查之后:
开发者1:我们刚刚得到一份报告,报告说程序中有一个bug!
开发者2:哇,我们在给verbex插上插件之前忘了把verbex设计好了。这是如何在代码评审中溜走的?
结果:一整组感到无能和愚蠢的开发人员。
在批准代码之前,我很少看到真正捕捉到错误的代码评审--甚至是简单的错误。这是其他人的代码,大多数开发人员都有其他的想法。他们快速地看了一眼,看到了整个逻辑看起来正确,然后为了表明他们注意到了,抱怨缩进是不正确的。
该怎么办呢?
使用自动化工具通常会捕获比手动代码检查更多的错误。自动测试可以检测代码逻辑何时会出现问题。
这并不意味着代码评审是无用的。它只允许代码评审是对代码的总体审查。例如:
if条款无法解决实现问题?不要为了代码评审而进行代码评审。不要在代码评审的实现上浪费太多时间。而且,看在上帝的份上,不要做预提交代码评审。这意味着开发人员在做任何工作之前都要等待批准。
发布于 2013-04-16 21:42:19
您不能使用svn.exe,因为它不支持-t选项。你应该用
svnlook.exehttps://stackoverflow.com/questions/16046835
复制相似问题