所以我有一個post-commit掛鉤觸發了我們的Jenkins服務器上的構建。一切正常,除非我嘗試通過SVN回購中的更改文件進行循環。問題是提交實際掛起,如果我註釋掉循環,更改文件被記錄在哪裏,則提交成功完成。批處理腳本通過SVN更改文件循環
我使用SVN diff命令,這似乎是我想要的,將當前修訂版本與HEAD修訂版本進行比較。它在硬編碼值的命令行上工作,但不會在我的循環中使用從SVN本身填充的%1%和%2%。
到目前爲止我的代碼:
@echo off
setlocal enabledelayedexpansion
SET REPOS=%1%
SET TXN=%2%
for /f "tokens=*" %%a in ('svnlook author -r !TXN! !REPOS!') do set AUTH_NAME=%%a
SET EMAILS="!AUTH_NAME!"@gmail.com
SET /a OLDTXN=!TXN! - 1
for /f "tokens=*" %%a in ('svn diff --summarize -r !OLDTXN!:!TXN! <repo URL>') do (
set FILES=%%a
rem python D:\csvn\data\repositories\Test\hooks\compile_file.py !FILES!
)
其中「回購網址」是SVN根回購在我硬編碼,這是罰款。 現在,例如,如果我註釋掉SET TXN線,並用硬編碼的數值,如更換:
SET TXN=518
的循環工作和我得到的是已經改變了正確的文件所需的電子郵件,因此它必須圍繞TXN如何從SVN傳遞到批處理腳本。它可能不像我想的那樣充滿。
python腳本已被註釋掉,只是接受文件作爲命令行參數並將其發送給DL。這同樣適用於上面硬編碼的TXN值。顯然,我的循環阻止了成功完成提交,但不知道我做錯了什麼。但是我非常肯定它與上面提到的原因有關的TXN變量。
我的問題的任何幫助,將不勝感激:)
編輯*改變變量從%%到!因爲我正在使用enabledelayedexpansion *