我有一个Subversion工作副本 G:\ csmdepot \ Builds ,其中包含不同的文件,有些被忽略,有些则没有(我忽略了Tortoise的文件):
现在通过命令行自动完成我想做的一切,我尝试了以下内容(我在vbscript中编写批处理文件并运行它):
fso.MoveFile "G:\csmdepot\Builds\WimID.xml", "G:\WimID.xml"
---批处理文件启动
G:
cd G:\csmdepot\Builds\
svn commit WimID.xml -m "Commit that WimID.xml is away"
svn propset svn:ignore WimID.xml .
批处理文件结束---
fso.MoveFile "G:\WimID.xml", "G:\csmdepot\Builds\WimID.xml"
... 但是当我回到我的文件夹G:\ csmdepot \ Build时,所有被忽略的文件被标记为未版本化,并且svn:ignore属性中的唯一值是WimID.xml,但此文件也是版本化的。当我手动提交时,至少忽略WimID.xml。
我该怎么办? 将WimID.xml附加到svn:ignore属性的值而不删除旧的 和 我的svn commit语句出了什么问题?
编辑:fso.MoveFile语句正在运行。它必须用我的svn命令做一些事情。
答案 0 :(得分:3)
在第一个回答中阅读此内容和链接条目后,
我偶然发现了svn propget
,这让我想到了写这个:
svn propget svn:ignore .>>.svnignore
echo WimID.xml>>.svnignore
svn propset svn:ignore -F .svnignore .
我在带有1.6.23 svn客户端的windows(7)控制台上测试了它 在所有情况下,这都适用于我,无论该物业是否已经设置过。
好的是你让svnignores在文件中可见。
不确定提交,也许你可以/需要告诉svn从svn中删除文件?
答案 1 :(得分:2)
正如您所注意到的,使用svn propset svn:ignore
将覆盖您将svn:ignore属性设置为之前的任何内容。
不幸的是,没有简单直接的附加命令。如上所述here如果你想要一个有效的附加,你需要做一些批处理/ shell脚本来修复它。
但是,如果您只想偶尔这样做,您也可以使用其他解决方案:
svn propset svn:ignore -F ignoredFiles .
svn propset svn:ignore ‘Build_1.wim [enter] Build_2.wim [enter] WimID.xml’ . [enter]
(取自comment in a blog post)svn propedit svn:ignore .
但是这需要使用命令行svn进行一些设置。有关详细信息,请参阅svn help propedit
。