0

已经检查了一个应用程序。然后想要导出我的工作副本,应该制作完整副本,然后删除 .svn 目录,但 mkdir 失败并丢失了主工作目录中的所有 .svn。

问题:如果我重新结帐,是否某些版本的 find 只能复制在某个日期之后编辑的文件(从导出到新的结帐目录树),更重要的是 - 这会工作吗?有什么坑要注意吗?

编辑的文件都是 .xml 或 .java 扩展名。

我正在考虑复制所有文件,但是其他人更改了文件。尽管我相当确定我更改的文件只会由我更改。

可以手动完成,但想知道是否有一个不错的脚本可以完成大部分繁重的工作。

4

2 回答 2

1

我建议使用 diff 和 path 工具。我认为它会最可靠地工作。您可以签出新副本,然后在两者之间运行 diff。这将创建一个补丁,您可以将其应用于新签出的版本。

diff -r --exclude=".svn" dir/one dir/two > patch.diff

然后在签出版本中将 patch.diff 复制到新签出的根目录并执行

patch -p1 --dry-run < patch.diff

如果这很高兴,那么删除--dry-run它,它将应用差异。这可能有点矫枉过正,但当事情真的一团糟时,它是一个很好的工具。

于 2013-11-05T19:54:02.197 回答
1

无需将更改的文件复制到新位置,您只需恢复已删除的 .svn 目录

svn checkout --depth files --force URL PATH

whereURL是存储库的 URL,PATH是工作副本的路径。

于 2013-11-11T22:25:53.520 回答