2010-03-16 22 views
23

Farklı uzaktan kumandalar için farklı .gitignore dosyaları oluşturmanın basit bir yolu var mı? Bende hem Heroku hem de Github'a doğru itiraf ettiğim bir havuzum var. Heroku için database.yml dosyasına ihtiyacım var, ancak bazı bilgilerin Github'a aktarılmasını istemiyorum. Bu yüzden her bir uzaktan kumanda için farklı bir .gitignore dosyasına ihtiyacım var.Uzaktan özgü .gitignores kurulumunun bir yolu var mı?

Veritabanı.yml'ı göz ardı eden ve olmayan bir tane olmak üzere iki ayrı şubeye sahip olmayı denedim. Sorun şu ki, eroku şubesini kontrol ettiğimde ve github şubeme geri döndüğümde, database.yml dosyasının tamamı gitti.

Herhangi bir ipucu?

+0

FunkyMunky, sorununuz için iyi bir çözüm buldunuz mu? –

cevap

5

Heroku'nun gereksinimleri hakkında hiçbir şey bilmiyorum - umarım Adalet doğrudur ve basitçe sorunu önleyebilirsiniz. Eğer yapamazsanız ya da bir başkası bunu yapamazsa ...

Eğer iki modun aynanın olmasını istiyorsanız (aynı taahhütlere sahipseniz), tanım gereği o dosyalarda aynı dosyaların olması gerekir. . Yani, iki seçeneğiniz vardır: İhtiyaç duymasalar bile, tüm depolarda file-for-repo-B olmalıdır veya iki dallı biraz dağınık iş akışı kullanın: master ve for-repo-B. İki dal arasındaki tek fark, file-for-repo-B; Şube for-repo-B, her zaman master'u birleştirir (ama asla başka yoldan gitmez!). Artık sadece repo B'de kontrol edilen farklı bir şubeniz var ve her şey yolunda.

10

Veritabanı bilgilerini database.yml dizinine koymayın. Bunun yerine, Heroku ortam değişkenlerini kullanın.

+0

Bu kural sadece heroku değil, başka bir üretim ortamı için geçerlidir. –

1

Bir versionned olmalıdır:

bunu sadece değişkenler
  • database.yml ve
  • o database.yml dağıtıldığı uzak sunucuda göre doğru değerlere göre bu değişkenleri değiştirmek mümkün bir senaryo.

Sonra bir smudge attribute filter driver olarak komut dosyası kullan:

smudge content filter

sen kontrol (ve çalışan bir ağaç oluşturmak) bir uzak sunucuda olacak her zaman, komut dosyası çalıştırılır ve değişecek Buna göre değişkenler, size özel bir database.yml dosyası veriyor.
Uzaktan kumandanın bir tanesi bu database.yml dosyasına ihtiyaç duymuyorsa, hala orada olabilir, ancak bulama komut dosyası tarafından boşaltılabilir.

İlgili konular