Git Server mantığını anlayabilmek için en önemli konulardan bir tanesi three-tree architecture'dir. Bu makalede bu yapıyı anlayabilmek için gerekli olan kavramlar repository, staging index ve working tanımlarının ne olduğuna bakacağız. Bu tanımlardan git server komutlarının three-tree yapısı üzerinde nasıl çalıştığına bakacağız.
Konuyu anlayabilmek açısında öncelikle diğer klasik versiyon kontrol sistemlerinden olan yapıya bakalım. Bu versyion kontrol sistemlerinin çoğunda two-tree yapısı mevcuttur. Yani repository ve working copy'ler. Git Server mantığında ise araya staging index diye bir kavram getirerek bir anlamda sizin için ve kodlarınızı değiştirmeden önce kontrol mekanizması sağlar.
Staging index veya staging area alanını geçici hafıza alanı olarak da düşünebilirsiniz. Working directory'de çalışıyorsunuz. Belirli değişiklikler yaptıktan sonra bunu repository'ye commit etmeniz lazım. Diğer versiyon kontrol sistemlerinde tek işlemle bu yapılırken Git Server araya bir katman koyar ve yapılan değişiklikleri Repository'ye kaydetmeden önce bir onay mekanizması oluşturmuş olur. Bu yapıyı anlayabilmek açısından resmin çok faydalı olduğunu düşündüğüm için sizinle paylaşıyorum. Konuyu kısa özetle anlatacak olursak three-tree yapısında 3 katman vardır. Bu katmanlar resimde de görüldüğü gibi repository, staging index ve working copy'dir.
Bu aslında sizin çalışma dosyalarınızdır. Bunlara katman dememin asıl nedeni ise değişiklikleri kaydederken yapılan işlemleri açıklayabilmektir. İşlemlerinizi working copy'de yaparsınız. Bu sizin projenizin normal dosya halidir. Değişiklikler yaptınız ve projeyi geliştirdikten sonra bu değişiklikleri muhakkak ki repository'ye kaydetmeniz gerekiyor. Bu kaydetme işlemini git iki kısma böler. Çokça kullandığınız git add komutu da bu işi yapar ve yaptığınız değişiklikleri staging index alanına kaydeder. Git Add işleminden sonra Commit komutu kullanılır ve işlemler kaydedilir.
Son olarak konuyu toparlayacak olursak Git Server'da Three-Three Architecture veya üçlü ağaç yapısı değişikliklerin kaydedilmesi sırasında geçilen katmanları ifade eder. Diğer versiyon yönetim sistemlerinde genelde two-tree architecture kullanılsa da Git Server yapılan değişiklikler üzerinde extra kontrol sağlamak amacıyla Staging Index kavramını geliştirmiştir. Özetle Three-three kavramı repository, staging index ve working copy arasındaki bağı ifade etmek için kullanılır.
Konu ile alakalı sorularınız olursa lütfen sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım...
Son olarak konuyu toparlayacak olursak Git Server'da Three-Three Architecture veya üçlü ağaç yapısı değişikliklerin kaydedilmesi sırasında geçilen katmanları ifade eder. Diğer versiyon yönetim sistemlerinde genelde two-tree architecture kullanılsa da Git Server yapılan değişiklikler üzerinde extra kontrol sağlamak amacıyla Staging Index kavramını geliştirmiştir. Özetle Three-three kavramı repository, staging index ve working copy arasındaki bağı ifade etmek için kullanılır.
Konu ile alakalı sorularınız olursa lütfen sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım...
Yorumlar
Yorum Gönder