Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AnkhSVN客户端预提交钩子_Svn_Code Formatting_Ankhsvn_Pre Commit Hook_Astyle - Fatal编程技术网

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的钩子脚本,就像现在一样。此外,似乎还提

基本上,我想做的事情和那家伙一样

似乎每个人都在考虑服务器端钩子(以及它们所有的邪恶潜力)

我希望在提交之前运行客户端脚本,这样astyle就可以按照老板喜欢的方式格式化代码

由于我的IDE(VS2010Pro)会自动检查磁盘上的文件何时发生更改,并选择我重新加载它,所以这一切并没有什么坏处

有什么(干净的)方法可以用AnkhSVN实现吗


也许还有一种方法可以扩展VisualStudio来调用我的预提交脚本…

看起来AnkhSVN正在使用Ortoisesvn的钩子脚本,就像现在一样。此外,似乎还提到了挂钩(例如和)


尝试在Visual Studio中的
Tools->options->Source Control->subversion Environment
中获取并查看subversion选项。如果不起作用,请尝试打开Windows注册表以
HKEY\U CURRENT\U USER\Software\Ankh​SVN\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作为一个外部工具。也许我会在接下来的日子里有太多时间的时候试一试。但另一方面——什么时候会发生:)