[英]Export the changed files from visual svn on current commit visual svn server on windows (powershell script)
[英]svn export from post commit does not work on window?
我正在Windows环境中设置SVN服务器:每当创建标签时,提交后脚本都会导出有关该标签的一定数量的信息(例如作者,注释,依赖项...)。
我还想附加来自标记存储库的特定文件。 为此,我一直在尝试“ svn export”命令。 对于“模拟”标签,此方法工作正常,但不适用于svn客户端(乌龟)。
svn export --username foo --password bar svn://localhost/My_SVN_DB/tags/My_Tag/My_File.txt My_Export_Directory
我检查了以下内容:
现在我想知道执行后提交脚本时标记结构是否已经存在? (我以为是..?)
有任何想法吗 ?
重定向标准输出和标准错误有助于发现问题:
svn export --username foo --password bar svn://localhost/My_SVN_DB/tags/My_Tag/My_File.txt My_Export_Directory > tmp.log 2>&1
问题出在出口前的一项声明。 使用for / f循环提取数据库名称,并覆盖一个临时循环变量(DBNAME)。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Extract the DB name
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setLocal EnableDelayedExpansion
for /f "tokens=4 delims=\\" %%a in ("%REPOS%") do (set DBNAME=%%a)
echo !DBNAME!>%TMPFILE%
endlocal
REM Here is the problem
set /p DBNAME=<%TMPFILE%
通过将最后一个变量名修改为DBNAME2:
set /p DBNAME2=<%TMPFILE%
该脚本能够正常工作。
我仍然不清楚为什么会发生这种情况,因为预提交脚本中也使用了相同的技巧(用于/ f +覆盖),并且在那里正常工作。 有任何想法吗??
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.