【问题标题】:Publish code from private svn to git/github将代码从私有 svn 发布到 git/github
【发布时间】:2014-10-03 22:20:21
【问题描述】:

我目前正在开发一个想要发布到 github 的 android 应用程序。由于我的所有代码都在私有 svn 中,我正在寻找实现以下目标的可能性:

该应用包含一些我不允许发布但我在 Playstore 中发布的实际应用所需要的资产。该应用程序包含一些示例数据,用于向用户展示如何构建自己的资产。

因此,我需要一种方法将应用程序的一部分仅发布到 github,但将完整的应用程序保留在我们的本地 svn 中。我只需要发布主干。

我想过这样的事情(非常抽象):

  • 使用资产创建一个 .gitignore 文件
  • 使用 git svn 在我的服务器上创建一个 git 存储库
    • 将 github 添加为远程
  • 向 svn 添加一个提交钩子
    • git svn clone $LASTREVISION -s https://my.local.svn/app
    • git remote add myGithubRemote git://github.com/foo/bar.git
    • git push myGithubRemote master

但坦率地说,我不确定这是否真的有效,或者是否会有任何问题。

我将不胜感激任何有用的想法或 cmets :)

非常感谢您的宝贵时间。

【问题讨论】:

    标签: git svn github


    【解决方案1】:

    您的方法很好,使用 .gitignore 来“隐藏”内容。

    我还会查看子模块 - 用它来存储您的私人数据。 将您所有的私有数据放在一个私有文件夹中,将此文件夹设置为子模块,并且子模块的位置在您的私有网络中,因此没有人可以获取它。

    http://git-scm.com/book/en/Git-Tools-Submodules

    【讨论】:

    • 我认为这不能解决我的问题,但谢谢;)
    【解决方案2】:

    建议

    听起来您使用 git 不是为了版本控制,而是为了发布部分代码库供其他人构建。

    与其使用 git-svn,不如为此创建一个单独的存储库,然后复制粘贴快照或在 svn 存储库中创建 git 存储库。

    原因是 git-svn 更多的是用于与 svn 共享提交历史,而不是用于发布部分 repo。

    你可以创建一个 SVN 钩子并让它自动发布部分 git repo,但使用真正的 git 命令而不是 git svn 命令。

    记得在创建 repo 之前先设置你的 .gitattributes 和 .gitignore 文件,因为 git 的历史最好被认为是不可变的。

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 2012-05-07
      • 1970-01-01
      • 2022-12-06
      • 2017-12-31
      • 2016-02-19
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多