2011-06-27 35 views
6

PHP'de, bir çerçeveye olan ihtiyacımla eşleşen kişisel bir ışık çerçevesi oluşturdum. SwiftMailer, Twig, Assetic, Facebook PHP api gibi farklı 3. parti kitaplıkları kullanıyorum ...Projenizde 3. kişi git depolarını nasıl yönetiyorsunuz? (örn. Twig/Assetic/..)

Bu kaynak kodlarını üçüncü taraf kitaplıklarından nasıl yönetiyorsunuz? Projenize bir alt modül olarak ekler misiniz ve en son sürümü almak için sadece bir çekme yapın mı? Yoksa kodu proje direktörünüze kopyalayıp güncellemeleri kendiniz mi yapıyorsunuz?

Çoğu kod depoları böyle yapılandırılmıştır:

  • docs
  • src
  • testler benim çerçeve dir Bu gibi görünüyor Yani

ve bize satıcı dirs altmodülün olarak uzak bir projeden:

  • docs
  • src
    • satıcı
      • Assetic (uzaktan repo klon)
      • src
      • ...
  • testler

bu mugitme yolu Ya da bunu yapmayı nasıl önerirsiniz? Bir capistrano dağıtımı sırasında, tüm alt modül depoları uzak sunuculardan çekilir.

Düzenleme: Çerçeveyi diğer projelerde alt modül olarak kullandığımı söylemeliyim. Bu nedenle, çerçeve bir projede bir alt modüldür ve çerçevenin kendisinde alt modüller de vardır ..

Teşekkürler!

cevap

0

Her projeyi separetaly yönetiyorum. Her proje klasörü, doğru derleme için tüm dosyaları içerebilir - bu nedenle, başvurulan tüm dosyalar "refs" dizinine dahil edilir. Bu durumda kolay inşa edilir: "src, & derleme" dizininin en son sürümünü edinin, derleme komut dosyasını çalıştırın. Çıkış "bin" dizinindedir.

"Refs" klasörü disk boyutunu tüketiyor, ancak proje sürümlerini düzeltme sürümleriyle (ve dalları) yönetmekten çok daha basit.

  • 3rdParty-Proje-A
  • 3rdParty-Proje-B
    • src // kaynak kodu & kaynaklar
    • hakemler // doğru sürümde başvurulan ikili
    • inşa // build komut
    • bin // yapılı ikili dosyalar & ilgili dosyalar
    • deploy // files deplo için kullanılan dosyalar y (kur.exe setup.msi, vs ...)
    • ... diğer klasör ...
  • myproject-A
  • myproject-B
    • src
    • ref 3rdParty-Proje-B
    • Projem-A'dan
      • 3rdParty-Proje-B // orada başvurulan dosyalar Projem-A
      • dosyaları orada başvurulan //
    • inşa
    • bin
    • dağıtmak
Genellikle src veya submodules tutan lib altında vendor klasör, ya üst düzey veya kullanabilir ve --recurse-submodules seçeneğini kullanın
1

çekerken, --recursive ve git submodule update ve git submodule status. Ben düşünün capistrano bu kullanım durumunu iyi bir şekilde ele alabilir, ancak emin olmak için yeterince tanıdık değilim.