Mercurial – Versiyon Kontrol Sistemi

Bu yazımda versiyon kontrol sistemlerinden biri olan Mercurial nedir nasıl kullanılır gibi bilgiler vereceğim.
VCS(Version control system), yazılımcıların bir proje üzerinde ortak bir şekilde çalışabilmesine olanak sağlayan, gerek duyulduğunda eski kodlara ulaşılabilmesine yardımcı olan bir sistem olarak tanımlayabiliriz. En bilindikleri Git, SVN, Mercurial şeklinde gider. Ama şuan en popüler olarak kullanılan dünyada ve ülkemizde Git‘ dir.
Bense gerek alışkanlık gerekse daha kolay rahat olduğum Mercurial sistemini bu yazımda nasıl kullanıldığını bir örnek ile açıklayacağım.

Öncelikle sitesinden güncel sürümü işletim sistemimize uygun olanı indirelim. Link : https://www.mercurial-scm.org/
Projeyi atacağım yer Bitbucket sitesidir. Avantajı olarak hem Git hem de Mercurial destekleyebilmesi ve ayrıca private(özel-gizli) repo oluşturabilmeyi olanak sağlamaktadır. Link : bitbucket.org

IDE olarak Eclipse Mars‘ı kullanıyorum. Size Netbeans veya Intellij seçebilirsiniz. İndirdiğimiz dosyayı kurduktan sonra terminal ve cmd ‘ yi açarak hg –version komutunu kullanarak kurulup kurulmadığını görebiliriz. Ardından Eclipse marketplace ‘ e girerek resimdeki gibi Mercurial plugin’i yüklüyoruz.

1

Ardından bitbucket sitesinde Create Repository ‘ den yeni bir repo oluşturuyoruz.

2

Sonra Eclipse ‘ te yeni bir proje oluşturalım. Oluşturduktan sonra proje üzerine sağ tıklayıp Team->Share Project seçelim.

3

Seçeneklerden Mercurail seçip işlemi bitirelim. Artık bir projemize Mercurial‘ı uyguladık ve hemen dikkatimizi çeken projemizin üstünde bir ikon geldi. Bu commit ‘ lemediğimiz dosyaların var olduğu anlamına gelmektedir.

Bu sistem şöyle işler. Bir uzak repomuz vardır bir de local repomuz vardır ve bir de çalıştığımız workspace. Bir dosya eklersek, çıkarırsak veya değiştirirsek bunları commit’lemediğimiz sürece değişiklikler workspace’de kalır. Commitleyince local repomuz güncellenir. Ardından bu commit’i pushlarsak uzak repomuz güncellenir. En basit mantık böyle işlemektedir. Yaptığımız değişikliği Revert seçeneğiyle geri alabiliriz. Ancak commit yapmadığımız sürece revert yapabiliriz.

Ardından Eclipse->Window->Show View->Other kısmına gelip Mercurial Repositories seçelim. Aşağıdaki gibi bir ekran gelicektir.

4

Kırmızı alanla belirtilen yeri seçelim ve gelen ekranı bitbucket username, password ve repo ‘ url’i girin.

5

Ardından Team->Synchronize With seçeneğini seçip gelen ekranda combobox’tan girdiğimiz url’i seçip Finish diyelim ve şuan projemiz uzak repo ile bağlantılı hale getirdik.

Ardından basit bir Java main sınıfı projemize dahil edelim.

6

Ardından Team->Commit diyelim. Bir commit mesajı verip işlemi tamamlayalım. Bunu yaptıktan sonra projemiz üzerindeki o siyah ikon gitmiş olacak ve yerine 1 veya yaptığımız commit sayısına bağlı olarak bir sayı gelecektir. Synchronize tab’i altında da aynı işlemleri gerçekleştirebilirsiniz.

7

Ardından yine aynı yeri kullanarak bu sefer Push seçeneğini seçelim. Evet şimdi bitbucket hesabınızı kontrol ettiğinizde dosyları orada görebileceksiniz.

8

Repo link : https://bitbucket.org/uhalis/mercurialtest/

Son olarak önemli olan bir dosya dan bahsedeceğim. .hgignore isimli dosya, commit-push ‘ a girmesini istemediğimiz klasör ve dosya tanımlamalarını içerir. Genel olarak Eclipse kullanırken .settings klasörü, bin klasörü .classpath ve .project dosyalarını atmamıza gerek yoktur. Bunlar her pc’ye göre değişebileceğinden exclude edilir. Bizim için önemli olan kod ve lib’lerdir.
Bir dosyayı ignore etmek için dosya üzerine sağ tıklayıp Team->Ignore seçebiliriz. Ayrıca .hgignore dosyasını da ignore edebiliriz.

Evet bu yazımda Mercurial nasıl kullanılır hakkında elimden geldiğince yazdım. Sonraki yazılarda görüşmek üzere..

Test edilmeyen kod tuhaflaşır…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s