Yanıtlar:
Meta veriler kaynak kontrolünde yönetilmemelidir. Bunlar çoğunlukla çalışma alanınızla ilgili veriler içerir .
Tek istisna .launch
XML dosyalarıdır (başlatıcı tanımı).
İçinde bulunurlar
[eclipse-workspace]\.metadata\.plugins\org.eclipse.debug.core\.launches
Ve bunlar proje dizininize kopyalanmalıdır: Projeniz yenilendiğinde, bu yapılandırmalar "Yapılandırmayı çalıştır" iletişim kutusunda görüntülenir.
Bu şekilde, bu başlatma parametresi dosyaları da SCM'ye yönetilebilir.
(Uyarı: Do seçeneği işaretini "ilişkili kaynak silinir Sil konfigürasyonları" in Çalıştır / başlatma / Başlatma Yapılandırma tercihi paneline: Bu yaygındır geri tekrar içe amacıyla bir proje yumuşak silme - bir yeniden başlatma zorlamak için tutulma meta verileri. Ancak bu seçenek işaretlenirse ayrıntılı başlatma parametrelerinizi kaldıracaktır!)
project-dir/.project
project-dir/.classpath
project-dir/.settings/*
senin SCM (özellikle olmalı .project
ve .classpath
uygun Eclipse belgelerinde ).
Amaç, herkesin SCM çalışma alanını kontrol edebilir / güncelleyebilir ve Eclipse projesini Eclipse çalışma alanına aktarabilir.
Bunun için bağlantılı kaynakları kullanarak .classpath dosyanızda yalnızca göreli yolları kullanmak istersiniz .
Not: project-dir
eclipse çalışma alanının altında oluşturulan bir dizine değil, "harici" bir proje dizinine başvurmak daha iyidir . Bu şekilde, iki kavram (tutulma çalışma alanı ve SCM çalışma alanı) açıkça ayrılır.
Gibi ipsquiggle yorumunda bahseder ve ima gibi eski bir cevap olarak, aslında fırlatma yapılandırmasını kaydedebilirsiniz dosyayı paylaşılan proje dizininde doğrudan. Tüm başlatma yapılandırması daha sonra diğer proje dosyaları gibi sürümlendirilebilir.
(Blog gönderisinden İpucu: KD'den Başlatma Yapılandırmaları Oluşturma ve Paylaşma )
.project
yalnızca çalışma alanınız için yok sayılmasını sağlayın. Ancak sadece Eclipse çalışma alanlarına hızlı bir şekilde içe aktarabilecekleri ortak Eclipse proje tanımının diğer tüm kullanıcılarını mahrum bırakmayın, çünkü sadece o andaki ihtiyacınıza uygun bir ekstra tanımınız var.
Şu anda kaynak kontrolü altında .project ve .cproject dosyaları bulunan bir proje üzerinde çalışıyorum. Fikir, kütüphane yolları ve bağlantı direktifleriyle ilgili ayarların ekip boyunca yayılmasıydı.
Uygulamada çok iyi çalışmadı, birleşmeler hemen hemen her zaman tutulmanın dışında dekondanse edilmesi gereken çatışan bir duruma geri döndü ve daha sonra proje değişikliklerin yürürlüğe girmesi için kapatıldı ve yeniden açıldı.
Onları kaynak kontrolünde tutmanızı tavsiye etmem.
CDT yapılandırma dosyalarının kaynak kontrolü dostu olmadığı hiçbir şeye değmez . .Cproject dosyaları için çok sık değişen ve çakışmalara neden olan bir hata var, bkz. CDt-proje dosyalarını depoda paylaşma her zaman çakışmalara neden oluyor .
Maven kullananlar gibi bazı projeler POM'lara dayalı .project dosyaları oluşturmayı sever.
Bununla birlikte, --metadata kaynak kontrolünde OLMAMALIDIR dedi. Projeniz, standartları nasıl yönetmeyi planladığınıza bağlı olarak projectdir / .settings'in yapılıp yapılmayacağına dair bir belirleme yapmak zorunda kalacaktır. Geliştiricilerinizin ortamını standarda göre kurmaları için dürüstçe güvenebilirseniz ve herhangi bir proje için özel bir şey özelleştirmek zorunda kalmazsanız, onları yerleştirmeniz gerekmez. Ben, her projeyi özel olarak yapılandırmanızı öneririm . Bu, geliştiricilerin varsayılan ayarları ileri ve geri değiştirmek zorunda kalmadan aynı çalışma alanındaki birden çok projenin çalışması üzerinde çalışmasına olanak tanır ve ayarları çok açık hale getirir ve varsayılan ayarlarının proje standartlarına uygun olmasını geçersiz kılar.
Sadece zor kısmı hepsinin senkronize kalmasını sağlamaktır. Ancak çoğu durumda .settings dosyalarını projeden projeye kopyalayabilirsiniz. Özellikle kaynak kontrolünde istemediğiniz herhangi bir şey varsa, SCM'niz destekliyorsa, svn: ignore ayarını eşdeğer yapın.
.Classpath dosyası el ile ayarlamak çok iş olabilir ve yeni geliştiricilerin projeye girmek için zor olacağından scm'yi kontrol etmek için kesinlikle iyi bir adaydır. Diğer kaynaklardan oluşturulabileceği doğrudur, bu durumda diğer kaynağı kontrol edersiniz.
.Settings'e gelince, ayarlara bağlıdır. Bu gri bir alandır, ancak bazı ayarlar neredeyse zorunludur ve bir projeyi kontrol etmek, Eclipse'e aktarmak ve her şeyin hazır ve iyi gitmesini sağlamak uygundur.
Bu nedenle projemizde CVS.settings adlı .settings klasörünün bir kopyasını tutuyoruz ve .settings'e kopyalamak için bir karınca görevimiz var. Projeyi CVS'den aldığınızda, varsayılan ayarları yeni .settings klasörüne kopyalamak için 'eclipsify' ant görevini çağırırsınız. Projede geliştiren herkesin ihtiyaç duyduğu ayarları yapılandırdığınızda, bunları tekrar CVS.settings klasöründe birleştirir ve CVS'ye taahhüt edersiniz. Bu şekilde ayarları SCM'ye kaydetmek bilinçli bir işlem haline gelir. Devs, zaman zaman büyük değişiklikler kontrol edildiğinde bu ayarları .settings klasörlerinde birleştirmeyi gerektirir. Ancak şaşırtıcı derecede iyi çalışan basit bir sistemdir.
Hiçbirini söylemem. Büyük olasılıkla sadece iş istasyonunuzla ilgili bilgiler içerirler (kütüphanelerin ve hepsinin yollarını düşünüyorum). Ayrıca ekibinizdeki bir kişi Eclipse kullanmıyorsa?
Düşünmek:
.classpath
.project
.launch
Projeye bağlı yolları kullanmaya devam ettiğiniz sürece bunlar sürüm kontrolünde olmalıdır. Bu, diğer geliştiricilerin projeyi kontrol etmelerine ve diğer geliştiricilerin de yaşadığı tüm kurulum acılarından geçmek zorunda kalmadan çalışmaya başlamasına izin verir.
Eclipse geliştiricilerinin tüm çalışma alanını kontrol edebilmesi ve tüm doğru projelerle önceden yapılandırılmasını sağlamak için .metadata'yı sürüm kontrolüne dahil etmek cazip gelebilir, ancak herhangi bir zamanda üzerinde çalıştığı birçok kullanıcıya özel bilgi içerir, değiştirmek, bu yüzden .metadata DAHİL DEĞİL tavsiye ederim. Mevcut tüm Eclipse projelerini içe aktararak yerel bir çalışma alanı oluşturmak kolaydır.
Yeni meslektaşlar (ve ben) için tutulma çalışma alanı ayarlarını yapılandırmak için çok fazla zaman harcadım. Sonunda yaptığım şey, kendi .metadata'mı yeni geliştirici makinesine kopyalamaktı.
Eğer bir takım üzerinde çalışıyorsanız, bence aşağıdakiler sürüm kontrolü altında tutmak için çok iyi adaylardır:
common
sekmede öğesini seçinSave as > shared file
. Bu doğrudan proje klasörüne düşer, böylece projenin geri kalanıyla SCM olabilir.