我正和一位朋友一起开展一个项目,我想回到我们代码的旧版本并将其设置为当前版本.我该怎么做?
我在vs08上使用"anksvn".
我在我的电脑上有我想要的版本,但是提交失败了; 我收到的消息是"提交失败,文件或目录已过期".
我的PC上也有subversion客户端.
Jon*_*eet 767
基本上你需要"向后合并" - 在当前版本和先前版本之间应用差异到当前版本(所以你最终得到一个看起来像旧版本的工作副本),然后再次提交.例如,从修订版150(当前)回到修订版140:
svn update
svn merge -r 150:140 .
svn commit -m "Rolled back to r140"
Run Code Online (Sandbox Code Playgroud)
Subversion Red Book有一个很好的部分.
joe*_*dle 173
您无法直接使用PC上的好副本进行任何操作的原因是它的.svn文件夹知道它是过去的代码,因此需要更新.但是你实际上只能在颠覆历史的头部提交更改.
您可以使用
.svn
检查项目的各种旧版本,直到找到正确版本的正确版本号.找到它后,更新到最新(头)修订版,然后按照上面的建议应用svn合并.
如果您真的找不到它,并且需要在PC上提交副本,那么请获取最新版本的新版本,并将"好"版本复制到它的顶部(没有 .svn文件夹!).从文件夹和subversion中删除不在好副本中的所有文件,并提交您现在拥有的文件.
M.O*_*man 36
只需使用此行
svn update -r yourOldRevesion
您可以使用以下方法了解当前版本:
svn信息
Bil*_*ill 27
如果这是您想要做的事情,使用合并撤消整个签到的标准方法很有效.但有时,您只想恢复单个文件.没有合法的方法可以做到这一点,但有一个黑客:
使用svn的export子命令:
svn export http:// url-to-your-file @ 123/tmp/filename
(其中123是文件的正确版本的修订号.)然后移动或复制该单个文件以覆盖旧文件.签入修改后的文件,您就完成了.
多一点老派
svn diff -r 150:140 > ../r140.patch
patch -p0 < ../r140.patch
Run Code Online (Sandbox Code Playgroud)
通常
svn diff
svn commit
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为这是最合适的:
例如,如果提交的代码包含从rev 5612到5616的修订版,则向后合并,只需向后合并.它最终适用于我.
例如:
svn merge -r 5616:5612 https://<your_svn_repository>/
Run Code Online (Sandbox Code Playgroud)
它将包含一个返回到以前版本的合并代码,然后您可以提交它.
| 归档时间: |
|
| 查看次数: |
625354 次 |
| 最近记录: |