2009-12-06 32 views
14

Linux kullanarak yerleşik sistemler oluşturan bir şirket için çalışıyorum. Tarihsel olarak, çekirdek çalışmalarımızı depolamak için daima CVS kullandık. Bizim çekirdekleri koleksiyonu olma sonunda: Linux bit biz Linux uyarlamak için Kurumsal Linux çekirdeği geliştirmesi için Git iş akışı

  • Tescilli olmayan donanım sürücüleri
  • Rastgele yukky kesmek kullanmak için tescilli donanım için

    • Sürücüler
    • Rastgele düzeltmeler bizim uygulama

    Eski sürümlerimizden bazılarını daha yeni sürümlerde yeniden oluşturmak ve aynı zamanda arkaik CVS iş akışımızı değişikliklere dayalı bir şeye sabitlemek istediğimiz aşamadayız. Bariz seçim git.

    Mantıklı bir iş akışıyla gelmek için uğraşıyorum. CVS deposumuzu çekirdeklerimizden biri için ihraç ettim ve uygun temel Linus çekirdeğinin üstüne birtakım değişim koleksiyonlarım var. Buradan nereye giderim?

    Tüm geliştiricilerin değişiklik yapacağı merkezi bir depoya sahip olmak isterim. Değişim kümeleri koleksiyonumuzu yeni bir temel çekirdek revizyonuna taşımak için rebase kullanmak güvenli midir ve daha sonra gelişmemiz yeni merkez şubenin üzerinde gerçekleştirilmelidir mi?

    Yukarı akış için uygun olabilecek değişiklikleri kolayca ayırmamıza olanak tanıyan bir iş akışı elde etmek için bonus puanları. Her zaman küçük (veya küçük) genel olarak faydalı değişikliklerin bir koleksiyonunu iterek bıktım.

  • cevap

    8

    Rebase diyen itmek şartıyla, kişinin il teşkilatının içine integrating upstream branches için iyidir (yani il teşkilatının tarihçesi yeniden yazılmıştır beri) yerel dalı. Bakınız örneğin "git workflow and rebase vs merge questions". merge/cherry-pick için ilgili değişikliklerin yapılabilmesi için, geliştiricilerin Git deposunda her birine özel bir "kamu" dalı (yani, bastırılması amaçlanmıştır) tahsis edilmelidir.
    Potansiyel olarak, gerekiyorsa, birkaç çekirdek dalı bir arada bulunabilmekte, çekirdek sürümüne göre bir tane var olabilmektedir. Bir merkezi repo, daha sonra içine itilen tüm geliştirici dallarını entegre etmek (yani çekilmek) için ayarlanabilir. Birleştirme iş akışı ve yayın konuları hakkında daha fazla bilgi için, bkz. "git releases management" (http://support.microsoft.com/kb/91606302).

    İlgili konular