Dev bir makinenin dosyayı çekmesini istediğim bir dosyam var, ama dağıtım sunucusunun dosyayı çekmemesini istiyorum (dev makinelerinin sahip olmadığı özel modları var) . Bu mümkün mü, yoksa sadece bir hg çekme yapmak yerine özel bir sunucuya itme çözümüm mü?Koşullu Mercurial Yoksay Dosya
cevap
aşağıdakileri yapmanız olacaktır Bunu yapmanın tipik bir yolu:
Sen deposundaki her dosyanın bir kopyasını saklamak ve bunları doğru şekilde adlandırın. Doğru dosyayı sağlamak için
web.server.config
web.dev.config
Sonra yerleşik bir adım eklersiniz: söz konusu dosya web.config
ise Örneğin, depo içerisindeki aşağıdaki iki kaydetmişizdir size Sonra
if "%COMPUTERNAME%" == "SERVER" copy web.server.config web.config
if not "%COMPUTERNAME%" == "SERVER" copy web.dev.config web.config
: gerçek web.config
dosyaya kopyalandı, bir toplu iş dosyası kullanabilirsiniz .hgignore yoluyla web.config kendisi görmezden olacaktır:
glob:web.config
Bu, sürüm kontrolü dışında çözülebilecek bir şey midir? Örneğin, dosyayı deponun tüm kopyalarına ekleyin, ancak kullanımını çevresel değişkenlerle veya benzerleriyle etkinleştirin veya devre dışı bırakın. Güncellemeden sonra eklenti/kaldır/yama dosyaları gibi şeyler yapmak için kötü hack kullanmıyorsanız, bu çoğu sürüm kontrol sistemlerinin işlemek üzere oluşturulduğu bir şey gibi gelmiyor.
Bir seçenek veya depoda dahil edilemedi olabilir dağıtım sunucusu için özel hgignore dosyası oluşturmaktır. Ardından sunucunun hgrc dosyasında, ignore
değişkenine sahip özel hgignore dosyasının yolunu belirtin. Bu, dosya güncelleştirmelerinin dağıtım sunucusu tarafından yok sayılacağını, ancak geliştirme makineleri için her zamanki gibi güncelleştirilebilmesini sağlar.
Karlsen'in her zaman kullandığım cevabının bir çeşidi.
Projede /config
veya /etc
dizinine sahibim. ci_server.yaml
dev.yaml
- Sonra uygulamalar bunun üzerinde çalışan ediliyor konak bağlı olarak doğru config sembolik köprü ise
/etc/app.yaml
den çekin: Bu dizin genellikle gibi örnek yapılandırmaları içerecektir.Bunu yapmanın en iyi yolu, 'un olası bir hata vektörünü () ortadan kaldırdığı, varyant kod yollarının (yığın komut dosyası dalları) bulunmamasıdır. Bu, üretimde kullanılacak olan aynı kod yolunu kullanmanıza izin verir (geçersiz kılma dosyasını nereye arayacağınıza göre).
- 1. Mercurial: Dosyaları Genel Olarak Yoksay
- 2. Mercurial: hayır ~/.hgrc dosya
- 3. SCons Yoksay işlevi çalışmıyor
- 4. Mercurial Commit (TortoiseHG)
- 5. Mercurial
- 6. Mercurial
- 7. Mercurial
- 8. Bloklardaki Sorunları Yoksay
- 9. db.cloneCollection yinelenen anahtarları yoksay
- 10. Yumuşak bağlantı Mercurial
- 11. Mercurial Uzatma
- 12. Svnstat Mercurial
- 13. mysqldump ile bir tabloyu yoksay?
- 14. hg - Yalnızca kök dizini yoksay.
- 15. Python raw_input yeni satırı yoksay
- 16. Kodlama ('ascii', 'yoksay') bir UnicodeDecodeError?
- 17. Yoksay Jackson polimorfik eşlem eşlemesi
- 18. Dizeler java'daki kaçış dizilerini yoksay?
- 19. Mercurial dizin yapısını değiştirme
- 20. Koşullu koşullu hata
- 21. Mercurial dosyalar oluşturduğunda varsayılan izinler
- 22. Hosting IISur üzerinde Mercurial
- 23. Bu Mercurial ihtilafı nasıl çözülür?
- 24. Küçük, geçici şubesi Mercurial
- 25. mercurial: branşta çakışmalar var
- 26. Mercurial Queues: yamaları birleştiriyor
- 27. Uzaktan kumandalı Mercurial deposu
- 28. Mercurial OS X eklentisi
- 29. Mercurial ve Notepad ++ Entegrasyonu
- 30. Mercurial otomatik dağıtım
Katılıyorum, ancak bu dosya hem sunucuda hem de dev makinelerde gereklidir. Web URL'leri/db bağlantı dizeleri/etc yollarına sahip bir ayar dosyasıdır ve bu değerler sunucuda dev makinelerinden farklıdır. – Jan
Sık sık değişiyorlar mı? –
çok sık değil. – Jan