GIT Versiyon Kontrol Sistemi

Versiyon Kontrol Hakkında

Versiyon kontrol nedir ve neden bu kadar önemli? Versiyon kontrol bir sistemdeki değişiklikleri kaydeder. Zamanla siz bu dosya ve dosyalardaki değişiklikleri tekrar çağırabilirsiniz.

Eğer bir grafik veya web tasarımcısı iseniz her versiyonun bir resmini veya taslağını tutmak istersiniz. Bu durumda bir versiyon kontrol sistemi kullanmak çok akıllıca olur. Bu sayede istediğiniz dosyayı veya tüm sistemi önceki duruma döndürebilir, değişiklikleri karşılaştırabilir, son yaptığınız değişiklikte sorunun kaynağının nereden kaynaklandığını bulabilir, kim bir sorun çıkarmış, ne zaman çıkarmış tespbit edebilir ve daha fazlasını yapabilirsiniz.

1. Lokal Versiyon Kontrol Sistemleri

Bir çok kişi versiyon kontrolü olarak dosyaları başka bir dizine kopyalar. Bu yöntem çok yaygındır çünkü kolaydır. Fakat bu inanılmaz hata almaya eğilimli bir yöntemdir. Dizini unutmak, yanlış dosya, yanlış dizin üzerine yazmak muhtemel hatalardır.

Bu soruna çözüm olarak programcılar uzun zaman önce dosyalardaki değişiklikleri koruyan bir lokal versiyon kontrol sistemi geliştirdiler.

Daha popüler VCS araçlarından biri olan RCS, bugün hala bir çok bilgisayara dağıtılıyor. Popüler işletim sistemi Mac OS X’de Developer Tools(Geliştirici Araçları)’u yüklediğiniz zaman rcs komutunu içeriyor.

2. Merkezi Versiyon Kontrol Sistemleri

Sonraki büyük problem ise geliştiriciler diğer sistemler ile ortak proje geliştirme ihtiyacı ile karşılaştılar. Bu problemin çözümü için Merkezi Versiyon Kontrol Sistemleri (Centralized Version Control Systems-CVCSs) geliştirildi. CVS, Subversion ve perforce gibi bu sistemler bütün versiyonlu dosyaları içeren bir sunucuya ve istemci numaralarını kontrol eden merkeze sahip. Uzun yıllar boyunca bu versiyon kontrolü için standart olmuştur.

Bu sistem lokal kontrol sistemlerine göre pek çok avantaj sağlar. Örneğin, herkes projenin üzerinde ne yapıyor bilinir. Yöneticiler kimin ne yapabildiği üzerinde ince-ayar bir kontole sahiptir. Ve yönetim çok kolaydır.

Ancak bu sistemde bazı ciddi dezavantajlara sahiptir. Düşünün sunucu bir saat düştü, bu süre zarfında kimse değişikliklerini kaydedemez, çalışmalarını yapamaz. Merkezi Sunucu’nun belleği bozuldu ve yedekler alınmadı ise bütün herşeyi kaybedersiniz. Aynı sorunlar lokal versiyon kontrol sistemlerinde mevcut. Sonuçta eğer bir projeyi tek bir yerde tutuyorsanız projeyi kaybetme riski var.

3. Distributed Version Control Systems

Bu sistemde (Git, Mercurial, Bazaar veya Barcs gibi) istemci (geliştirici) dosyanın sadece son görümünü kontrol etmez. Projenin tüm dosyalarının bir kopyasına sahiptir. Bu sunucunun göçmesi gibi durumlarda herhangi bir istemci üzerindeki kopya sunucuya kopyalanır. Ve herhangi bir veri kaybı yaşanmamış olur. Yani bu sistemde aslında her bir bilgisayar aynı zamanda birer sunucudur.

Git’in Kısa Tarihi

Linux kernel oldukça geniş kapsamlı açık kaynak kodlu bir yazılım projesidir. Linux çekirdeğinin geliştirilme aşamasında çoğunda yamalar (patches) ve arşivlenmiş dosyalar büyük değişikliklere uğradı. 2002 yılında Linux çekirdek proje BitKeeper denilen özel bir DVCS sistemini kullanmaya başladı.

2005 yılında, Linux çekirdeği ve BitKeeper DVCS sistemini geliştiren ticari şirket arasındaki ilişki bozuldu ve aracın ücretsiz olması şirket tarafından iptal edildi. Linux geliştirici topluluğu (özellikle Linux’u bulan kişinin yani Linus Torvalds) BitKeeper kullanımından aldıkları dersle kendi araçlarını tasarladılar. Yeni sistemin amaçlarından bazıları şunlardı:

  • Hız
  • Basit tasarım
  • Doğrulsa olmayan geliştirme için güçlü destek (binlerce paralel dallar)
  • Tamamen dağıtılmış
  • Linux kernel gibi büyük projeleri (hız ve veri boyutu) verimli işlemek

2005 yılında doğduktan sonra Git gelişti ve kullanımı olgunlaştı. Git, büyük projeler için inanılmaz hızlı ve oldukça verimlidir. Git doğrusal olmayan (non-linear) geliştirme için olağanüstü dallanma (branch) sisteme sahiptir.

Git Temelleri

Bu Git’in mantığını kavramak için önemli bir bölüm. Çünkü Git’in nasıl çalıştığının temellerini anlarsanız, Git’i verimli kullanmak oldukça kolay olacak. Git öğrenirken aklınızdaki diğer Subversion ve Perforce gibi VCS sistemlerini bir kenara bırakın.

Enstantane, Fark Yok

Git ve diğer VCS sistemleri  arasındaki temel fark; Git veriyi düşünür. Konsept olarak diğer bir sistem depolarında bilgi değişiklileri dosya tabanlı bir listesini tutar. Bu sistemler (CVS, Subversion, Perforce, Bazaar…) …

Neredeyse Tüm Operasyon Yereldir

Git Bütündür

Git Genellikle Sadece Veri Ekler

KAYNAK : http://cpaks.com/versiyon-kontrol-sistemleri-ve-gitin-tarihi

Advertisements

as3 Vector. , Vector.

As3 sürekli gelişmesini sürdüyor. Benim de bugün daha yeni gördüğüm bu özellik vektörel çizimlerde manuel olarak yaptığımız graphics.lineTo , graphics.curveTo gibi metodlarında dizinin özelliklerini kullananan bu metod Vector.<int> özelliği çizim belirli işlemleri yapmamızı sağlıyor. Örneğin bir noktadan diğer bir noktayı çizerken bu özelliği kullanabiliriz.

var int_number:Vector.<int>;

trace(int_number);

function vektorDeneme():void
{
int_number = new <int>[2,35];
trace(int_number);
}

vektorDeneme();

yukarıdaki kodu denediğinizde yukarıda oluşturduğumuz int_number değerini null olarak oluşturduk yani boş bir özellik oluşturmuş olduk. Daha sonrasında ise trace ile çıktısı aldık fakat bize bir sonuç vermedi içi boş olduğu için.

Sonra bir fonksiyona aldık ve fonksiyon içerisinde ise new <int>[0,2] özelliklerini kullanarak dizi işlemini gerçekleştirmesini sağlamış olduk. Daha sonra ise vektorDeneme fonksiyonunu çalıştırmak için parantezler içerisinde fonksiyonun dışına çıkartarak fonksiyon içiersindeki çıktıyı almaya çalıştık. Sözün özü bu yeni göreceğiniz özellik çizimlerde draw api ile yapacağınız işlemlerde isteğe bağlı olarak kullanabileceğiniz bir metod olduğunu bildirmek isterim.

kolay gelsin,
serhat.