2010-04-10 29 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

相關問題