簡體   English   中英

我可以(也應該)在GitHub上的存儲庫之間合並嗎?

[英]Can - and should I - merge between repositories on GitHub?

我在一個擁有10多年歷史的相當老的存儲庫中有一個嵌入式C項目。 現在,我需要將整個項目移植到新平台,不同的CPU,一些不同的API。 仍然需要支持舊平台的錯誤修正和一些次要的新功能,這意味着偶爾會有新的代碼和錯誤修正,需要從新版本合並到舊版本中。

現在,我看到了兩種方法:

1)只需為舊平台創建分支“舊版”,在master上進行移植,然后將我需要從master合並到舊版的內容合並

2)簽出現有代碼,將其移植到新平台,然后從中創建一個新的存儲庫。 這意味着,我偶爾需要合並這兩個存儲庫之間的代碼,但是我有一個新的和新鮮的存儲庫,其中沒有10年的悠久歷史和50多個廢棄分支。

第二種方法是否可行,即是否可以在具有共同祖先的不同存儲庫之間合並(或選擇)?

如果是這樣,您會推薦哪種方式,為什么?

任何想法都受到高度贊賞!

編輯:選項2)的另一個原因是它會更簡單,因為我需要為新平台使用新的IDE,即我需要創建一個新項目並將代碼從舊項目復制到新項目中項目。 然后,我將不得不以某種方式解釋git,即我創建的這個項目是新的項目主,而無需從倉庫中撤出。

我處於同樣的情況:一個20年的C存儲庫必須在具有25年歷史的8位平台和非常新的ARM芯片上工作。 舊的C代碼帶有內聯匯編,因此我不得不將其全部考慮在內。 然后,我寫了一個實現了一些現代C功能的clang重寫程序,並用舊的C編譯器可以理解的術語重鑄了它們。 例如,內聯函數根據always-inline屬性進行了適當的擴展,而舊代碼以前為此使用了宏(ugh)。 它還發出了一些必要的內聯程序集,可解決舊編譯器中的錯誤。 因此,我建議您僅在熟悉基於clang的源到源重寫之后才這樣做:否則,很難編寫不會在現代編譯器上觸發百萬警告和風格建議的可讀代碼。 我可能會寫一個IR到C的后端,因為它將處理大多數原始編譯器無法處理的錯過的優化。

您可以保持新的github存儲庫緊湊且專注,而不會丟失歷史記錄,因為您可以在任意位置獲取/推送任意歷史記錄,孤立新的歷史記錄,並且如果發現需要從舊的歷史記錄中獲取某些東西,則可以從那里獲取它並瀏覽/ cherrypick /無論如何你內心的滿足 從私有實用程序倉庫中獲取實用程序代碼是一個方便的特技。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM