2010-04-10 31 views
4

我需要一些意见。保留我自己的版本化应用程序

我正在使用构建以获取依赖关系等的Django项目... 我使用mercurial作为DVCS。

现在......我需要自定义的一个依赖,所以我可以做下列操作之一: (*的变化可能不适合所有的人有用。)

1-做的叉子(github,bitbucket等)中的项目维护我的版本,并获得(mercurial或git)配方的依赖关系。
2-克隆该项目,将其放入PYTHONPATH中,清除DVCS dirs并将其添加到我的项目版本中。所以每一个变化都是私密的。在这里,我需要从他们的DVCS中删除所有的信息。

任何其他你可以想到的。

我错过了什么?我太离谱了?

谢谢!

+1

看来在我们中间有一个病态的downvoter。我认为有某种批处理作业可以解决这个问题? – spender 2010-04-10 22:37:31

+4

不,但有几种方法可以解决downvotes。其中之一是提出更好的问题。 – 2010-04-10 22:39:30

+1

啊,是的,但它是非常反对SO的精神downvote没有评论。 “如果你看到错误的信息,就把它记下来,插入意见表明具体是错的。” – spender 2010-04-10 22:41:09

回答

1

埃斯特班,采取这些步骤:我会在mercurial说话,但这一切都可以在git中也。

  1. 克隆他们的项目
  2. 让你自己的项目subrepo的克隆你的项目

这使你世界上最好的。您可以编辑项目及其项目中的代码,而无需关注哪些代码,以及何时将代码中的更改提交到您的代码库,以及指向您项目克隆中新变更集的指针。然后,当你想更新他们项目的克隆时,你可以简单地就地完成并合并。

所以这几乎是你在'1'中所说的,但是没有必要做一个公共回购的叉子或主机。只需将他们的克隆编辑为项目的子布局,并且不要推送(由于您没有对其回购的写入权限,因此无论如何都不行)。

您的选择二的主要缺点是,当他们修改和改进您所依赖的项目时,您将很难完成他们的改进并将其与您的项目合并。

+0

不知道subrepos ...这是伟大的...谢谢! – 2010-04-11 00:54:39

1

那么,如果您使用的是DVCS,那么所有提交都保存为更改集,而且人们可以选择是否应用您的更改集。所以只要你评论这种变化,人们可以选择是否应用变化,因为他们认为合适。更重要的是,如果他们不想要这种改变,但希望进行其他改变,他们可以挑选。所以事实是,DVCS为你解决了这个问题(只要从你那里拿的人正在使用DVCS)。

就我个人而言,我推荐分叉,但正如我所说,这并不重要。

1

您以相当混乱的方式提出这个问题,我不知道您是否真正理解DVCS的要点。

DVCS的重点在于允许您拥有自己的私有存储库。除非需要,否则不需要在github或bitbucket或任何这些位置上发布您的存储库,但我肯定不会擦除DVCS信息。

如果上游项目进行了更改,除了您自己的私人更改之外,您还需要一段时间的合并,除非您保留DVCS信息。

使用Mercurial,您可以使用Mercurial subrepo feature在您的项目中包含一个项目。

+0

是的......我可能在这里错过了一些东西。我如何将项目添加到已有DVCS信息的我的仓库?谢谢 – 2010-04-10 23:08:24

+0

@Esteban,我修改了我的答案以包含对此评论的答案。 – Omnifarious 2010-04-11 00:51:49

相关问题