【问题标题】:Version control on an external project外部项目的版本控制
【发布时间】:2011-09-01 03:30:02
【问题描述】:

我正在开发一个巨大的开源项目(“项目”),我正在更改项目但没有提交权限。我正在寻找维护我自己的项目分支的策略。我正在考虑的一些问题:

  1. 鉴于我正在更改项目的源代码、添加新文件等,如何将我自己的工作放入版本控制系统中。
  2. 如何与项目保持同步,而不必一遍又一遍地手动合并我自己的更改。

我从来没有遇到过这种情况——我一直在某个版本控制系统中维护我的完整项目。我现在的计划是这样的:

  1. 在我的 SVN 中创建目录树,类似于项目中的目录树。
  2. 在我的 svn 中保留所有更改的文件(并且只有它们)。
  3. 每次我决定与项目的新基线同步时,我都会进行检查,将我的 svn 树合并到新版本中,测试,然后将我的更改提交到我的 svn 并与最新项目一起分发基线。

这里的问题是无穷无尽的。太多的手动步骤,随着时间的推移越来越多的工作,等等。正确的做法当然是成为原始项目的一部分,但由于各种原因,这似乎与现在完全无关,而且是不可能的。

想法?

【问题讨论】:

  • 项目使用什么版本控制系统?您对项目的源代码管理有读取权限吗?如果他们使用 svn、cvs、hg、git 或其他东西,如何处理会非常不同。
  • @Anders:他们有 git 和 svn。是的,我拥有 VCS 项目的读取权限。

标签: version-control


【解决方案1】:

我会为此使用 git 或 mercurial;只需将项目导入 git 或 mercurial,并将上游更改合并到项目中的一个分支,以便轻松合并到您的主干中。

如果上游项目有自己的仓库,那么导入就更容易了。 git 和 mercurial 都支持直接导入其他版本控制系统。我最近这样做是为了改编一个存在于 SVN 中的现有项目:https://github.com/mjpieters/rod.recipe.rabbitmq

请注意,该项目有一个“上游”分支。 particular project 在查看了 github.com 中的更改后,现在已经接受了我提出的更改。

这里有几个关于这个主题的问题:

使用 mercurial 创建类似的设置应该很简单。

【讨论】:

  • 听起来很棒。第三个问题特别说明了我的问题。谢谢!
【解决方案2】:

您可以使用 git 来维护本地系统上的源代码控制。事实上,Git 可用于维护几乎任何受版本控制的目录。不需要同步到任何东西,git在本地维护所有的变化。

如果您需要提交 SVN,请查看文档 http://git-scm.com/docs/git-svn

【讨论】:

    猜你喜欢
    • 2010-11-30
    • 2012-08-30
    • 2021-03-25
    • 1970-01-01
    • 2021-05-21
    • 2010-09-05
    • 1970-01-01
    • 2010-09-06
    • 2021-02-06
    相关资源
    最近更新 更多