[英]TortoiseSVN client-side hooks in project properties (delete cache files)
我在SVN控制下有幾個php
-projects。 我想在客戶端更新后刪除編譯的php-template文件; 這些文件位於./tmp/smarty/compile
文件夾中。 因此,使用Windows命令行,我可以使用
del /Q path_to_my_project\tmp\smarty\compile
如果我在cmd.exe中運行此命令,則所有文件都將被成功刪除。
使用項目屬性tsvn:postupdatehook
%REPOROOT%
我應該使用%REPOROOT%
占位符作為項目路徑。 所以我的命令變成:
del /Q %REPOROOT%\tmp\smarty\compile
del
是cmd.exe
命令,因此我需要先運行cmd.exe
,然后再運行所需的命令。 所以最后我的鈎子命令看起來像:
cmd.exe /c del /Q %REPOROOT%\tmp\smarty\compile
當我使用Win+R
(將reporoot
更改為完整路徑)運行它時,它也可以正常工作。
然后,將這一行添加到SVN屬性中(我應該將\\
斜杠替換為/
,將SNV過度返回http
-path到存儲庫,而不是本地路徑),並嘗試更新項目。 TortoiseSVN詢問我是否要執行掛接:
cmd.exe /c del /Q D:\_projects\webCakePHP\.....\tmp\smarty\compile
因此,這里reporoot
已成功轉換為正確的工作副本路徑。 一切看起來都很好,但是當我運行此鈎子時,它成功刪除了tmp\\smarty\\compile
文件,但也刪除了工作副本dir中的所有文件 。
問題是,我在做什么錯,以及如何以正確的方式刪除文件。
我試圖以某種方式加上引號,但它根本不刪除任何內容,或者說沒有這樣的目錄。
謝謝
作為我問題的替代解決方案,我在%REPOROOT%/bin
文件夾中創建了.bat
文件,該文件刪除了以下文件:
pushd %~dp0..\tmp\smarty\compile
del /Q *
popd
我的鈎子cmd字符串是%REPOROOT%/bin/clearCache.bat
。
這不是我的問題的確切答案,因為它需要創建bat
文件,並且不是單行鈎子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.