【问题标题】:Creating SVN Branch on Local Repository在本地存储库上创建 SVN 分支
【发布时间】: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)在这个主干目录中。但是,我非常怀疑我是否正确创建了一个分支,因为

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

那么我哪里做错了?

【问题讨论】:

    标签: svn version-control


    【解决方案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"可以放在行尾。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多