3

我有一个 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\Builds 时,所有被忽略的文件都被标记为未受版本控制,并且 svn:ignore 属性中的唯一值是 WimID.xml 但该文件也是受版本控制的。当我手动提交时,至少 WimID.xml 被忽略。

我可以做些什么 来将 WimID.xml 附加到 svn:ignore 属性的值而不删除旧的值 以及 我的 svn commit 语句有什么问题?

编辑: fso.MoveFile 语句正在工作。它必须与我的 svn 命令有关。

4

2 回答 2

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 中删除文件?

于 2014-02-15T14:08:43.633 回答
3

正如您所注意到的, usingsvn propset svn:ignore将覆盖您之前设置的 svn:ignore 属性。

不幸的是,对此没有简单直接的附加命令。如此处所述如果您想要一个工作附加,您需要执行某种批处理/shell 脚本来修复它。

但是,如果您只是想偶尔执行此操作,您也可以使用其他解决方案来执行此操作:

  1. 通过使用文件中的所有所需模式(我称之为ignoreFiles)指定整个忽略集,然后使用svn propset svn:ignore -F ignoredFiles .
  2. 您可以使用此命令在多行中添加文件,方法是在文件名之间按 Enter 并在整个参数周围加上引号,但这可能仅适用于某些操作系统/shell。类似的东西:(svn propset svn:ignore ‘Build_1.wim [enter] Build_2.wim [enter] WimID.xml’ . [enter]取自博客文章中的评论
  3. 请改用 propedit:svn propedit svn:ignore .但是这需要使用命令行 svn 进行一些设置。有关svn help propedit更多详细信息,请参阅。
于 2013-11-08T13:32:58.340 回答