繁体   English   中英

从提交后的SVN导出在窗口上不起作用?

[英]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

我检查了以下内容:

  • 命令的语法->似乎没问题,它在调用post commit并传递测试参数时有效
  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM