项目属性中的TortoiseSVN客户端钩子(删除缓存文件)

时间:2016-12-14 16:01:24

标签: windows svn cmd tortoisesvn svn-hooks

我有几个php - SVN控制下的项目。我希望在客户端更新后删除已编译的php-template文件;这些文件位于./tmp/smarty/compile文件夹中。因此,使用Windows命令行我可以使用

执行此操作
del /Q path_to_my_project\tmp\smarty\compile

如果我在cmd.exe中运行此命令,则所有文件都已成功删除。

使用项目属性tsvn:postupdatehook我应该使用%REPOROOT%占位符作为项目路径。所以我的命令变为:

del /Q %REPOROOT%\tmp\smarty\compile

delcmd.exe命令,因此我需要先运行cmd.exe,然后运行所需的命令。所以最后我的钩子命令看起来像:

cmd.exe /c del /Q %REPOROOT%\tmp\smarty\compile

当我使用Win+Rreporoot更改为完整路径)运行时,它也能正常工作。

然后我将此行放入SVN属性(我应该将\斜杠替换为/,overwise SNV返回http - 存储库的路径,而不是本地路径),并尝试更新项目。 TortoiseSVN问我是否想要运行钩子:

cmd.exe /c  del /Q D:\_projects\webCakePHP\.....\tmp\smarty\compile

所以这里reporoot已成功转换为正确的工作副本路径。 一切都很好,但是当我运行这个钩子时,它成功删除了tmp\smarty\compile中的文件,但是它还删除了工作副本目录中的所有文件

问题是,我做错了什么,以及如何在更新后正确删除文件。

我尝试过某种方式引用引号,但它根本没有删除任何内容,或者说没有这样的目录。

感谢

1 个答案:

答案 0 :(得分:0)

作为我问题的替代解决方案,我在%REPOROOT%/bin文件夹中创建了pushd %~dp0..\tmp\smarty\compile del /Q * popd 文件,删除了文件:

%REPOROOT%/bin/clearCache.bat

我的钩子cmd字符串是bat

这不是我的问题的准确答案,因为它需要print (df) id count 0 1 100 1 2 200 2 3 300 #if first index is 0 print (type(df.loc[0, 'id'])) <class 'numpy.int64'> - 文件创建并且不是单行挂钩。