介绍

主 SVN 仓库含有最新的提交,而从 SVN 仓库是一个几天前的仓库快照,想要从主仓库中移动新增的提交到从仓库中。

但是 SVN 并没有类似于 format-patcham 之类的操作,搜索后也并未找到合适的方法,因此最终决定使用拷贝文件的方法。

这是一个无奈的决定,意味着抛弃了所有的新增提交信息。

环境

  • Windows 7
  • TortoiseSVN 1.9.4
  • Git for Windows 2.25

导出

导出文件内容

使用 TortoiseSVN 查看历史记录,将需要的提交选中后,在 Detail 面板中可以选中所有文件,然后导出到新建目录。

这里导出的目录会保留项目原本的目录结构,为后续合并目录提供了方便。

导出文件列表

然后将刚才选中的所有提交右键 Copy to clipboard | Full data

导入

修改文件时间

因为最后要使用操作系统自带的目录合并功能,而操作系统默认的行为是只会覆盖修改时间比原文件更新的文件。

使用命令将所有文件的最后修改时间改为现在时间,因为 Windows 在合并目录时,会使用新的文件覆盖旧的文件,所以必须保证要导入的文件修改时间都是最新的。

使用 Git for Windows,右键点击导出的目录空白处打开 Git Bash Here,执行:

1
find . -type f | xargs touch

同步

直接在资源管理器中将导出的目录拷贝到工程中进行合并目录操作即可。