我有一个.bat文件,在.bat文件中,如果svn存储库(例如,编译)内部有一些修改,我想执行一个特殊的代码。在.bat中检测svn更改
9
A
回答
6
为Win 2000及更高版本,这会从SVN状态条命令的最后输出行分配给svnOut变量,然后测试,如果变量包含任何东西:
@echo off
set svnOut=
set svnDir=C:Your\path\to\svn\dir\to\check
for /F "tokens=*" %%I in ('svn status %svnDir%') do set svnOut=%%I
if "%svnOut%"=="" (
echo No changes
) else (
echo Changed files!
)
为什么有这样
线set svnOut=
你必须弄清楚你自己。 ;-)
1
你想要这是被动的?或者,按需?
有关反应性,请参阅hooks。脚本必须根据其目的命名:pre-commit.bat,post-commit.bat。这些脚本称为:[脚本] [回购路径] [版本号]
有关,点播:
- 工作拷贝
- SVN日志
- svn st
- svn diff
- 的svn proplist变种
- 库
- svnlook的作者
- svnlook的改变
- svnlook的日期
- svnlook的DIFF
- svnlook的历史
例子:
svn st "C:\path\to\working\directory\" >> C:\path\to\working\project.log
运行BAT每一次,它会在ST输出添加到项目。日志。根据需要调整。
3
好吧,我发现Tooony的帮助下解决方案:
set vHEAD = 0
set vBASE = 0
set svnDir=<path to local svn directory>
for /F "tokens=1,2" %%I in ('svn info -r HEAD %svnDir%') do if "%%I"=="Revision:" set vHEAD=%%J
for /F "tokens=1,2" %%I in ('svn info -r BASE %svnDir%') do if "%%I"=="Revision:" set vBASE=%%J
if "%vBASE%"=="%vHEAD%" (
echo No changes
) else (
echo Changed files!
)
2
有你。蝙蝠执行svnversion
(如果您使用的是Subversion)或SvnWCRev.exe
(如果您使用的是TortoiseSVN),则是针对您的工作副本的最高级别。
如果您的工作副本已被修改,两者都会输出。
svnversion
将“M”附加到其输出。 SvnWCRev.exe
将打印WC已被修改的文本行。
0
该版本基于@ tooony's,但检查服务器的更新而不是客户端。
@echo off
set svnOut=
rem Check svn server status of current working directory repository and see if first or second token is an *
for /F "tokens=1" %%I in ('svn status --show-updates') do if "%%I"=="*" set svnOut=%%I
rem echo "%svnOut%"
if "%svnOut%"=="" (
echo No changes
) else (
echo Changed files!
)
相关问题
- 1. 在Treeview中检测更改
- 2. SVN在覆盖文件时未检测到更改
- 3. Jenkins检测到SVN更改但不更新工作区?
- 4. 检测System.Windows.Forms.TabPage中的更改
- 5. 检测EntityFrameWork中的更改
- 6. 检测window.location中的更改
- 7. 检测Wifi中的更改
- 8. 检测html中的更改
- 9. 如何在SVN更新之前检测到SVN 1.7冲突?
- 10. 在ObjC中检测NSArray中的更改
- 11. CruiseControl.Net间歇性检测SVN修改
- 12. svn使用svn更改svn
- 13. 检测域更改?
- 14. 检测更改jQuery
- 15. TortoiseSVN未检测到对SVN存储库的更改
- 16. 如何配置Jenkins以检测SVN更改并执行作业?
- 17. 在Kepler项目浏览器中无法检测到SVN文件更改
- 18. 检测在Django中更改的密码
- 19. 在JavaScript中检测div更改
- 20. 在MapView中检测缩放更改
- 21. 在PageControl中检测选项卡更改
- 22. 在TFS中检测文件更改
- 23. 在iOS中检测旋转更改
- 24. 检测bat文件中的[Enter]键
- 25. 如何在SVN中检测到冲突?
- 26. Tablesorter检测更改或更改?
- 27. 将.bat更改为.jar
- 28. 可以在SVN中检查特定方法何时更改?
- 29. QListView检测滚动更改
- 30. Angular2默认更改检测
它按需提供。 我知道svn命令(很容易找到他们eveyrwhere)。 的问题是要知道如何使用,在一个蝙蝠脚本 – acemtp 2008-10-03 12:14:11
我不想把状态到日志文件: 我想.BAT的是做这样的事情代码: 如果(svn_changed()) 这样做 否则 那样做 – acemtp 2008-10-03 12:37:15