Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 从修订版恢复_Svn_Tortoisesvn - Fatal编程技术网

Svn 从修订版恢复

Svn 从修订版恢复,svn,tortoisesvn,Svn,Tortoisesvn,我正在使用乌龟SVN 我最近签入了大量代码(一次提交)。在3个小时的会议上,他们决定放弃我的一堆代码和那个功能。我的老板想让我用那个应用程序区域的旧代码将Subversion放回原位 我想大概有3-4个文件受到影响。在上一次提交中,我提交了新特性changs,我需要将这些文件回滚到我签入它们之前的状态 所以,我真的不明白恢复到修订版会做什么。我继续,在日志中找到了过去提交中这些文件的最新版本,右键单击日志中的这些文件,并将其恢复为修订版 现在这会用旧版本完全替换我的本地副本吗?如果我只想返回上一

我正在使用乌龟SVN

我最近签入了大量代码(一次提交)。在3个小时的会议上,他们决定放弃我的一堆代码和那个功能。我的老板想让我用那个应用程序区域的旧代码将Subversion放回原位

我想大概有3-4个文件受到影响。在上一次提交中,我提交了新特性changs,我需要将这些文件回滚到我签入它们之前的状态

所以,我真的不明白恢复到修订版会做什么。我继续,在日志中找到了过去提交中这些文件的最新版本,右键单击日志中的这些文件,并将其恢复为修订版

现在这会用旧版本完全替换我的本地副本吗?如果我只想返回上一次签入的功能的一个子集,我这样做对吗

那么,一旦恢复到该文件的本地版本,是否会丢失所有更改?它看起来像是把旧的和我的本地代码合并在一起了…嗯,这不完全是我所期望的

(是的,我从subversion的文档中读到了这一页,除了他们简要介绍的技术方式外,它的含义并不十分清楚或透彻,这是一种非常高级的方式,并且跳过了工作副本中本地实际发生的基础)

让我们总结一下我所做的:

  • 我在某一点上签入了一系列更改
  • collegue通过svn更新获取该更新
  • 我们有个会议,老板说我们要取消这个功能
  • 该功能大约是该版本中提交的文件列表中的3-4个文件
  • 我想把那些特定的文件放在以前的状态…一些将被恢复为x版本,一些恢复为y版本,等等。因为对其中一些文件的最后更改是在不同的版本号下完成的
  • 所以我从日志开始。我查找第一个文件。我们把它叫做somefile1.aspx。我发现该文件的最新版本是在修订版X中签入的。因此,我在该修订版的更改集中右键单击该文件,并将其还原到修订版
  • 我注意到它似乎真的将修订版的代码与我的本地副本合并了??我想…不确定这就是我摆姿势的原因,因为我不明白这一点
  • 我对另外3个文件也做了同样的操作…查找它们最后提交的时间,在特定版本中右键单击它们,并对它们执行恢复到版本…假设这将使我的本地版本也处于该状态,并且几乎在本地擦除甚至我对该文件所做的更改

  • 但我对这一切有点动摇和困惑。如果我接近这个正确的方向,如果我应该使用revert back,以及它在封面下到底在做什么。我看到它已经合并了,但是什么??我只想把这4个特定文件放回以前的状态..不是我在这里开始提到的我刚刚提交的全部提交..只是与特定代码区域相关的特定文件..其余文件可以保持提交状态并由其他任何人下载。strong text

    您可能对我对刚才有一个非常类似的问题:

    基本上,您最好的行动计划可能是在上一版本中重新检查代码,然后将该代码作为最新版本提交


    如果您发现它正在将旧副本与磁盘上的版本合并,最好的修复方法是删除本地副本,然后干净地签出文件的指定版本。一旦你得到它,你就可以重新提交它。

    你可能对我刚才回答的一个非常类似的问题感兴趣:

    基本上,您最好的行动计划可能是在上一版本中重新检查代码,然后将该代码作为最新版本提交


    如果您发现它正在将旧副本与磁盘上的版本合并,最好的修复方法是删除本地副本,然后干净地签出文件的指定版本。一旦你得到了它,你可以重新提交它。

    假设你想恢复你在版本1234中所做的更改:只需合并从1234到1234-1的差异

    在CLI中,这将是:
    svn merge-r 1234:1233http://your-repo/ &&svn ci

    在OrtoiseSVN中,获得一个合并对话框,“合并一系列修订”,输入1234作为要合并的修订,然后单击“反向合并”。然后检查是否没有任何冲突(与其他人在1234年后所做的更改),并进行签入。那么你的头部修正版就不会有那个代码了

    我不确定您是否可以在Ottoisesvn中的特定文件上这样做。我在CLI中做到了这一点,您也可以尝试(CLI工具、TortoiseSVN、AnkhSVN,它们都共享元数据)


    SVN仍然记得您编写了这段代码,这就是它的设计目的。如果没有真正的理由从SVN中删除此代码(如法律、勒索或其他),请保留它。

    假设您想恢复在1234版中所做的更改:只需将1234与1234-1的差异合并即可

    在CLI中,这将是:
    svn merge-r 1234:1233http://your-repo/ &&svn ci

    在OrtoiseSVN中,获得一个合并对话框,“合并一系列修订”,输入1234作为要合并的修订,然后单击“反向合并”。然后检查是否没有任何冲突(与其他人在1234年后所做的更改),并进行签入。那么你的头部修正版就不会有那个代码了

    我不确定您是否可以在Ottoisesvn中的特定文件上这样做。我在CLI中做到了这一点,您也可以尝试(CLI工具、TortoiseSVN、AnkhSVN,它们都共享元数据)

    SVN仍然记得您编写了这段代码,这就是它的设计目的。如果没有真正的理由从SVN中删除此代码(例如,法律或勒索或其他),请保留i