与“svn up”相反?

时间:2012-03-20 11:41:26

标签: svn

我在服务器上,/ var / svn / repository中有一个SVN存储库,服务器上有几个工作副本,一个'staging'和一个'live'。本地开发人员工作副本以正常方式使用'svn commit'发送到服务器。

我在服务器上有几个简单的双行脚本,它们会转到相应的位置并执行“svn update”以将内容刷新到最新的存储库版本。

  • uplive:

    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 merge -r HEAD:nnnn。

$ svn merge -c -303 http://svn.example.com/repos/calc/trunk ---将r303反向合并为'integer.c':

我想用一种简单的方法来做“D'哦!”函数,即撤消最后一个svn更新,可以通过脚本调用:例如ssh theServer frontstage撤消上一次'svn up'并将live / staging系统返回到之前的rev。

毫无疑问,有可能从SVN获得最新版本, 拿走一个,并要求SVN进行反向合并,但似乎想要这样做是显而易见的事情我有点惊讶没有更快/更简单的方法。

3 个答案:

答案 0 :(得分:4)

如何使用以下命令对上一版本进行更新:

svn up -r PREV

答案 1 :(得分:2)

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

如果您想进行仅svn可预测的更新,您可能必须在更新之前创建分支并将内容提交/合并。当然,这不会照顾非版本化的东西。

答案 2 :(得分:1)

我认为您真正想要的是与git stash类似的东西 - 能够存储您的任意工作副本更改并将其与存储库中的更新隔离。

这是一种方法:

http://www.benrady.com/2009/09/svn-replacement-for-git-stash.html

和一些脚本:

http://www.blisted.org/blog/bin/svn/stash