SVN找回删除的项目
来源:互联网 发布:国际灾害统计数据库 编辑:程序博客网 时间:2024/05/29 08:57
http://www.subversion.org.cn/svnbook/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo
版本控制系统非常重要的一个特性就是它的信息从不丢失,即使当你删除了文件或目录,它也许从HEAD
版本消失了 ,但这个对象依然存在于历史的早期版本 ,一个新手经常问到的问题是“怎样找回我的文件和目录?”。
第一步首先要知道需要拯救的项目是什么,这里有个很有用的比喻:你可以认为任何存在于版本库的对象生活在一个二维的坐标系统里,第一维是一个特定的版本树,第二维是在树中的路径,所以你的文件或目录的任何版本可以通过这样一对坐标定义。(记住常见的“peg修订版本”语法— foo.c@224 — 在前面的“Peg和实施修订版本”一节提到过。 )
首先,你需要svn log来察看你需要找回的坐标对,一个好的策略是使用svn log --verbose来察看包含删除项目的目录,--verbose选项显示所有改变的项目的每一个版本 ,你只需要找出你删除文件或目录的那一个版本。你可以通过目测找出这个版本,也可以使用另一种工具来检查日志的输出 (通过grep或是在编辑器里增量查找)。
$ cd parent-dir$ svn log -v…------------------------------------------------------------------------r808 | joe | 2003-12-26 14:29:40 -0600 (Fri, 26 Dec 2003) | 3 linesChanged paths: D /calc/trunk/real.c M /calc/trunk/integer.cAdded fast fourier transform functions to integer.c.Removed real.c because code now in double.c.…
在这个例子里,你可以假定你正在找已经删除了的文件real.c
,通过查找父目录的历史 ,你知道这个文件在808版本被删除,所以存在这个对象的版本在此之前 。结论:你想从版本807找回/calc/trunk/real.c
。
以上是最重要的部分—重新找到你需要恢复的对象。现在你已经知道该恢复的文件,而你有两种选择。
一种是对版本反向使用svn merge到808(我们已经学会了如何取消修改,见“取消修改”一节),这样会重新添加real.c
,这个文件会列入增加的计划,经过一次提交,这个文件重新回到HEAD
。
在这个例子里,这不是一个好的策略,这样做不仅把real.c
加入添加到计划,也取消了对integer.c
的修改,而这不是你期望的。确实,你可以恢复到版本808,然后对integer.c
执行取消svn revert操作,但这样的操作无法扩大使用,因为如果从版本808修改了90个文件怎么办?
所以第二个方法不是使用svn merge,而是使用svn copy命令,精确的拷贝版本和路径“坐标对”到你的工作拷贝:
$ svn copy -r 807 / http://svn.example.com/repos/calc/trunk/real.c ./real.c$ svn statusA + real.c$ svn commit -m "Resurrected real.c from revision 807, /calc/trunk/real.c."Adding real.cTransmitting file data .Committed revision 1390.
加号标志表明这个项目不仅仅是计划增加中,而且还包含了历史,Subversion记住了它是从哪个拷贝过来的。在将来,对这个文件运行svn log会看到这个文件在版本807之前的历史,换句话说,real.c
不是新的,而是原先删除的那一个的后代。
- SVN找回删除的项目
- 本地删除文件svn找回
- 怎样删除svn的项目
- 找回删除的文件
- 找回删除的日志
- svn管理的文件,本地删除并且提交服务器,还是可以找回来的。
- 如何在Eclipse 中找回误删除或覆盖掉的代码(SVN)
- SVN管理的文件,删除并提交后仍然可以找回
- 找回误删除的文件
- 怎样找回删除的文件
- 找回误删除的文件
- 删除SVN上服务器上的项目
- 如何删除在 SVN 创建的项目
- Android Studio 中删除项目和项目找回------ Project Structure的使用
- svn 项目删除svn文件夹
- 批量删除SVN项目目录下的所有.svn文件
- 删除项目SVN信息
- svn删除项目
- svn如何恢复误删除的数据
- C#读写app.config中的数据
- Visual Studio 2010 Visual C++ 重新分发的DLL
- httpwatch 服务器gzip响应导致不能查看stream的响应数据
- svn找回失去的文件完整篇
- SVN找回删除的项目
- BREW学习资料汇编
- 设计模式
- 博客地址
- netlink socket编程之why & how (转)
- (转)优秀网站源码、编程源码下载网站大集中
- Rss,Atom聚合规范的XML文件解析(Rome,rssutils)
- SharePoint基础之六- SharePoint基础架构中涉及的ASP.NET架构
- 软件编程21法则