【问题标题】:Importing non standard layout svn into git将非标准布局svn导入git
【发布时间】:2012-05-21 18:46:17
【问题描述】:

我的硬盘上有一个本地 svn 存储库,其目录结构如下:

[root]
Project1/
Project2/
Project3/
Project4/

正如您所注意到的,这根本不是标准的 SVN 布局。

现在我想创建一个新的 git repo 来导入所有这些项目。除非所有这些项目都在单个文件夹中,否则我不介意更改目录结构。

我已经安装了 TortoiseSVN 和 TortoiseGit。

我已经尝试过,但我无法弄清楚这些的内部工作原理,或者我对这个太新了。

请帮帮我。

谢谢,

【问题讨论】:

    标签: git svn layout import git-svn


    【解决方案1】:

    我认为您不应该将不同的项目混合到一个 Git 存储库中。我的建议是为每个项目创建一个 Git 存储库。与 SVN 相比,Git 不允许子树提交和更新。将所有这些项目放在一个存储库中会使 git push/pull/merge 工作流程有点尴尬。

    假设您正在处理项目 1。您很高兴地添加和提交内容。现在你想推送到服务器,但你不能,因为同事已经推送了对项目 2 的修改。这对我来说没有意义。

    如果您希望将所有 4 个项目合并到一个主项目中,您仍然可以创建一个新的 Git 存储库并将这四个项目添加为 submodules

    要从一个项目创建 Git 存储库,您只需 git svn clone SVN_REPO。我建议使用git svn show-ignore >>.gitignore 将 SVN 忽略提取到 gitignores 文件中。然后创建主项目并使用git submodule add 添加您的项目。

    【讨论】:

    • 嗨,我知道它并不好,但我已经使用了好几个月了,不能回头改变结构。有没有这样的方法可以让我保留提交历史并将其迁移到 git repo 中?
    【解决方案2】:

    我无法找到任何可行的解决方案。

    我只是在一个空的 git repo 中导出了所有内容并将其推送过来。丢失我所有的修订历史记录。

    无论如何,谢谢大家。我希望有人能够解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      相关资源
      最近更新 更多