如何使用Subversion进行分支

时间:2013-05-20 17:24:06

标签: svn

我正在尝试使用Subversion创建一个分支。本书描述的方法不起作用。我在this link中找到了this post,但它只是反映了这本书。而这种技术失败了。也许我做错了什么?

我使用工作目录中的svn copy命令创建分支:

svn copy https://server.com/svn/iRP85_V2/trunk https://server.com/svn/iERP85_V2/branches/backlog -m "comment"

这似乎有效。然后按照说明操作,我使用checkout命令更改工作副本中的代码:

svn checkout https://server.com/svn/iERP85_V2/branches/backlog

看起来它复制了一切,但我不确定它到底在做什么。我做了一个改变,然后做另一个结账:

svn checkout https://server.com/svn/iERP85_V2/trunk

但是如果没有改变,我就不会得到原版。我得到相同的代码。如果我再次从分支机构结账,我会再次获得相同的代码。

发出svn info命令我看到无论我传递给结帐,我总是在行李箱中。这个命令显然不符合本书的含义。它不会更改工作目录的源。它甚至不会从参数中指定的目标替换工作目录中的模块。它做了什么?

然后我进一步查看并看到了switch命令,所以我尝试了这个:

svn switch https://server.com/svn/iERP85_V2/branches/backlog

我收到错误:

  

svn:E155025:'https://server.com/svn/iERP85_v2/trunk'   与...不同的存储库   'https://server.com/svn/iERP85_V2'

如果我发出一些info命令,则存储库ID是相同的。

  

G:\ Code \ Intuitive Projects \ Projects> svn info
  
  路径:。
  工作副本根路径:G:\ Code \ Intuitive Projects \ Projects
  网址:https://server.com/svn/iERP85_v2/trunk
  存储库根目录:https://server.com/svn/iERP85_v2
  存储库UUID:b4595441-a089-b54f-bc08-6f65ce278a35
  修订:48
  节点种类:目录
  时间表:正常
  最后更改作者:JohnM
  Last Changed Rev:48
  最后更改日期:2013-05-16 13:35:06 - 0400(星期四,2013年5月16日)
   
  G:\ Code \ Intuitive Projects \ Projects> svn info https://server.com/svn/iERP85_V2/branches/backlog
  
  路径:积压
  网址:https://server.com/svn/iERP85_V2/branches/backlog
  存储库根目录:https://server.com/svn/iERP85_V2
  存储库UUID:b4595441-a089-b54f-bc08-6f65ce278a35
  修订:57
  节点种类:目录
  最后更改作者:JohnM
  Last Changed Rev:57
  最后更改日期:2013-05-20 13:00:38 - 0400(2013年5月20日,星期一)

我甚至删除了分支并重新创建它,以防我做了什么,但我得到了相同的结果。

我一直在主干上开发,并希望使用分支功能。特别是当发现错误时,我必须告诉别人他们必须等待或有选择地选择投入生产的模块。

2 个答案:

答案 0 :(得分:0)

您尝试这样做的原则看起来是正确的。看来你刚刚被一些细节绊倒了。无法访问您的存储库和硬盘驱动器,或者输入更详细的命令,很难说出您做错了什么。

首先想到的是:在您创建新分支后,您是否尝试检查到旧结账的同一目录?这不起作用。您必须结帐到其他地方,或使用“svn switch”更改当前工作副本以查看新分支。

您对交换机的问题表明您没有指向您认为自己的存储库。是vm006.corp.rotair.com另一个存储库,还是你的本地机器,或者是什么?

答案 1 :(得分:0)

首先,我想感谢大家的帮助。问题似乎是'v'。使用iERP85_V2可用于复制。 Visual SVN还报告了iERP85_V2。但是,switch命令仅适用于iERP85_v2。没有两个存储库,只有一个。 svn服务器将其显示为V2,svn info将其显示为v2。这是一个非常用户不友好的工具:)。

再次感谢