使用tortoise svn将更改的文件导出到另一个目录

时间:2010-01-21 16:39:59

标签: svn tortoisesvn

对于我的项目,我想使用tortoise svn仅导出自上次更新以来更改/添加的文件(标有红色感叹号或加号的文件),但我似乎无法找到正确的组合来完成这个简单的任务。

我现在所做的是使用指定的修改日期进行xcopy,但它错过了一些只是添加到文件夹而未修改的文件。由于我可以获得更改列表,因此我看不到将这些文件导出到部署目录的任何方法。

6 个答案:

答案 0 :(得分:24)

检查修改对话框,按状态排序。 Shift-Click或Ctrl-Click选择具有“已修改”和“已添加”状态的所有项目。 然后只需将文件从“检查修改”对话框右键拖动到资源管理器中的另一个文件夹即可。

另一种方式(如果您已提交更改): 显示日志对话框,选择包含有趣更改的所有修订。在下部窗格中,按住Shift键选择所有条目,右键单击,选择“另存为”。

另一种方式: 使用存储库浏览器,找到第一个URL(假设您要导出在两个标记之间更改的所有内容,例如版本1和版本2),右键单击“标记为比较”。找到第二个网址,右键单击“比较网址”。在下面的“更改的文件”对话框中,选择所有文件,右键单击,选择“将选择导出到...”。

答案 1 :(得分:9)

来自the TortoiseSVN daily use guide

  

从工作副本导出的另一种方法是右键拖动工作   将文件夹复制到另一个位置并选择...   上下文菜单→SVN导出此处更改的项目 ...   第三种选择仅出口   修改了项目,但保留了文件夹结构。

答案 2 :(得分:2)

在检查修改对话框中,选择要导出的所有文件,然后右键单击并选择导出。

这是一个更好的解决方案,特别是如果要导出子目录中的文件。 (检查修改的拖动选项会使目录结构变平)。

答案 3 :(得分:0)

这不是Tortoise的内置功能。您可以在powershell中添加一个脚本来解析'svn st'的输出并复制文件。

答案 4 :(得分:0)

您最好的选择可能是使用 svn status ,然后grep文件代码以确定要复制的文件。

请参阅http://svnbook.red-bean.com/en/1.0/re26.html

答案 5 :(得分:0)

另一种选择。

假设您上次从存储库版本#85部署了应用程序。经过几周的开发,存储库现在已达到修订版#178。

  1. 使用TortoiseSVN,右键单击您的工作文件夹并选择 TortoiseSVN菜单中的“显示日志”。
  2. 点击上次发布的修订版(本例中为#85)     Ctrl +单击HEAD修订版(或您想要发布的任何修订版,即#178),以便旧版本和新版本都是 突出显示。
  3. 右键单击任一突出显示的修订版本并选择 “比较修订。”这将打开一个列出所有内容的对话窗口 新/修改过的文件。
  4. 从此列表中选择所有文件(Ctrl + a),然后右键单击 突出显示的文件,然后选择“将选择导出到...”
  5. 系统会提示您输入保存更新文件和SVN的位置 将导出它们全部保留目录结构。您 然后可以为您的客户拉链,将其转移到您的主机或 无论你通常做什么来部署应用程序。
  6. From Here