我有一个名为“y”的文件夹,它不保存在版本控制中。我有一个受版本控制的文件夹“x”。我想将y
复制到x
,因为我可以在文件夹Tortoisesvn
上使用Check for Modifications
x
命令
然后我可以假设可以安全地删除每个读取Non-versioned
或Ignored
的文件/文件夹。因为我的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
我通过类比和示例更好地工作,所以这是场景和我想要的结果。
请想象我的回购中有一个非常简单的行李箱。它只有一个文件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.txt
,bob's copy of code.txt_backup
并提交。我也对code.txt
进行了微小的改动。我承诺。
现在,当我与之前的修订版进行比较并执行导出时,Tortoise将导出已更改的文件。
所以现在我有两个孤立的生产文件。我希望脚本根据它们不在Subversion的HEAD中的事实从生产中删除它们。
现在假设您有5300个文件和文件夹。 ....呼。
答案 0 :(得分:1)
如果我正确理解您的问题,您只需要将y的内容复制到签出的x。
然后,使用Windows资源管理器打开x。由于您已经在PC上安装了tovise svn,因此不在版本下的文件将标有蓝色图标,用红色图标修改的文件和未用绿色图标修改的文件。
这就是你要找的东西吗?
修改强>
我刚才有了另一个想法:
最后Y将包含不在X中的文件,这是你想要的,不是吗?然后,您可以在将Y添加到X后从X中删除它们。