AnkhSVN客户端预提交挂钩

时间:2012-03-27 11:25:33

标签: svn code-formatting ankhsvn pre-commit-hook astyle

基本上我想和there上的家伙做同样的事情。

似乎每个人都在考虑服务器端钩子(具有所有邪恶潜力)。

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

由于我的IDE(VS2010Pro)会自动检查磁盘上的文件发生变化,并选择重新加载,因此没有任何真正的恶意。

AnkhSVN有没有(干净的)方法来实现这一目标?

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

3 个答案:

答案 0 :(得分:3)

似乎AnkhSVN正在使用TortoiseSVN的钩子脚本,因为有a conversation about it being in the nightly buildsdaily updates似乎也提到了挂钩(例如revision 10870revision 10873

尝试获取daily build并在Visual Studio中查看Tools->Options->Source Control->Subversion Environment中的subversion选项。如果这不起作用,请尝试打开W​​indows注册表到HKEY_CURRENT_USER\Software\Ankh​SVN\VisualStudio\​<Version>\Conf​iguration(其中<Version>应为10.0)并添加名为EnableTortoiseSvnHooks的字符串,其数据为True,如上所述在上面的对话链接中。

答案 1 :(得分:1)

Visual Studio&gt;工具&gt;选项

enter image description here

答案 2 :(得分:0)

如果您可以离开AnkhSVN并切换到TortoiseSVN,您将获得对客户端挂钩for free的支持。

您可以将任何可执行文件用作钩子,并根据钩子脚本的类型传递不同的参数。

pre-commit钩子例如获得以下参数:

PATH DEPTH MESSAGEFILE CWD

元素如下:

  • PATH
    包含启动操作的所有路径的临时文件的路径。每个路径都位于临时文件中的单独一行。

  • DEPTH
    提交/更新的深度。

  • MESSAGEFILE
    包含提交日志消息的文件的路径。该文件包含UTF-8编码的文本。成功执行start-commit钩子后,会回读日志消息,让钩子有机会修改它。

  • CWD
    用于运行脚本的当前工作目录。这将设置为所有受影响路径的公共根目录。

虽然TortoiseSVN没有集成到VS中,但我认为值得一看,因为你也可以将它用作其他项目的通用客户端(即你所做的所有其他编码/脚本编写的东西) VS)。