我正在和一个朋友一起做一个项目,我想返回到我们代码的旧版本,并将其设置为当前版本。我该怎么做?
我在vs08上使用“anksvn”。
我的电脑上有我想要的版本,但提交失败;我得到的信息是 "提交失败,文件或目录已过期。"
我的电脑上也有subversion客户端。
我正在和一个朋友一起做一个项目,我想返回到我们代码的旧版本,并将其设置为当前版本。我该怎么做?
我在vs08上使用“anksvn”。
我的电脑上有我想要的版本,但提交失败;我得到的信息是 "提交失败,文件或目录已过期。"
我的电脑上也有subversion客户端。
当前回答
就用这条线
svn update -r yourOldRevesion
您可以使用以下命令了解您的当前版本:
svn的信息
其他回答
使用merge来撤销整个签入的标准方法非常有效,如果这是您想要做的。不过,有时您所要做的只是还原单个文件。没有合法的方法来做到这一点,但有一个hack:
使用svn log查找需要的版本。 使用svn的export子命令: SVN export http://url-to-your-file@123 /tmp/filename
(其中123是文件良好版本的修订号。)然后移动或复制该文件以覆盖旧文件。签入修改后的文件,就完成了。
右键单击要恢复>>恢复或恢复到修订的最高层次结构
基本上你需要“向后合并”——将当前版本和以前版本之间的差异应用到当前版本(因此你最终会得到一个看起来像旧版本的工作副本),然后再次提交。例如,从150版(目前)回到140版:
svn update
svn merge -r 150:140 .
svn commit -m "Rolled back to r140"
Subversion红皮书对此有一个很好的章节。
右键单击项目>替换为>修订或URL >选择要恢复的特定修订。
现在将本地更新代码版本提交到存储库。这将把代码库恢复到特定的修订版本。
有点老派
svn diff -r 150:140 > ../r140.patch
patch -p0 < ../r140.patch
然后是通常的
svn diff
svn commit