基本上,我想做与那个人相同的事情 (这里)。
似乎每个人都在思考服务器端钩子(具有所有恶意潜力)。
我希望在提交之前运行客户端脚本,以便 astyle 可以按照我的老板喜欢看到的方式格式化代码。
由于我的 IDE(VS2010Pro)自动检查文件何时在磁盘上更改并选择重新加载它,所以这样做没有真正的问题。
是否有任何(干净的)方法可以使用 AnkhSVN 完成这项任务?
也许还有一种方法可以扩展 VisualStudio 来调用我的预提交脚本...
基本上,我想做与那个人相同的事情 (这里)。
似乎每个人都在思考服务器端钩子(具有所有恶意潜力)。
我希望在提交之前运行客户端脚本,以便 astyle 可以按照我的老板喜欢看到的方式格式化代码。
由于我的 IDE(VS2010Pro)自动检查文件何时在磁盘上更改并选择重新加载它,所以这样做没有真正的问题。
是否有任何(干净的)方法可以使用 AnkhSVN 完成这项任务?
也许还有一种方法可以扩展 VisualStudio 来调用我的预提交脚本...
工具->选项->源代码控制->Subversion环境
中查看Subversion选项。如果这样不起作用,请尝试打开Windows注册表到HKEY_CURRENT_USER\Software\AnkhSVN\VisualStudio\<Version>\Configuration
(其中<Version>
应为10.0),并添加一个名为EnableTortoiseSvnHooks
的字符串,数据为True
,如上述对话链接中所述。Visual Studio > 工具 > 选项
如果你能够放弃使用AnkhSVN并转向TortoiseSVN,你就可以免费获得客户端钩子支持。
你可以使用任何可执行的东西作为钩子,它们会根据钩子脚本的类型传递不同的参数。
例如,pre-commit
钩子会获得以下参数:
PATH DEPTH MESSAGEFILE CWD
元素如下:
PATH
临时文件的路径,其中包含启动操作的所有路径。每个路径在临时文件中都是单独的一行。
DEPTH
提交/更新所执行的深度。
MESSAGEFILE
包含提交日志消息的文件路径。该文件以UTF-8编码的文本格式保存。在成功执行start-commit钩子后,将读取日志消息,从而使钩子有机会对其进行修改。
CWD
运行脚本的当前工作目录。这被设置为所有受影响路径的公共根目录。
虽然TortoiseSVN没有集成到VS中,但我认为它值得一试,因为您可以将其用作其他项目的通用客户端(即您不使用VS进行的所有其他编码/脚本工作)。