Git kullanarak bir web uygulamasının birden çok sürümünü yönetme


12

Hepsi aynı tabana sahip bir uygulama ailemiz var. Şimdiye kadar bu tabanı geliştirdim ve Git iş akışı çok basitti:

  • Geliştirme developdalda yapılır
  • name-of-the-featureŞubede yeni özellikler geliştirildi
  • Bültenler release-**şubede yapılır

Şimdiye kadar, kod ailenin her uygulaması için aynıydı. Diyelim ki paylaştıkları üs şimdi tamamlandı ve bundan sonra kod her uygulama için farklı olacak.

Git ve aynı tabana sahip bu çoklu uygulamalarla nasıl başa çıkacağımdan emin değilim .

  • Her birinin kendi git projesi olmalı mı ?
  • Aynı projede olmalılar mı, ama her biri kendi dalında mı olmalı ?

Mesele şu: Onları ayrı projelere koyarsam , uygulamanın tabanında yapılan her değişiklik , uygulamaların her birinde tekrarlanır. Git'e çok aşina değilim , ancak her projeyi bir şubede saklarsam, temel değişikliği her uygulama ile birleştirmek mümkün olacak mı?

Kimse böyle bir durum yaşadı mı? Nasıl ilerleyeceğimi bilmiyorum.

Teşekkürler!

REDAKTE dediğimde sürüm ben versiyon numaraları gibi istememiştim. Aslında aynı tabanı paylaşan farklı uygulamalardır.

Yanıtlar:


7

Temel uygulamayı kendi havuzunda bırakın ve bu depodan derlediğiniz kavanoza bağlı yeni projeler oluşturun.

Git dalları birden fazla uygulama için değildir. Git, her proje veya ilgili bir proje ailesi için bir depo kullanmayı tercih eder. Şubeler ayrı ayrı özellikler geliştirebilmeniz için oradadır, böylece depodan ayrılmadan tamamen yeni bir proje oluşturabilirsiniz.

Kodu paylaşan birden fazla uygulamanız olmasını istemezsiniz - bu bir bakım kabusu. Her birini merkezi repolarınızda bir şube olarak geliştirmenizi önerirseniz , değişiklikleri her uygulamaya yaymak için çok fazla birleştirme işleminiz olacaktır. Tek, ayrı bir kütüphaneye güvenmek ve proje bağımlılıklarını çekmek için Apache Maven gibi bir şeyi kullanmak çok daha kolaydır .


Paylaşılan kodun çoğu GWT kodudur (görünümler, hizmetler vb.). Bir kavanoz kütüphanesine çıkarmak mümkün mü? Yoksa sadece sunucu tarafı java kodu mümkün mü?
João Daniel

Görünüm öğeleri bir kavanoza çıkarılabilir, ancak muhtemelen çıkarılamaz. Örneğin, javascript her sayfadan tek bir dosyaya çıkarılabilir ve daha sonra her projeye dahil edilebilir. JSP ortak kodu JSP etiketlerine çıkarılmalıdır. Muhtemelen tüm sayfaları çekmenize gerek yoktur, ancak projenizi bilmiyorum, bu yüzden yanlış olabilirim.
Michael K

bu yaklaşım hakkında ne düşünüyorsun: stackoverflow.com/a/2540471/2615737 ? makul bir dikiş ...
Francisco Corrales Morales

Aynı kullanım durumu olduğunu düşünmüyorum. Bu cevap, aynı uygulamanın biraz farklı olan iki versiyonu ile ilgilenirken, bu soru tamamen farklı uygulamalar olarak gördüğüm şeyle ilgilidir. Hala "biraz farklı" durumda bile şubeye sahip olmamayı tercih ederim; ancak, herhangi bir görünüm xmls varsa Android'de kitaplıkları ayırmak için işlevselliği etkisiz kılmak zordur. Görünüşe göre bu cevaplayıcı durumunun zahmetine değeceğini düşünmüyordu.
Michael K

6

Uygulamalar tabanı kendisi değiştirmezse, tabanı kendi havuzunda bırakmayı düşünün. Ardından her bir uygulama için yeni bir havuz oluşturun ve tabanı git alt modülü olarak ekleyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.