可以通过Tortoisesvn(TortoiseProc.exe)提交文件,但不能通过svn commit(svn.exe)

问题描述 投票:0回答:1

因此,我尝试将一个文件夹提交到对其进行更改的存储库。我可以右键单击该文件夹并提交(通过 tortoise svn),没有任何问题,它工作正常。但是,当我尝试使用 svn.exe(而不是 TortoiseProc.exe)通过 .bat 文件提交时,没有任何更改会提交到存储库。没有错误消息,日志中也没有显示任何内容。我想在批处理文件中运行它的原因是这样我可以通过 TeamCity 自动化该过程。使用 tortoise svn 的问题是提交对话框过程,你必须手动点击“确定”。因此,我正在寻找一种解决方案,可以绕过此提交对话框弹出窗口(如果这甚至可以是一个选项)或通过批处理脚本提交文件夹的方法。我见过类似的如果 没有发布相同的问题,但似乎没有一个答案可以帮助解决或与这个问题相关(这可能是由于我缺乏理解,所以 我愿意接受任何解释)。这是我正在运行的脚本:

@echo off
echo.
echo. [ SVN Committer ]
set SOURCE=WebServiceDLLs\
set SVN=C:\Program Files\TortoiseSVN\bin
echo.
echo. Committing %SOURCE% to SVN...
"%SVN%\svn.exe" commit %SOURCE% -m "Committing Web Services, CCD, CCR, QA,    ePrescription" > deploy2.log
echo. done.
echo.
echo. Operation complete.

我已尝试使用 SOURCE 变量的完整路径,但它仍然不起作用。任何帮助或指导将不胜感激。谢谢!

svn tortoisesvn teamcity
1个回答
0
投票

再次感谢您花时间发表评论和帮助,但我想我在这里找到了答案:链接。正是我所需要的。

我认为对我来说问题是我没有检查添加或删除的文件,这是我试图提交的更改。由于我在上述问题中实现的内容没有检查这一点,因此它没有提交任何内容。这就是我最终用来解决的问题,该问题取自上述链接:

cd "Path\to\project"
FOR /f "tokens=1,* delims=!" %%a in ('svn status ^| find "!"') do (
  for /f "tokens=* delims= " %%x in ("%%a") do svn del "%%x"
)
FOR /f "tokens=1,* delims=?" %%a in ('svn status ^| find "?"') do (
  for /f "tokens=* delims= " %%x in ("%%a") do svn add "%%x"
)
svn commit -m "System Automated Commit"
© www.soinside.com 2019 - 2024. All rights reserved.