AnkhSVN客户端预提交钩子
基本上,我想做的事情和那家伙一样 似乎每个人都在考虑服务器端钩子(以及它们所有的邪恶潜力) 我希望在提交之前运行客户端脚本,这样astyle就可以按照老板喜欢的方式格式化代码 由于我的IDE(VS2010Pro)会自动检查磁盘上的文件何时发生更改,并选择我重新加载它,所以这一切并没有什么坏处 有什么(干净的)方法可以用AnkhSVN实现吗AnkhSVN客户端预提交钩子,svn,code-formatting,ankhsvn,pre-commit-hook,astyle,Svn,Code Formatting,Ankhsvn,Pre Commit Hook,Astyle,基本上,我想做的事情和那家伙一样 似乎每个人都在考虑服务器端钩子(以及它们所有的邪恶潜力) 我希望在提交之前运行客户端脚本,这样astyle就可以按照老板喜欢的方式格式化代码 由于我的IDE(VS2010Pro)会自动检查磁盘上的文件何时发生更改,并选择我重新加载它,所以这一切并没有什么坏处 有什么(干净的)方法可以用AnkhSVN实现吗 也许还有一种方法可以扩展VisualStudio来调用我的预提交脚本…看起来AnkhSVN正在使用Ortoisesvn的钩子脚本,就像现在一样。此外,似乎还提
也许还有一种方法可以扩展VisualStudio来调用我的预提交脚本…看起来AnkhSVN正在使用Ortoisesvn的钩子脚本,就像现在一样。此外,似乎还提到了挂钩(例如和)
尝试在Visual Studio中的
Tools->options->Source Control->subversion Environment
中获取并查看subversion选项。如果不起作用,请尝试打开Windows注册表以HKEY\U CURRENT\U USER\Software\AnkhSVN\VisualStudio\\形态iguation
(其中
应该是10.0)并添加一个名为EnableTortoiseSvnHooks
的字符串和数据True
,如上述对话链接所述。如果您可以从AnkhSVN转移到,您将获得对客户端钩子的支持
您可以使用任何可执行的东西作为钩子,它们会根据钩子脚本的类型传递不同的参数
例如,pre-commit
hook获取以下参数:
PATH DEPTH MESSAGEFILE CWD
其中,元素如下所示:
路径
临时文件的路径,其中包含启动操作的所有路径。每个路径在临时文件中单独一行深度
完成提交/更新的深度MESSAGEFILE
包含提交日志消息的文件的路径。该文件包含UTF-8编码的文本。成功执行启动提交挂钩后,将读回日志消息,使挂钩有机会修改它CWD
运行脚本的当前工作目录。该目录设置为所有受影响路径的公用根目录
虽然TortoiseSVN没有集成到VS中,但我认为它值得一看,因为您也可以将它用作其他项目的通用客户机(即,您不使用VS的所有其他编码/脚本编写工作)。Visual Studio>Tools>Options
刚刚添加了一个带有键盘快捷方式的“外部工具”作为临时解决方案,我还是使用了Ortoise——但我不想放弃vs集成:-)在“4.30.8.客户端钩子脚本”下的“Ortoise帮助”中描述了客户端钩子(上面的大部分答案都是引自它的)。@user1068352:是的,绝对正确。TSVN文档中的章节与此答案相关。但这是一个很好的实践,所以不仅仅是分享一个链接,而是在这里的答案中提出链接的内容。这样做,当链接目标更改或被删除时,答案仍然有效。@eckes我只是想指出,与Tortoise一起安装的帮助文件也有它。事实上,我是在看你的答案时读到的:)我会在周一试一试——如果成功的话——奖励将属于你!提前谢谢!对不起,我还没来得及早点儿呢,但是你看,赏金应该是你的:-)谢谢!该选项在Microsoft Visual Studio Community 2015版本14.0.25123.00 Update 2(在Windows 10.0上)中似乎不起作用,但我已经习惯了使用快捷方式,然后才将astyle作为一个外部工具。也许我会在接下来的日子里有太多时间的时候试一试。但另一方面——什么时候会发生:)