如何根据subversion删除文件?

时间:2011-08-15 16:45:09

标签: windows svn version-control tortoisesvn

我有一个名为“y”的文件夹,它不保存在版本控制中。我有一个受版本控制的文件夹“x”。我想将y复制到x,因为我可以在文件夹Tortoisesvn上使用Check for Modifications x命令

然后我可以假设可以安全地删除每个读取Non-versionedIgnored的文件/文件夹。因为我的WC在没有它们的情况下已经工作了一年。

如何在创建批处理脚本时添加Subversion标记的文件列表?

更新

我已经走得很远,我想我只需要一种自动化的方法。

我将y复制到x中。我检查了修改。我可以右键单击对话框并将路径复制到剪贴板。我只选择Unversioned或忽略的文件。

我将路径粘贴到批处理文件中。我使用一些查找和替换魔法来创建它。

XCOPY www.root\* www.root.backup /I /Q /R /S /E
CD www.root
DEL "Appraisals\*.*" /q /s
DEL "jobs\Backup\*.*" /q /s
DEL "New\Portability\BACKUP\*.*" /q /s
DEL "Footer\Codes\*.*" /q /s
DEL "QL\Commercial\*.*" /q /s
DEL "images\Discard\*.*" /q /s
DEL "Dup SH Pages\*.*" /q /s
DEL "ExtensionRequest\*.*" /q /s
DEL "ExtFile\*.*" /q /s
DEL "Ad\Include\*.*" /q /s
DEL "Bio\Include\*.*" /q /s
DEL "Contact\Include\*.*" /q /s

更新#2

我通过类比和示例更好地工作,所以这是场景和我想要的结果。

请想象我的回购中有一个非常简单的行李箱。它只有一个文件code.txt我对该文件进行了更改,将它们提交回repo。将更改提交到repo后,我只将此文件从repo导出到Production。

现在想象一些其他开发人员出现并且不跟我说话。他们直接将各种文件复制到生产服务器。

copy of code.txt
bob's copy of code.txt_backup
copy of copy of copy of bob's copy of code.txt_backup.backup

现在想象一下,我意识到这一点,并决定在subverion中保护他们的代码。我将它添加到我的仓库并提交。现在,随着时间的推移,我意识到copy of copy of copy of bob's copy of code.txt_backup.backup实际上是生产的一部分,而另外两个文件是垃圾。

我从WC中删除文件copy of code.txtbob's copy of code.txt_backup并提交。我也对code.txt进行了微小的改动。我承诺。

现在,当我与之前的修订版进行比较并执行导出时,Tortoise将导出已更改的文件。

所以现在我有两个孤立的生产文件。我希望脚本根据它们不在Subversion的HEAD中的事实从生产中删除它们。

现在假设您有5300个文件和文件夹。 ....呼。

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您只需要将y的内容复制到签出的x。

然后,使用Windows资源管理器打开x。由于您已经在PC上安装了tovise svn,因此不在版本下的文件将标有蓝色图标,用红色图标修改的文件和未用绿色图标修改的文件。

这就是你要找的东西吗?

修改

我刚才有了另一个想法:

  1. 创建Y。
  2. 的副本
  3. 遍历X的所有文件f。
  4. 删除Y中的所有f。
  5. 最后Y将包含不在X中的文件,这是你想要的,不是吗?然后,您可以在将Y添加到X后从X中删除它们。