当树干/分支掩埋在子树中时,Subversion分支

Dan*_*iel 2 svn branch

我的任务是按照以下方式组织SVN存储库:

REPO_ROOT
  |-AAA
  |-BBB
  |-DDD
      |-D1
      |-D2
      |-software
          |-branches
          |-tags
          |-trunk
  |-YYY
  |-ZZZ
Run Code Online (Sandbox Code Playgroud)

我主要在工作^/DDD/software/trunk。现在,我想创建一个分支来进行一些错误修复^/DDD/software/branches/error-fixing

首先,我创建并提交了^/DDD/software/branches/error-fixing不存在的目录。然后,我使用以下命令创建了一个干线分支:$ svn copy svn+ssh://xxx@yyy.zzz/REPO_ROOT/DDD/software/trunk svn+ssh://xxx@yyy.zzz/REPO_ROOT/DDD/software/branches/error-fixing -m "Branching from trunk to error-fixing"

现在,我需要切换到正确的分支。我在里面trunk并使用命令,$ svn switch "^/DDD/software/branches/error-fixing" .但这失败了svn: E195012: Path '.' does not share common version control ancestry with the requested switch location.

如何切换到分支?(我第一次这样做是因为我做错了。)

Dan*_*iel 5

问题来自分支的创建方式。我首先创建了错误目录,然后进行了svn复制。这将导致将中继目录复制到错误修复中,而不只是复制其内容而^/DDD/software/branches/error-fixing/trunk/<files>不是^/DDD/software/branches/error-fixing/<files>在这里发现了细微的差别。这就是干线和错误修复没有共同祖先的原因,内容有所不同。

一旦我删除了svn的错误修复并在未事先创建错误修复的情况下进行了svn复制,则svn开关可以正常工作。