【问题标题】:Creating a Subversion branch创建一个 Subversion 分支
【发布时间】:2011-04-24 22:19:46
【问题描述】:

我在Ubuntu Linux 服务器上有一个 Subversion 存储库(运行 SVN 1.6.6),我正在尝试使用TortoiseSVN GUI 创建一个分支;但是,我收到一个错误:

将 c:\work\repositoryWorkingcopy\ 复制到 http://svnserver/svn/repository/Oct13,修订版 HEAD

错误 '/svn/repository/!svn/bc/234/branches' 找不到路径

我登录到我的 Linux 机器以查看“分支”文件夹是否不可用。但是,我可以看到 /var/svn/repository/branches 存在。

那么,问题出在哪里,我该如何解决?

我尝试了以下命令(根据http://svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.1)以及命令行并得到了类似的错误:

c:\workingcopy> svn copy http://reposerver/svn/repository/ http://reposerver/svn/repository/branches/BFI_Oct13/ -m "Creating a branch"

svn: '/svn/repository/!svn/bc/235/branches' 路径未找到

我该怎么办?

此外,工作副本主目录上的svn info 提供以下信息。

Path: .
URL: http://reposerver/svn/myrepository
Repository Root: http://reposerver/svn/myrepository
Repository UUID: 7a31d3c0-b288-4695-aecd-3f9dda2861ab
Revision: 235
Node Kind: directory
Schedule: normal
Last Changed Author: anjan
Last Changed Rev: 235
Last Changed Date: 2010-10-13 20:39:31 +0530 (Wed, 13 Oct 2010)

【问题讨论】:

  • 验证您的 SVN 服务器对目录有后/写权限。

标签: linux svn tortoisesvn branch branching-and-merging


【解决方案1】:

当你说:

我登录到我的 Linux 机器以查看“分支”文件夹是否不可用。但是,我可以看到 /var/svn/repository/branches 存在。

您的意思是实际目录存在于文件系统中(这对您绝对没有好处),还是存在于存储库中?

可能的修复:

$ svn mkdir http://reposerver/svn/repository/branches
$ svn copy http://reposerver/svn/repository/ http://reposerver/svn/repository/branches/BFI_`date +%b%d`/ -m "Creating a branch"

【讨论】:

  • 嗨,Wrikken,谢谢。我的意思是实际目录存在于 fs.将尝试您的建议,看看效果如何。
  • 这有点成功了。但是,天哪,当我尝试更新我的“主干”工作副本时,我得到了一个名为分支/Oct13 的新文件夹,其中包含我的主干目录结构的完整副本。现在,我该如何摆脱这个目录。请。 help --- 我们即将发布一个版本,“TRUNK”工作副本根目录下的这个新目录将破坏构建。谢谢。
  • c:\new_workingCopy>svn mkdir --parents repoServer/svn/myrepository/branches -m "creating branch" 提交修订版 236。 c:\new_workingCopy>svn copy repoServer/svn/myrepository reposerver/svn/myrepository/branches/BFI_Oct13 -m "创建一个分支" 提交修订版 237。
  • subversion 中没有“特殊”分支:branches 只是一个目录。通常,在 svn repo 的根目录中,您将在创建后自己创建一个 trunkbranches 文件夹。如果您一开始没有,只是将项目直接添加到 repo 的“根”//,它确实是一个子文件夹。可能的解决方法是现在创建一个文件夹trunk,并将根无分支目录的当前内容移动到该位置。如果您需要将文件保留在当前位置,您要么必须使用分支子文件夹,要么完全忘记分支。
  • 在上面的命令中有一个 h t t p : // 因为编辑控件的一些过滤而丢失了。
【解决方案2】:

一般来说,您需要在服务器上进行分支,在分支中进行更改,然后检查这些更改。

所以,第一步是创建分支,这只是一个复制命令。在 TortoiseSVN 中,您需要(可能)主干的 URL,并且您需要定义分支的 URL。在更标准的存储库设置中,主干可能是 http://svnserver/svn/repository/trunk,而您的分支可能是 http://svnserver/svn/repository/branches/Oct13

然后,您需要将工作副本切换到分支。您应该可以选择这样做而不会丢失您的本地更改。

最后,您将检查您的更改,它们应该从那里转到分支。

我比较习惯SVN的命令行界面,但是我用过TortoiseSVN。不过,已经有一段时间了,所以如果您仍然有问题或者这没有意义,请发表评论。

【讨论】:

  • 谢谢。请。见更新。我也尝试了命令行指令,但徒劳无功。
  • @anjanb 你能在你的主工作目录中发布 svn info 的输出吗?
  • 路径:. URL:reposerver/svn/myrepository 存储库根目录:reposerver/svn/myrepository 存储库 UUID:7a31d3c0-b288-4695-aecd-3f9dda2861ab 修订:235 节点种类:目录计划:正常最后更改作者:anjan 最后更改版本:235 最后更改日期:2010-10 -13 20:39:31 +0530(2010 年 10 月 13 日,星期三)
猜你喜欢
  • 2010-11-25
  • 2017-07-01
  • 2016-12-15
  • 2016-10-14
  • 2011-05-27
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 2021-08-09
相关资源
最近更新 更多