我有一个如下所示的SVN仓库中的文件,我想恢复到以前的版本.在SVN中执行此操作的方法是什么?我只想将此特定文件降级为旧版本,而不是整个仓库.
谢谢.
$ svn log myfile.py
----------------------
r179 | xx | 2010-05-10
Change 3
----------------------
r175 | xx | 2010-05-08
Change 2
----------------------
r174 | xx | 2010-05-04
Initial
Run Code Online (Sandbox Code Playgroud)
Eri*_*ser 180
如果您只想要工作副本中的旧文件:
svn up -r 147 myfile.py
Run Code Online (Sandbox Code Playgroud)
如果要回滚,请参阅" 如何在subversion中返回旧版本的代码? ".
小智 70
svn cat也需要修改arg!
svn cat -r 175 mydir/myfile > mydir/myfile
the*_*tar 57
svn revert filename
Run Code Online (Sandbox Code Playgroud)
这应该还原一个文件.
Mit*_*sey 50
对于单个文件,您可以执行以下操作:
svn export -r <REV> svn://host/path/to/file/on/repos file.ext
你可以这样做,svn revert <file>但这只会恢复最后一份工作副本.
Mic*_*ler 19
到目前为止,这里的所有答案似乎都有明显的缺点,很复杂(需要找到repo URI)或者他们没有做可能要求的问题:如何使用旧版本的旧版本再次使Repo处于工作状态档案.
svn merge -r head:[revision-number-to-revert-to] [file-path]IMO是最干净,最简单的方法.请注意,恢复已删除的文件似乎不会以这种方式工作[1].另请参阅以下问题:更好地恢复到文件的先前SVN修订版?
[1]您想要的svn cp -r [rev-number] [repo-URI/file-path]@[rev-number] [repo-URI/file-path] && svn up,请参阅从SVN恢复已删除文件的正确方法是什么?
khm*_*ise 13
最好的方法是:
svn merge -c -RevisionToUndo ^/trunk
Run Code Online (Sandbox Code Playgroud)
这将撤消修订的所有文件,而不是简单地还原那些您不想撤消的文件.不要忘记破折号(-)作为修订的前缀.
svn revert File1 File2
Run Code Online (Sandbox Code Playgroud)
现在提交更改.
惊讶没有人提到这一点
没有找到修订号,你可以写这个,如果你只是提交了一些你想恢复的东西,如果你更改了其他文件并且目标文件不是最后更改的文件,这将不起作用
svn merge -r HEAD:PREV file
Run Code Online (Sandbox Code Playgroud)
我发现通过svn cat命令执行此操作非常简单,因此您甚至不必指定修订版.
svn cat mydir/myfile > mydir/myfile
Run Code Online (Sandbox Code Playgroud)
这可能不会影响时间戳等inode(元数据)数据.
你想做
svn merge -r [revision to revert from]:[revision to revert to] [path/filename]
一旦这样做,您将使该文件的修订版处于可提交状态.提交文件.
如果只有几个文件,并且您使用的是 Tortoise SVN,则可以使用以下方法:
| 归档时间: |
|
| 查看次数: |
225457 次 |
| 最近记录: |