已签出应用程序。然后想要导出我的工作副本,应该制作完整的副本,然后删除.svn目录,但是mkdir失败并丢失了主工作目录中的所有.svn。
问题:如果我进行了新的结账,是某个版本的find只能复制在特定日期之后编辑的文件(从导出到新的结帐目录树),更重要的是 - 这会有效吗?任何坑都需要注意?
已编辑的文件都是.xml或.java扩展名。
我正在考虑复制所有文件,但之后有其他人更改了文件。虽然我相当确定我更改的文件只会由我更改。
可以手动完成,但想知道是否有一个很好的脚本可以完成大部分工作。
答案 0 :(得分:1)
我建议使用diff和path util。我认为它最可靠。你可以看看一个新的副本,然后在两者之间运行差异。这将创建一个补丁,您可以将其应用于新签出的版本。
diff -r --exclude=".svn" dir/one dir/two > patch.diff
然后在签出版本中将patch.diff复制到新签出的根目录并执行
patch -p1 --dry-run < patch.diff
如果这很开心,那么删除--dry-run
,它将应用差异。这可能有点矫枉过正,但是当事情变得非常混乱时,这是一个很好的工具。
答案 1 :(得分:1)
您可以简单地restore the .svn directories you deleted:
,而不是将您更改的文件复制到新位置svn checkout --depth files --force URL PATH
其中URL
是您的存储库的网址,PATH
是您的工作副本的路径。