有时我需要还原许多文件 - 接近 20 - 50 个,但需要保存带有本地更改的文件 - 如果我将来会使用某些东西。
项目很大 - 超过 10 000 个文件。
是否可以仅创建未提交文件的副本?
手动查找更改和复制需要将近 2 个小时 - 项目树有许多嵌套文件夹。
问问题
35 次
2 回答
1
如果你真的想要文件的副本(而不是使用 svn diff 或做一个分支),tne 方法(我们用于服务器配置文件备份的版本)是检查哪些文件被修改。下面的注释假设您处于回购的顶层。
例如,如果您运行,svn status
您可能会得到如下输出:
? plans/software/intro_jan12.log
? plans/software/intro_jan12.dvi
? plans/software/data.txt
? plans/software/intro_jan12.nav
M plans/software/intro_jan12.pdf
M plans/software/jan12.tex
? plans/software/jan12/flowRoot9298.png
? plans/software/jan12/viewE_comments.pdf
? plans/software/jan12/team.ps
? plans/software/jan12/team.png
? plans/it/plan.log
(? 显示未知文件,M 显示修改后的文件。)
然后,您可以轻松地提取修改后的文件并通过执行类似svn status | egrep '^M'
.
将其转换为将修改后的文件复制到其他地方的简短 shell 脚本非常容易:
# step 1
svn status | egrep '^M' | awk '{ print $2 }' > recipe_file
# step 2
rsync -a --files-from=recipe_file <repo> <dest>
自然<dest>
可以在远程机器上。
据推测,一旦您审核了副本文件,您就可以执行svn revert -R
.
于 2012-04-14T13:13:35.427 回答