在本地仓库上创建SVN分支

3
我正在尝试在本地计算机上的一个svn仓库中创建一个分支。根据我阅读svn book所理解的内容,我应该先创建分支目录(使用svn mkdir命令),然后将其从我的仓库复制到工作副本的分支目录中(这样做是否正确?)。
下面是我的仓库和工作目录的位置:
My local repository: "SVN/repo". My working copy: "SVN_WORK_COPY/repo/trunk" My branch destination: "SVN_WORK_COPY/repo/branches/my_code_branch"
当我输入了以下命令时:
    svn copy SVN/repo SVN_WORK_COPY/repo/branches/my_code_branch -m "Created first branch"

我收到了以下信息:

svn: 本地非提交操作不需要日志信息或版本属性

当我输入时:

svn copy SVN/repo SVN_WORK_COPY/repo/branches/my_code_branch 

我收到了以下信息:
svn:“SVN\repo”不是工作副本。
当我打字时:
svn copy SVN_WORK_COPY/repo/trunk SVN_WORK_COPY/repo/branches/my_code_branch -m "First Branch"

我再次收到了这个消息:

svn: 本地的非提交操作不需要日志信息或修订属性

最后,当我输入以下内容时:

svn copy SVN_WORK_COPY/repo/trunk SVN_WORK_COPY/repo/branches/my_code_branch

我得到的是:

A SVN_WORK_COPY/repo/branches/my_code_branch\trunk

我的文件(code.txt)在这个trunk目录下。然而,我非常怀疑我是否正确地创建了一个分支,因为:
  1. 我没有被允许创建一条消息(使用-m选项)
  2. 我不想要“my_code_branch”目录中的“trunk”目录
  3. 我没有看到消息“提交修订版4”(我当前正在修订版4)
那么我错在哪里了?
3个回答

6
不,那不是创建分支的方法。首先在SVN仓库中复制主干(分支就是这个复件):
svn copy http://the.url/theProject/trunk http://the.url/theProject/branches/my_new_branch -m "created new branch"

然后,你可以将当前的工作副本切换到这个新分支(但是你应该将目录重命名为除trunk之外的其他名称,因为会让人感到困惑),或者如果你想在本地拥有主干和分支,则可以将分支检出到另一个位置。


对于我电脑上的本地代码库,我需要像你建议的那样使用“http”吗? - Anthony
1
你使用与所有其他命令相同的协议。它可以是 file://http://https:// 或者 svn://。这完全取决于你如何安装 SVN。如果你没有任何 SVN 服务器,那么就是 file:// - JB Nizet
我在输入以下命令后一直收到错误信息“svn: Source and dest appear not to be in the same repository (src: 'file:///svn/repo'; dst 'file://SVN_WORK_COPY/repo/branches/my_code_branch')": svn copy file:///svn/repo file:///SVN_WORK_COPY/repo/branches/my_code_branch -m "My first branch"。我也尝试了您建议的“file://”,但是我仍然收到相同的错误。 - Anthony
1
请重新阅读我的回答。这两个URL都是存储库中的URL。第一个是存储库中主干的URL。第二个是存储库中分支的URL。 - JB Nizet
非常感谢您的帮助JB Nizet!它起作用了:svn copy file:///svn/repo/trunk file:///svn/repo/branches/my_code_branch -m "First Branch" . 我收到了“提交修订版5”的消息。 - Anthony
那么,我不能从非主干目录创建分支吗?例如,在这里,“主干”下存储了许多不同的项目(虽然在某种程度上相关,但是不同),我只需要分支其中一个。 - Hi-Angel

2

尝试:

svn copy -m "creating" http://10.4.55.7/svn/repos/myproject/trunk http://10.4.55.7/svn/repos/myproject/branch/sss

请注意,-m "creating" 可以放在行的末尾。

1

使用此命令,消息应该用单引号括起来。

svn copy https://example.com/svn/repo/trunk https://example.com/svn/repo/branches/new_branch -m 'creating new branch'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接