当前位置:  开发笔记 > 编程语言 > 正文

在subversion中取消删除文件的简单方法是什么?

如何解决《在subversion中取消删除文件的简单方法是什么?》经验,为你挑选了4个好方法。

这些说明有点令人生畏和困惑:http://svnbook.red-bean.com/en/1.0/ch04s04.html#svn-ch-4-sect-4.3.而且他们似乎并没有提到如果你在做完svn rm"[1] 之后还没有办理登机手续就更简单了.

所以我认为这是一个很好的地方,为那些谷歌搜索记录一个更简单的答案.

[1]对于svn新手,可能会出现" svn rm"立即销毁文件.我记得我svn rm认为只是将它从源代码控制中删除,并在文件本身实际消失时吓坏了.所以一个子问题是,在没有实际删除本地副本的情况下,从版本控制中删除文件的正确方法是什么?



1> dreeves..:

如果你刚刚做了

svn rm foo.txt

然后你可以简单地撤消它

svn revert foo.txt

如果您在执行" svn rm"之后已经签入,那么您可以查看log(svn log),找到文件存在的最后修订版本,并从该版本中获取它.

一种方法是合并具有该文件的旧版本.假设当前版本是123并且该文件的最后一个版本是120,那么执行以下操作:

svn merge -r123:120

也许首先做一个干运行,以确保它不会做任何你不想做的事情:

svn --dry-run merge -r123:120

对于子问题,如何在不删除本地副本的情况下从svn中删除文件:

svn rm foo.txt --keep-local

或者,当然,您可以在svn rm'ing之前复制到临时文件,然后复制回来:

cp foo.txt foo.txt-tmp
svn rm foo.txt
(svn ci -m "just removed foo.txt from the repository")
cp foo.txt-tmp foo.txt



2> Michael Rush..:

无论出于何种原因,-rarg不适合我(svn版本1.6.9).我在之前和之后尝试过src,但不断收到一条消息,说明当前版本(duh)中找不到该文件.与--revision相同.使用@ style语法有效:

svn cp url/to/removed/foo.txt@4 foo.txt


这是唯一对我有用的命令.SVN 1.6.15

3> Stefan..:

要删除文件但将其保留在工作副本中,请使用

svn rm foo.txt --keep-local

要在提交删除后获取文件,可以使用merge命令或copy命令 - 两者都将保留文件历史记录.由于合并方式已在别处描述,这里是复制方式:

svn rm foo.txt
svn ci foo.txt -m "removed file"
(now at r5 as an example)
svn cp url/to/removed/foo.txt -r4 foo.txt
svn ci foo.txt -m "got file back"


对我来说,复制命令必须有点不同:svn cp url /to/removed/foo.txt@4 -r4 foo.txt ----没有@ 4我得到"找不到路径"错误

4> atkins..:

对于TortoiseSVN用户,可以通过Repo浏览器轻松完成.在Repo Browser中,在删除文件之前切换到修订版(您可以使用右上角的"Revision:"按钮更改版本):

在此输入图像描述

然后,您应该能够在Repo浏览器中的原始位置查看已删除的文件.右键单击它并选择"复制到工作副本...":

在此输入图像描述

然后,该文件将恢复到准备提交的工作副本(就像添加了svn一样)并且其日志历史记录保持不变.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有