我正在和一个朋友一起做一个项目,我想返回到我们代码的旧版本,并将其设置为当前版本。我该怎么做?

我在vs08上使用“anksvn”。

我的电脑上有我想要的版本,但提交失败;我得到的信息是 "提交失败,文件或目录已过期。"

我的电脑上也有subversion客户端。


当前回答

基本上你需要“向后合并”——将当前版本和以前版本之间的差异应用到当前版本(因此你最终会得到一个看起来像旧版本的工作副本),然后再次提交。例如,从150版(目前)回到140版:

svn update
svn merge -r 150:140 .
svn commit -m "Rolled back to r140"

Subversion红皮书对此有一个很好的章节。

其他回答

同步到旧版本并提交。这应该能奏效。

这里还解释了撤消更改。

这页上有很多危险的答案。请注意,从SVN版本1.6开始,执行更新-r可能会导致树冲突,这将迅速升级为可能丢失数据的kafkeresque噩梦,您需要在谷歌上搜索关于树冲突的信息。

恢复版本的正确方法是:

svn merge -r HEAD:12345 .

其中12345是版本号。别忘了这个点。

基本上你需要“向后合并”——将当前版本和以前版本之间的差异应用到当前版本(因此你最终会得到一个看起来像旧版本的工作副本),然后再次提交。例如,从150版(目前)回到140版:

svn update
svn merge -r 150:140 .
svn commit -m "Rolled back to r140"

Subversion红皮书对此有一个很好的章节。

右键单击项目>替换为>修订或URL >选择要恢复的特定修订。

现在将本地更新代码版本提交到存储库。这将把代码库恢复到特定的修订版本。

这就是我所做的,为我工作。

我想撤消在多次提交中所做的更改,并希望转到以前的提交点。

去团队->显示历史。 右键单击要忽略的修订或范围。 选择“恢复更改”选项。

这将运行反向合并,撤销工作副本中的更改。

只需检查代码并提交即可。