在本地存储库上创建 SVN 分支

Posted

技术标签:

【中文标题】在本地存储库上创建 SVN 分支【英文标题】:Creating SVN Branch on Local Repository 【发布时间】:2012-07-10 20:59:46 【问题描述】:

我正在尝试在我的计算机上的本地存储库上创建一个 svn 分支。根据我对svn book 中所读内容的理解,我应该首先创建分支目录(使用 svn mkdir),然后从我的存储库复制到我的工作副本的分支目录中(这是正确的吗?)。

这里是我的存储库和工作目录的位置:

我的本​​地存储库:“SVN/repo”。 我的工作副本:“SVN_WORK_COPY/repo/trunk” 我的分支目的地:“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

我明白了:

一个 SVN_WORK_COPY/repo/branches/my_code_branch\trunk

我的文件(code.txt)在这个主干目录中。但是,我非常怀疑我是否正确创建了一个分支,因为

    不允许我创建消息(使用 -m) 我不想要“my_code_branch”目录中的“trunk”目录 我没有看到消息“已提交修订版 4”(我在修订版 4 目前)

那么我哪里做错了?

【问题讨论】:

【参考方案1】:

不,这不是您创建分支的方式。你先在 SVN repo 中制作一个主干的副本(分支就是这个副本):

svn copy http://the.url/theProject/trunk http://the.url/theProject/branches/my_new_branch -m "created new branch"

然后要么将当前工作副本切换到这个新分支(但你应该将目录重命名为除了主干之外的其他名称,因为这会造成混淆),或者,如果你想在本地拥有主干和分支,则签出分支到另一个位置。

【讨论】:

对于我计算机上的本地存储库,我是否按照您的建议使用“http”? 您使用与所有其他命令相同的协议。可能是file://http://https://svn://。这完全取决于您如何安装 SVN。如果您没有任何 SVN 服务器,则为 file:// 我不断收到错误消息“svn: Source 和 dest 似乎不在同一个存储库中 (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 "我的第一个分支"。我也按照你的建议尝试了“file://”,但我得到了同样的错误。 重新阅读我的答案。这两个 URL 都是存储库中的 URL。第一个是 repo 中主干的 URL。第二个是repo中分支的URL。 非常感谢您的帮助 JB Nizet!它工作: svn copy file:///svn/repo/trunk file:///svn/repo/branches/my_code_branch -m "First Branch" 。我收到消息“提交的修订版 5”【参考方案2】:

使用这个命令,消息应该用单引号引起来。

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

【讨论】:

【参考方案3】:

试试:

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"可以放在行尾。

【讨论】:

以上是关于在本地存储库上创建 SVN 分支的主要内容,如果未能解决你的问题,请参考以下文章

分叉存储库上的原始存储库问题

无法通过 file:// 签出本地 svn 存储库

在远程存储库上提交历史记录

如何将本地git存储库推送到svn

删除不再在远程存储库上的本地 git 标签

Git本地仓库的使用