在Subversion中忽略文件会从svn:ignore属性中删除旧值

时间:2013-11-08 10:13:01

标签: svn batch-file vbscript commit ignore

我有一个Subversion工作副本 G:\ csmdepot \ Builds ,其中包含不同的文件,有些被忽略,有些则没有(我忽略了Tortoise的文件):

  • \ Build_1.wim 忽略
  • \ Build_2.wim 忽略
  • \ WimID.xml (未忽略)

现在通过命令行自动完成我想做的一切,我尝试了以下内容(我在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命令做一些事情。

2 个答案:

答案 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脚本来修复它。

但是,如果您只想偶尔这样做,您也可以使用其他解决方案:

  1. 使用文件中的所有所需模式(我称之为ignoredFiles)指定整个忽略集,然后使用svn propset svn:ignore -F ignoredFiles .
  2. 您可以使用此命令在多行上添加文件,方法是在文件名之间按Enter键并在整个参数周围加引号,但这可能仅适用于某些操作系统/ shell。例如:svn propset svn:ignore ‘Build_1.wim [enter] Build_2.wim [enter] WimID.xml’ . [enter](取自comment in a blog post
  3. 使用propedit代替:svn propedit svn:ignore .但是这需要使用命令行svn进行一些设置。有关详细信息,请参阅svn help propedit