【问题标题】:git svn imported repository using svn branchesgit svn 使用 svn 分支导入存储库
【发布时间】:2010-08-24 17:40:45
【问题描述】:

我已经克隆了一个复制的 svn 存储库(svnsync 到本地文件系统)。所有分支等现在都可以在 git 中使用。 现在我想开始研究 svn 分支

git checkout remotes/B_XYZ

并通过 git 进行一些提交。 现在我想通过

更改为不同的SVN分支
git checkout remotes/B_ABC

并进行一些更改。

现在最后一个问题是:是否可以将我在分支(在 git 中)所做的更改提交回适当的分支上的原始 Subversion 存储库?

【问题讨论】:

    标签: svn git git-svn


    【解决方案1】:

    git svn dcommit 不适合你吗?

    【讨论】:

    • 但据我了解文档 git svn dcommit 将提交到我克隆的位置,这是我同步的本地存储库。但我想将更改提交到不同的存储库(例如svn.exz.de)?
    • 对不起,我一开始没看懂那部分。您可能可以手动添加一些遥控器,但对我来说,在单独的存储库中设置新的git svn 集成(实际上与真正的svn 存储库对话,而不是副本)会更容易,然后git cherry-pick改过来了。
    • 我使用了复制的 SVN 存储库,因为原始存储库当前已关闭。这就是使用复制的 SVN 存储库而不是原始存储库的原因。
    【解决方案2】:

    经过一些实验,我想出了如何提交到不是复制的新存储库。

    git svn dcommit --commit-url URL/branches/BRANCHNAME
    

    通过上面的命令,我可以将我在 git 中所做的更改提交到新的 svn 存储库中。

    【讨论】:

      【解决方案3】:

      如果您将SubGit 安装到您的 SVN 存储库并使用它而不是 git-svn 是可能的。它将为您创建一个纯 Git 存储库(不是 git-svn 存储库!),这样任何对它的推送都会导致 SVN 提交,反之亦然(由钩子触发)。任何新的分支推送都会在SVN中创建一个分支,任何标签推送都会创建一个标签。

      唯一的限制是您应该有权访问您的 SVN 存储库,但这似乎正是您的情况。

      为此运行

      $ subgit install path/to/svn/repostiory
      

      链接的 Git 存储库将位于 path/to/svn/repostiory/.git 中。

      【讨论】:

        猜你喜欢
        • 2013-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        相关资源
        最近更新 更多