如果svn更新扰乱了我的本地环境,如何回滚?

如果svn更新扰乱了我的本地环境,如何回滚?,svn,Svn,我对svn通常遵循的工作流程感兴趣。如果我进行更新(这是在一个没有持续集成或自动回归测试的环境中)以获得其他签入的更改,有时会出现可怕的错误。一些功能 是坏的,这甚至可能需要花很多时间来追踪谁负责或撤销更改。。。在这种情况下,我只想让我的“更新前”环境恢复 这种情况下的标准是什么?我希望我的问题足够清楚。您可以随时更新回特定的修订号 svn up -r <revision_number> svn up-r 如果您只是回滚到以前的修订号,您还将丢失在更新之前(在工作副本上)所做的潜在

我对svn通常遵循的工作流程感兴趣。如果我进行更新(这是在一个没有持续集成或自动回归测试的环境中)以获得其他签入的更改,有时会出现可怕的错误。一些功能 是坏的,这甚至可能需要花很多时间来追踪谁负责或撤销更改。。。在这种情况下,我只想让我的“更新前”环境恢复


这种情况下的标准是什么?我希望我的问题足够清楚。

您可以随时更新回特定的修订号

svn up -r <revision_number>
svn up-r

如果您只是回滚到以前的修订号,您还将丢失在更新之前(在工作副本上)所做的潜在本地更改,这些更改在决定性更新之前没有提交到服务器,但在更新过程中被合并

通常,每个需要提交更改的人都需要首先更新自己的版本,并检查是否所有内容都是稳定的、“已测试”的,或者至少是已编译的(我更喜欢下一个版本是防弹的)。然后,提交他/她的更改。 因此,一旦您需要更新,您至少可以在一个环境中保存此更新的保险

如果与您一起工作的其他人不合作,您可以自己创建分支,并在需要时执行合并。您将能够在分支上提交合并之前所做的任何更改。因此,一旦发生大破坏,它们将被保留下来。
您可以尝试的另一件事是评估“谁”对存储库的影响最大(从上一版本的稳定性来看),并建议他们暂时在另一个分支上开发。

您可以通过以下方式重新创建工作副本:

svn update -r <revision_before_trouble>
svn更新-r
  • SVN客户端将在当前工作副本版本和更新到的旧版本之间反向合并变更集。对于SVN,合并或反向合并是相同的——它只是将差异应用于文件

  • 您的本地更改不受影响。如果本地更改与正在反向合并的更改集之间存在冲突,则将应用通常的SVN合并过程,即使用
    SVN resolve
    选择要保留的更改。您不会简单地丢失所有本地更改

  • 此过程将使您的工作副本恢复到故障开始前的状态


@lazybacker抱歉,我对该选项感到困惑,在我的m/c上没有安装svn,否则我可以与svn进行检查——帮助您,我在没有回归测试甚至功能测试的环境中工作。我们无法创建自己的分支机构。svn回购受到严格控制。因此,我必须考虑另一种解决方案。我真的需要帮助。我可以备份我的工作区吗?最快的方法是什么?我可以编写一个小脚本来封装所有这些,并进行某种回滚,另一个问题是,env有其他依赖项,这些依赖项与签入相结合,可能会破坏我的env,即使dev在签入之前测试了一些东西,只回滚optin@treefrogMarcO,谁是Colin,他的soln是什么?哦,我明白了-威廉。thxName已更改,或者我将复制/粘贴操作搞砸了。但是用户的链接是正确的,他的答案是,这会不会比复制我的目录简单,如果事情不顺利,重新命名它?是的!IMHO,让这些工具为您完成工作——这就是SVN设计的目的,让您的生活更轻松。如果你对第一次做这件事感到紧张,那么为了安全起见,你可以继续做一份你的工作副本,但你不应该这样做。SVN很棒!我认为这是一个变化之上的变化,而不是撤销一个变化。。。我现在对信任工具非常紧张。。。长话短说,我希望这不会导致一些创伤障碍(不冒犯有实际问题的人)