“的对立面”;“svn向上”吗;?

“的对立面”;“svn向上”吗;?,svn,Svn,我在服务器上有一个SVN存储库,位于/var/SVN/repository中,在服务器上有两个工作副本,一个是“暂存”副本,一个是“活动”副本。本地开发人员工作副本以正常方式通过“svn commit”发送到服务器 我在服务器上有两个简单的两行脚本,它们会转到适当的位置并执行“svn更新”,以将内容刷新到最新的存储库版本 向上: cd /usr/local/lib/Catalyst/proj/trunk svn up && echo 'go to proj.example.co

我在服务器上有一个SVN存储库,位于/var/SVN/repository中,在服务器上有两个工作副本,一个是“暂存”副本,一个是“活动”副本。本地开发人员工作副本以正常方式通过“svn commit”发送到服务器

我在服务器上有两个简单的两行脚本,它们会转到适当的位置并执行“svn更新”,以将内容刷新到最新的存储库版本

  • 向上:

    cd /usr/local/lib/Catalyst/proj/trunk
    svn up && echo 'go to proj.example.com to see changes'
    
  • 后台:

    cd ~/Catalyst/svn/proj
    svn up && echo 'go to proj.example.com:3001 to see changes'
    
我想制作几个配套脚本“前台”和“下线”,但我在svn中能找到的最接近的东西需要一个版本号的可变参数: 我发现的例子包括

$svn合并-r头:nnnn

$svn合并-c-303 ---将r303反向合并为“integer.c”:

我试图想出一种简单的方法来实现“D'Oh!”功能,即撤销上一次svn更新,可以通过脚本调用:例如,ssh theServer downstage撤销上一次“svn up”,并将live/staging系统返回到上一版本

毫无疑问,可以从SVN获得最新版本,
拿走一个,让SVN做一个反向合并,但这似乎是一件非常明显的事情,以至于我有点惊讶没有一个更快/更简单的方法。

对以前的修订版进行更新,如何使用:

svn up -r PREV

更新工作副本决不是一个确定的操作。您的工作副本可以在之前和之后处于任意随机状态。如果要撤消更新,需要先创建备份。像tar+gz这样简单的东西就足够了


如果您想只进行svn可预测的更新,那么您可能必须在更新之前创建分支并将内容提交/合并到这些分支中。当然,这两种方法都不适用于无版本的内容。

我认为您真正想要的是类似于
git stash
——一种存储任意工作副本更改并将其与存储库中的更新隔离的功能

这里有一种方法:

还有一些脚本:


我记不起曾经想做你描述的那样的事情。首先,我在更新后的“噢!”时刻总是希望恢复本地更改,而不受合并的影响,我的IDE的“本地历史”功能负责这一点。SVN帮不上忙,因为它没有本地修改文件的任何副本。其次,更新后,您的本地副本不知道上次更新之前文件的修订版本;如果一个更新带来了三个版本的文件,你可能想回到三个版本,而不是一个版本,对吗?但SVN不知道,两者都有好处。在我的OP中,我没有明确指出,在这种情况下,工作副本是实时或临时服务器副本,它将(或肯定应该)永远不会进行任何本地修改,而是始终且仅是从其他地方的开发人员工作副本提交到回购中的原始副本。所以不会有本地MOD;然而,第二点是绝对有效的,这意味着我需要回到我认为的功能请求者那里。嘿,这些都非常聪明,而且有点厚颜无耻;-)。。谢谢这是一个很好的答案,谢谢。我在文档中没有遇到“PREV”,至少我不记得了。但我认为我可能有一个问题:提交r99;svn到舞台再到现场;提交r100;svn达到阶段;提交r101;提交r102;svn达到阶段;提交r103;svn到舞台再到现场;然后找到潜伏的bug,并希望将实时服务器“svn关闭”到其最后一个已知的良好状态,在本例中是99而不是102-(看起来在svn之外做一些备份毕竟是必要的;尽管Alvaro的分支想法也可能是一个跑步者。多亏了大家!