2015-10-14 146 views
1

所以我试图提交一个文件夹到已更改的存储库。我可以右键单击该文件夹并提交(通过乌龟svn)没有任何问题,它工作正常。但是,当我尝试使用svn.exe通过.bat文件进行提交(与TortoiseProc.exe相反)时,没有任何更改会提交到存储库。没有错误消息,并且在日志中什么也没有显示。我想在批处理文件中运行它的原因是我可以通过TeamCity自动执行此过程。使用龟svn的问题是,提交对话框过程中,你必须手动点击“确定”。所以我正在寻找一个解决方案,这个提交对话框弹出被绕过(如果这可能是一个选项)或通过批处理脚本提交文件夹的方式。我见过这个类似的问题,如果 发布的问题不一样,但没有一个答案似乎帮助解决或涉及这个问题(这可能是由于我缺乏理解,所以我对任何种类的解释都是开放的)。这是我正在运行的脚本:可以通过Tortoisesvn(TortoiseProc.exe)提交文件,但不能提交svn(svn.exe)

@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变量的完整路径,它仍然无法正常工作。任何帮助或指导,将不胜感激。谢谢!

+1

您是否尝试更改'-m'的值或舍弃'SOURCE'中尾随的反斜杠?调用svn后你有'echo%errorlevel%'吗?如果您提供包含'SOURCE'的驱动器盘符的完整路径,会发生什么情况? – Marged

+0

@已收集,感谢您的回复。我试图将-m的值更改为空引号,只是将“commit”改为无效。我也尝试删除源代码中的尾部反斜杠,这似乎也不起作用(都使用完整路径和WebServiceDLLs)。 Echo%errorlevel%输出一个0,并且使用包括该驱动器的完整路径给出与仅将WebServiceDLL作为路径相同的结果。 –

+0

再次感谢您花时间发表评论和帮助,但我想我在这里找到了我的答案:[link](http://www.wandisco.com/svnforum/forum/opensource-subversion-forums/scripts-contributions/8171 - 自动提交)。正是我需要的。 –

回答

0

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

我认为我的问题是我没有检查添加或删除的文件,这是我试图提交的更改。由于我在上面的问题中执行的内容没有检查,所以没有提交任何内容。这是我最终用来解决从上述链接取得的:

cd“Path \ to \ project” FOR/f“tokens = 1,* delims =!” %% a in('svn status^| find“!”')for/f“tokens = * delims =”%% x in(“%% a”)do svn del“%% x”012/FOR/f “令牌= 1,*分隔符=?” %% a in('svn status^| find“?”')do for/f“tokens = * delims =”%% x in(“%% a”)do svn add“%% x” svn commit - m“系统自动提交”