Bir projenin yerel versiyonunda yapılan ve revizyon kontrolünde en son doğruluk kaynağıyla uyuşmayan değişiklikler gönderilmeye çalışıldığında bir revizyon kontrolü çakışması meydana gelir.
Bu durum birden fazla nedenden kaynaklanabilir, ancak en yaygın nedeni, bir kişinin takım arkadaşının öncesinde değişiklik yapmış olduğu bir takım projesinin bir bölümünde değişiklik yapmasıdır. Değişikliklerin, önce işbirliğindeki diğer kişilerin değişiklikleri senkronize edilmeden gönderilmesi çakışmaya neden olur.
Takım arkadaşların ve senin için çakışmadan kaçınmanın en iyi yolu, otomatik kullanıma alma ve otomatik geri almayı etkin durumda tutmaktır. Proje çakışmalarını azaltmak ve revizyon kontrolünün nasıl çalıştığını daha iyi anlamak için revi̇zyon kontrolü örnek uygulamalarını kullan.
Otomatik Kullanıma Alma ve Otomatik Geri Alma ile Çakışma Önleme Uyarıları
Unreal Revision Control, bir proje revizyon kontrolü kullanılarak oluşturulduğunda, varsayılan olarak otomatik kullanıma alma ve otomatik geri almayı etkinleştirerek çoğu çatışmanın önlenmesine yardımcı olur.
Bu özellikler, bir değişiklik yapıldığında öğeyi otomatik olarak kullanıma almaya çalışmak ve kullanıma alma başarısız olursa değişikliği otomatik olarak geri almak üzere birlikte çalışır. Sistem, çakışma olmasını önlemek için bu durumun meydana geldiğine ilişkin bir uyarı tetikler.
Bu uyarılar öncelikle aşağıdaki iki senaryoda tetiklenir:
Bir takım arkadaşı tarafından kullanıma alınan öğelerde değişiklik yapmaya çalışmak
Bir takım arkadaşı tarafından kullanıma alınmış durumda olan bir öğede değişiklik yapmaya çalışırsan, takım arkadaşının özel olarak kullanıma aldığı öğelerde değişiklik yapmanı önlemek için değişiklikler otomatik olarak geri alınır.
Çakışma zaten önlenmiş olduğu için bu durumda herhangi bir işlem yapman gerekmez, ancak söz konusu öğede değişiklik yapman gerekirse bunun en iyi yolu takım arkadaşınla koordineli olarak öğeyi tekrar girmen, onun en son değişikliklerini senkronize etmen ve ardından kendi değişikliklerini yapmandır.
Bu durum ilk kez meydana geldiğinde, hangi değişikliklerinin geri alındığını ve öğenin kimin kullanımında olduğunu bildiren aşağıdaki uyarı moduyla karşılaşırsın. Bu uyarıyı her seferinde görmek istiyorsan, "Bir daha gösterme" onay kutusunun işaretini kaldır.
Böylece, bu durum her meydana geldiğinde bir kutlama bildirimi alırsın.
En son sürümle senkronize edilmemiş öğelerde değişiklik yapmaya çalışmak
Henüz son sürümle senkronize etmediğin bir öğede değişiklik yapmaya çalışırsan, daha sonra giremeyeceğin değişiklikler yapmanı önlemek için değişiklikler otomatik olarak geri alınır.
Bu durumda en son sürümle senkronize etmen yeterli, sonrasında değişikliklerini yapmaya devam edebilirsin.
Bu durum ilk kez meydana geldiğinde hangi değişikliklerinin geri alındığını bildiren aşağıdaki uyarı moduyla karşılaşırsın. Bu uyarıyı her seferinde görmek istiyorsan, "Bir daha gösterme" onay kutusunun işaretini kaldır.
Böylece, bu durum her meydana geldiğinde bir kutlama bildirimi alırsın.
Çakışma Hata Mesajları
Çakışmalar en çok Otomatik Kullanıma Alma ve Otomatik Geri Alma kapalıyken görülür. Unreal Revision Control’de çakışmalara neden olan durumlar şunları içerir:
En son sürümle sık sık senkronize etmeme
Önce öğeyi kullanıma almadan değişiklik yapma
Çevrimdışı çalışma
Aşağıdaki bölümlerde, karşılaşabileceğin çakışma hataları ve yaygın nedenleri açıklanıyor.
Son Hali Değil Çakışması
Çakışma türlerinden biri, başka biri tarafından senin en son senkronize ettiğinden daha yeni bir anlık görüntüde değiştirilip girişi yapılmış bir öğede değişiklik yapıp en son sürüme senkronize etmeye veya değişiklikleri girmeye çalıştığında meydana gelir.
Bu örnekte, öğenin eski bir sürümünde değişiklik yaptığın için çakışma olur.
Bu durumda, hangi öğelerin çakıştığını ve bunlarda senkronize etmen gereken en son değişiklikleri kimin yaptığını bildiren bir hata mesajı alırsın. Çakışmayı çözmek için yapabileceğin tek şey, en son değişiklikleri senkronize etmek ve kendi değişikliklerinin üzerine kaydetmektir.
En son sürümle senkronize edip üzerine kaydettikten sonra, değiştirmek istediğin öğeleri kullanıma alabilir ve ardından değişikliklerini uygulayıp girebilirsin.
Kullanıma Alınan Öğe Çakışmaları
Bir diğer çakışma türü, halen başka biri tarafından kullanıma alınmış durumda olan bir öğede değişiklik yapıp en son sürüme senkronize etmeye veya değişiklikleri girmeye çalıştığında meydana gelir.
Çakışma, bir takım arkadaşın tarafından özel olarak kullanıma alınmış olduğundan düzenleme yetkin olmayan bir öğede değişiklik yaptığın için oluşur.
Bu durumda, kullanıma almamış olduğun hangi öğelerde değişiklik yaptığını bildiren ve ekip arkadaşınla koordine olmaya yönelik talimatlar içeren bir hata mesajı alırsın.
Yaptığın değişikliği göz ardı etmek istersen çakışan öğelerdeki değişikliklerini revizyon kontrolü bağlam menüsü aracılığıyla geri alabilir ve Senkronizasyonu veya Girişi tekrar deneyebilirsin.
Yinelenen Öğe Çakışmaları
Üçüncü ve daha az rastlanan bir çakışma türü de, iki takım arkadaşının yanlışlıkla aynı ada ve dosya yoluna sahip öğeler oluşturması ve bu objeleri bağımsız olarak kaydetmeye ve girmeye çalışması halinde ortaya çıkabilir. İlk giriş yapan kişi başarılı olacak ve ikinci kişi bir hata mesajı alacaktır.
İkinci öğeyi yeniden adlandırmak, böyle bir durumda öğeyi silmeden yapılabilecek en iyi şeydir. Bir diğer alternatif, öğenin proje hiyerarşisindeki konumunu değiştirmek olabilir çünkü dosya yolu farklı olduğu sürece çakışma meydana gelmeyecektir.
Çevrimdışı çalışma
Bir UEFN projesindeki bazı işler çevrimdışı durumdayken de devam edebilir, ancak bu durum önerilmez. Çevrimdışı çalışmak, iş arkadaşlarınla çakışmalara yol açma riskini taşır çünkü öğeler internet bağlantısı olmadan kullanıma alınamaz ve iki kişi aynı anda aynı şey üzerinde çalışabilir.
Çevrimdışı çalışırsan şunları yapman önerilir:
Takım arkadaşlarınla ne üzerinde çalışmayı planladığını önceden paylaş ve mümkünse bağlantın kesilmeden önce öğeyi kullanıma al.
En kısa sürede yeniden internete bağlan, en son sürümle senkronize edip yaptığın değişiklikleri gir.