【问题标题】:Simple "Get all new commits from SVN and put them into a true GIT, to 'svn' branch" setup?简单的“从 SVN 获取所有新提交并将它们放入真正的 GIT,到 'svn' 分支”设置?
【发布时间】:2012-07-29 21:33:31
【问题描述】:

这是我第一次尝试制作 git-svn 项目。我有可以直接访问的 Debian 服务器。

信息: - 本地 SVN 是一个分支,我不会进行任何本地或远程提交

我要归档的内容:

  1. 创建真正的 GIT 本地存储库。这很简单:-]

  2. 创建http://miranda.googlecode.com/svn/trunk/(一个分支)的SVN本地副本(或git-svn repo?我不知道在这种情况下女巫会更好),然后通过一些检测远程的脚本自动获取所有更改更改并在之后运行“svn update”。

  3. 不知何故,从本地 SVN 存储库到本地 GIT 存储库和名为“Miranda-svn”的分支一个接一个地获取所有“更改”(文件和提交消息)。因此,当您查看此特定分支的提交/日志时,您将看到与 http://code.google.com/p/miranda/source/list 相同的消息。

  4. 将“Miranda-svn”分支推送到远程github.com账号,项目名称“Test”,分支名称“Miranda-svn”

  5. 将分支“Miranda-svn”与“master”合并

有人可以帮助我吗?有这种设置的例子吗?

【问题讨论】:

    标签: git svn github git-svn


    【解决方案1】:

    这对于 Git 来说非常简单。

    首先用 git svn “克隆”远程仓库

    git svn init --trunk=trunk http://miranda.googlecode.com/svn miranda
    cd miranda
    git svn fetch
    git checkout -b Miranda-svn remotes/trunk 
    

    注意:您可能希望通过使用-r start:end 开关来限制获取的修订数量

    然后为github添加一个新的远程

    git remote add origin git@github.com:myuser/test.git
    

    最后将更改推送到 github 远程

    git push origin Miranda-svn
    

    使用来自 SVN 的内容更新 Git 分支:

    git checkout Miranda-svn # Just to be sure that we are on the correct branch
    git svn rebase
    git push origin Miranda-svn
    

    将 SVN 更改合并到另一个 Git 分支:

    git checkout master # Or whatever branch you want
    git merge --no-ff Miranda-svn
    

    注意!由于 SVN 具有线性历史,并且“svn”分支将根据每个“拉动”重新建立,您不想使用此设置将任何内容提交到 Miranda-svn 分支。

    【讨论】:

    • 但是如何在 "git svn clone miranda.googlecode.com/svn/trunkmiranda" 之后获得进一步的更新/提交?在我看来它是一次性操作,我想要从 svn repo 到 git/Test/Miranda-svn 分支的不断更新。
    • git svn dcommit 和 git svn rebase
    • 根据要求更新了将“master”分支重命名为 Miranda-svn 的答案
    • git svn dcommit - 我不想对本地/远程 SVN 存储库进行任何提交。 git svn rebase - 它会有所有提交消息吗?或者当远程 SVN repo 将获得新的提交时,是否需要每次运行此命令?
    • 是的,每次您想从 SVN 存储库中获取更改时都需要运行该命令。新修订的数量无关紧要,git-svn 将获取它会找到的所有新修订。就像您在使用 SVN 时执行 svn update 一样。您还必须记住 SVN 具有线性历史,因此重新设置 SVN 分支是维护它的唯一选择。只要你不想从 Git 提交任何东西到 SVN,你应该没问题。
    猜你喜欢
    • 1970-01-01
    • 2017-10-11
    • 2014-10-29
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2012-06-28
    • 2015-09-17
    • 2011-07-07
    相关资源
    最近更新 更多