15 Nisan 2014

M: Sürüm Kontrolü ile güvenli proje takibi

Projem_ilk2_son1.prj

Sürüm Kontrolü ile güvenli proje takibi

14.04.2014

Volkan Gezer

En son çalışılan dosyayı bulun


Not: Tüm makale bu siteden alınmıştır.

İçindekiler Tablosu

Sürüm Kontrolü (SK) Nedir?
Sürüm Kontrol Türleri
Alternatiflerim neler?
Mercurial - http://mercurial.selenic.com
Bazaar - http://bazaar.canonical.com
Git - http://git-scm.com
Ortak Açıklamalar
Dallanma
Geri Alma
Performans Testleri
Sonuç 18
Diğer Sürüm Kontrolü Çözümleri
Dropbox: En basit sürüm kontrolü
LibreOffice, Sürümler özelliği
Kaynaklar

Bir bilgisayar oyunu oynarken kaldığınız yere en yakın yerde başlamak üzere sık sık kayıt yapanlardansanız, ilk oyununuzun kaydı büyük ihtimalle “ilk” olmuştur. Ardından kayıt isimleri “ikinci”, “asdasd” olarak devam etmiş olabilir. Peki tez yazarken veya bir proje yaparken dosya adlarınız hiç şöyle başladı mı:

ilk
ilk1
ilkilk_1

ve sona doğru da şöyle mi oldu:

son
son1
vallasonbubak
sonsonfinalsonensonson
ensonnnnnnnn1
finalkibuensonnnnnnnnnnnnnnnnn9999
ilkilk

Eğer böyle bir isimlendirme politikası izlemişseniz, tezi veya projeyi teslim edeceğiniz günde yanlış sürümü; hatta içerisinde sinirlendiğinizde Q klavyenizde gelişigüzel bastığınız karakterleri içeren belgeyi de göndermiş olabilirsiniz.

Eğer bu durumda değilseniz, tebrikler! Sürüm kontrolüne ihtiyacınız yok. Yeterince düzenlisiniz. Diğer özellikleriniz için buradan devam edebilirsiniz. Okumaya karar verdiyseniz, artık bu çileden kurtulacaksınız :).

Windows üzerinde çalışırken ve küçük çaplı projelerde uğraşırken ihtiyaç olmadığını düşündüğümüz, ancak şahsen Kubuntu’yla uzun zaman geçirdikten sonra gitgide ısındığım ve artık vazgeçilmezlerimden biri olan ve Windows dahil tüm işletim sistemlerinde çalışan sürüm kontrolüne kısa bir giriş yapacağım. Mümkün olduğunca teknik detaylara girmeden ne olduğunu, kullanabileceğimiz alternatifleri ve birbirlerine karşı üstün olan taraflarını kısaca anlatacağım.


Sürüm Kontrolü (SK) Nedir?


Yukarıda da bahsettiğim gibi, proje veya bir dosyanın farklı kopyalarını oluştururken hangisinin yeni, hangisinin de üzerinde çalışılması gerektiğini bulmanız kolay değil. Yine, projenin kopyasını alarak kapladığı alanı 2 katına çıkarıyorsunuz. Bu kopyaları da sürekli eşitlemeniz gerekiyorsa işler daha da zorlaşıyor. Ancak SK, sadece dosya veya dizinin farklarını saklayarak (aşağıda anlatılacak) revizyon (gözden geçirme) oluşturuyor ve asgari proje boyutunda en az uğraş ile istediğiniz sürüme ulaşmanızı sağlıyor.

Ücretli mi?

Hayır. En başarılı SK yazılımları ücretsiz ve özgür yazılımdır. Hatta isterseniz siz de geliştirilmelerine katkıda bulunabilirsiniz.

Ama ben Windows’ta çalışıyorum…

Özgür yazılımların felsefesi mümkün oluncaya kadar en fazla kullanıcıya ulaşmak olduğundan, hangi işletim sistemini kullandığınız önemli değildir.

Bana ne kadar yararlı olabilir?

SK uygulamalarının size yardımcı olabilme seviyesi çalıştığınız dosya biçimine bağlıdır. Örneğin bir ofis belgesi ile çalışıyorsanız, bu bir ikili (binary) dosyadır ve SK yazılımları sadece belgenin sürümlerini saklamanıza izin verir. Ancak tez veya makalelerinizi LaTeX ile yazıyorsanız (ki düz metin olarak saklama yaptığından ve bozuk dosya hatası almadığınızdan en güvenilir biçimdir) ya da kaynak kodu dosyaları ile çalışıyorsanız (cpp, c, php vb.) en yüksek seviyede sürüm kontrolü yapabileceksiniz.

Çalışmalarınızı takım halinde yapıyorsanız, hangi gün kimin, hangi dosyaları değiştirdiğini izleyebileceksiniz. Yine ayrı kişiler tarafından değiştirilen dosyaları birleştirmeniz ve hatalı kodu yazan kişiyi tespit etmeniz mümkün.

Sürüm Kontrol Türleri

Sürüm kontrol türleri merkezi ve dağıtık olmak üzere ikiye ayrılır. Eğer farkları merak etmiyorsanız atlayabilirsiniz.

Merkezi Sürüm Kontrolü


Yukarıdaki resimde görülen A ve B bilgisayarları, bir proje üzerinde çalışan ve birbirinden haberdar iki kullanıcı olsun. Sağdaki sunucu ise bu projenin tutulduğu sürüm kontrol sunucusu (VCS) olsun.

Bu sistemin yönetimi, tek bir yerde yapıldığından kolaydır ancak sunucu arızalandığında hiçbir kullanıcı dosya gönderimi yapamaz ve düzeltilinceye kadar sürüm kontrolü yapılamaz. Bu da sürüm kontrolü olmadan yapılan bir değişiklikteki ciddi bir hatanın çözülememesine sebep olabilir. Peki sunucu tamamen kullanılamaz duruma gelirse? Bu durumda tüm geçmiş kaybedilir!

Dağıtık Sürüm Kontrolü


Bu sistemde her kullanıcı aynı zamanda bir sunucudur. Ayrıca tabii ki yine merkezi bir sunucu da kullanılabilir ancak bu sunucuda bir sorun oluştuğunda sürüm kontrolü kullanıcıların kendi bilgisayarlarında yapılmaya devam edilir. Sunucu tamamıyla çökse bile, bir kullanıcının yedeği kullanılarak geçmiş kurtarılabilir. Bu tür sürüm kontrolünün tek sorunu, yönetiminin biraz daha karmaşık olmasıdır.


Alternatiflerim neler?

Ticari ve ücretsiz tüm SK yazılımlarının tam listesi için Wikipedia sayfasına bakın. Bu makalede sadece en yaygın kullanımda olan başlıca yazılımlar karşılaştırılacaktır. Karşılaştırılan yazılımlar, ayrıca halen geliştirilmesine devam edilen yazılımlar olacaktır. Listede ayrıca sadece dağıtık sürüm kontrolü sağlayan uygulamalardan bahsedilecektir. Yukarıdaki bölümü okumadıysanız, dağıtık (distributed) SK, herhangi merkezi bir sunucu gerektirmeksizin, bir veya birden fazla kişinin ortak bir şekilde çalışabilmesini sağlayan yapıdaki sürüm kontrolüdür. Ancak tabii ki merkezi bir sunucu kurulumunu da destekler.

Her SK uygulaması küçük bir örnek içerecektir. Bu şekilde hangisinin size en uygun olduğuna da karar verebilirsiniz. Bu örnekler, yazılımları bilgisayarlarınıza kurduğunuz varsayılarak ve sadece komutlar ile anlatılacaktır. Belirtilen komutu çalıştırmak için Enter’a basın. Bir arayüzle çalışıyor veya çalışmak istiyorsanız, kısa bir arama ile basit öğreticilere ulaşabilirsiniz.



Mercurial, genellikle büyük projeler tarafından kullanılan ancak hızlı ve öğrenilmesi kolay bir sürüm kontrol yazılımıdır. Küçük projelerde de oldukça başarılıdır.

+ ve -’ler:

+ Öğrenmesi kolay
+ Hafif
+ İyi belgelendirme
- Gelişmiş özellikler için ek uzantıların kurulması gerekli

Örnek çalışma:

Mercurial eylemleri kurulumdan sonra hg komutu kullanılarak verilir. HG, cıvanın (mercury) kimyasal simgesidir.

* Belgeler içerisinde hg_test adında bir klasör oluşturun.
* Bir konsol penceresi (Windows’ta komut istemi) açın ve cd Belgeler/hg_test komutu (Windows’ta dir Belgeler/hg_test) ile oluşturduğunuz klasörün içerisine gidip hg version yazın. Benzer bir çıktı almalısınız:


~/Belgeler/hg_test$ hg version
Mercurial Distributed SCM (version 2.8.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2013 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Yukarıdakine benzer bir çıktıyla karşılaşmadıysanız, kurulumunuzda bir sorun olmuş olabilir.

* hg init komutu ile sürüm kontrolünü başlatın.
* Bir metin belgesi oluşturun ve “deneme.txt” olarak adlandırın.
* hg status yazın ve oluşturulan dosyanın yanında soru işareti “?” görüldüğüne dikkat edin. Bu, dosyanın sürüm kontrolünde olmadığı anlamına gelmektedir.
* hg add deneme.txt komutu ile oluşturulan dosyayı izleme listesine ekleyin (herhangi bir dosya adı belirtmezseniz, tüm dosyalar eklenecektir.)
* tekrar hg status yazın. Dosya “A” ile gösterilecektir (added).
* hg commit yazın ve günlüğe kaydedilecek mesajı girin:

İlk gönderim

HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: volkan
HG: branch 'default'
HG: added deneme.txt


* hg log ile aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/hg_test$ hg log
changeset: 0:2c7ffe0f54ec
tag: tip
user: volkan
date: Tue Dec 10 20:41:32 2013 +0100
summary: İlk gönderim


* deneme.txt dosyasını açın ve değişiklik yapıp kaydedin.
* hg diff komutunu çalıştırın. Aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/hg_test$ hg diff
diff -r 2c7ffe0f54ec deneme.txt
--- a/deneme.txt Tue Dec 10 20:41:32 2013 +0100
+++ b/deneme.txt Tue Dec 10 20:45:05 2013 +0100
@@ -1,1 +1,1 @@
-
+ Şimdi deneme dosyasını değiştirdim


-, silinen satırı, + ise eklenen satırı göstermektedir.
* Tekrar hg commit ile sürümü kaydedin:

Değişiklik yapıldı

HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: volkan
HG: branch 'default'
HG: changed deneme.txt


* hg log çalıştırdığınızda değişikliği görmelisiniz:


~/Belgeler/hg_test$ hg log
changeset: 1:d41ecd4e4207
tag: tip
user: volkan
date: Tue Dec 10 20:48:17 2013 +0100
summary: Değişiklik yapıldı

changeset: 0:2c7ffe0f54ec
user: volkan
date: Tue Dec 10 20:41:32 2013 +0100
summary: İlk gönderim


Projelerinize barındırma sağlayan ücretsiz servisler: SourceForge, BerliOS, BitBucket, Google Code, CodePlex, Codebase. Devamı: http://mercurial.selenic.com/wiki/MercurialHosting
Desteklenen yazılım geliştirme ortamları: Visual Studio, Eclipse, NetBeans
Mercurial ile SK yapılan bazı yazılımlar: GNU Octave, openJDK, Pidgin, Symbian OS, Nokia Haritalar, Mozilla, NetBeans, Python, ngix. Liste: http://mercurial.selenic.com/wiki/ProjectsUsingMercurial
Ücretsiz e-Kitap: http://hgbook.red-bean.com/




Bazaar, Canonical (Ubuntu’yu sunan şirket) tarafından desteklenen ancak toplulukla birlikte geliştirilen bir sürüm kontrol yazılımıdır. Oldukça başarılı ve iyi yazılmış bir belgelendirmesi bulunmaktadır. Bir kişiden büyük bir takıma kadar ortak çalışılabilir depolar oluşturulabilir.

+ ve -’ler:

+ Öğrenmesi kolay
+ Hafif
+ Çok iyi belgelendirme
- Gelişmiş özellikler için ek uzantıların kurulması gerekli
- Proje barındırıcı hizmet sayısı çok az

Örnek çalışma:

Bazaar eylemleri kurulumdan sonra bzr komutu kullanılarak verilir.

* Belgeler içerisinde bzr_test adında bir klasör oluşturun.
* Bir konsol penceresi (Windows’ta komut istemi) açın ve cd Belgeler/bzr_test komutu (Windows’ta dir Belgeler/bzr_test) ile oluşturduğunuz klasörün içerisine gidip bzr version yazın. Benzer bir çıktı almalısınız:


~/Belgeler/bzr_test$ bzr version
Bazaar (bzr) 2.7.0dev1
Python interpreter: /usr/bin/python 2.7.6
Python standard library: /usr/lib/python2.7
Platform: Linux-3.14.0-031400-generic-x86_64-with-Ubuntu-14.04-trusty
bzrlib: /usr/lib/python2.7/dist-packages/bzrlib
Bazaar configuration: /home/volkan/.bazaar
Bazaar log file: /home/volkan/.bzr.log

Copyright 2005-2012 Canonical Ltd.
http://bazaar.canonical.com/

bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.

Bazaar is part of the GNU Project to produce a free operating system.

Yukarıdakine benzer bir çıktıyla karşılaşmadıysanız, kurulumunuzda bir sorun olmuş olabilir.

* bzr whoami "Ad Soyad <mailadresiniz@uzantı.com>" ile Bazaar’a kendinizi tanıtın. Bu, gönderimlerde kimin gönderi yaptığını gösterecektir.
* bzr init komutu ile sürüm kontrolünü başlatın.
* Bir metin belgesi oluşturun ve “deneme.txt” olarak adlandırın.
* bzr status yazın ve oluşturulan dosyanın “unknown” (bilinmeyen) kategorisinde olduğuna dikkat edin. Bu, dosyanın sürüm kontrolünde olmadığı anlamına gelmektedir.
* bzr add deneme.txt komutu ile oluşturulan dosyayı izleme listesine ekleyin (herhangi bir dosya adı belirtmezseniz, tüm dosyalar eklenecektir.)
* tekrar bzr status yazın. Dosya “added” (eklendi) kategorisinde gösterilecektir.
* bzr commit yazın ve günlüğe kaydedilecek mesajı girin:

İlk gönderim

-------------- This line and the following will be ignored --------------

added:
deneme.txt

Dosya, ilk sürüme (revision 1) eklenecektir.

* bzr log ile aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/bzr_test$ bzr log
------------------------------------------------------------
revno: 1
committer: Ad Soyad <mailadresiniz@uzantı.com
branch nick: bzr_test
timestamp: Sun 2014-04-13 18:05:06 +0200
message:
İlk gönderim

* deneme.txt dosyasını açın ve değişiklik yapıp kaydedin.
* bzr diff komutunu çalıştırın. Aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/bzr_test$ bzr diff
=== modified file 'deneme.txt'
--- deneme.txt 2014-04-13 16:05:06 +0000
+++ deneme.txt 2014-04-13 16:09:50 +0000
@@ -0,0 +1,1 @@
+Şimdi deneme dosyasını değiştirdim


-, silinen satırı, + ise eklenen satırı göstermektedir.
* Tekrar bzr commit ile sürümü kaydedin:

Değişiklik yapıldı

-------------- This line and the following will be ignored --------------

modified:
deneme.txt

* bzr log çalıştırdığınızda değişikliği görmelisiniz:


~/Belgeler/bzr_test$ bzr log
------------------------------------------------------------
revno: 2
committer: Ad Soyad <mailadresiniz@uzantı.com
branch nick: bzr_test
timestamp: Sun 2014-04-13 18:10:33 +0200
message:
Değişiklik yapıldı
------------------------------------------------------------
revno: 1
committer: Ad Soyad <mailadresiniz@uzantı.com
branch nick: bzr_test
timestamp: Sun 2014-04-13 18:05:06 +0200
message:
İlk gönderim


Projelerinize barındırma sağlayan ücretsiz servisler: Launchpad, GNU Savannah, SourceForge, Fedora Hosted.
Desteklenen yazılım geliştirme ortamları: Visual Studio (Visual Studio 2005 ve 2008), Eclipse, NetBeans
Bazaar ile SK yapılan bazı yazılımlar: Ubuntu, Inkscape, MySQL, GNOME, Stellarium, Bugzilla, KiCAD. Liste: http://wiki.bazaar.canonical.com/WhoUsesBzr




Git, ilk olarak Linux çekirdeğini başlatan Linus Torvalds tarafından geliştirildi ve Linux çekirdeğinde kullanıldı. Günümüzde en çok kullanılan dağıtık sürüm kontrol sistemlerinden biridir.

+ ve -’ler:

+ Diğer sürüm kontrol sistemlerine göre oldukça hızlı ve düşük depo boyutu
+ Çok sayıda barındırıcı
+ Hafif
- Tek kullanıcı için gereğinden fazla özellik
- Öğrenme eğrisi çok dik

Örnek çalışma:

Git eylemleri kurulumdan sonra git komutu kullanılarak verilir.

* Belgeler içerisinde git_test adında bir klasör oluşturun.
* Bir konsol penceresi (Windows’ta komut istemi) açın ve cd Belgeler/git_test komutu (Windows’ta dir Belgeler/git_test) ile oluşturduğunuz klasörün içerisine gidip git version yazın. Benzer bir çıktı almalısınız:


~/Belgeler/git_test$ git version

git version 1.9.1

Yukarıdakine benzer bir çıktıyla karşılaşmadıysanız, kurulumunuzda bir sorun olmuş olabilir.
* Bir defaya özgü Ad soyad ve e-posta bilgilerinizi girin. Bu bilgiler gönderilerde gösterilecektir:
* git config --global user.name "Ad Soyad"
* git config --global user.email eposta@uzantı.com
* git init komutu ile sürüm kontrolünü başlatın.
* Bir metin belgesi oluşturun ve “deneme.txt” olarak adlandırın.
* git status yazın ve oluşturulan dosyanın “Untracked files” (İzlenmeyen dosyalar) kategorisinde olduğuna dikkat edin. Bu, dosyanın sürüm kontrolünde olmadığı anlamına gelmektedir.
* git add deneme.txt komutu ile oluşturulan dosyayı izleme listesine ekleyin (dosya adı yerine “.” (nokta) koyarsanız, tüm dosyalar eklenecektir).
* tekrar git status yazın. Dosya “Changes to be committed” (Gönderilecek değişiklikler) kategorisinde gösterilecektir ve eklediğiniz dosya yeşil görülecektir.
* git commit deneme.txt yazın ve günlüğe kaydedilecek mesajı girin (tüm dosyaların dahil edilmesi için -a eklemelisiniz):

İlk gönderim

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# İlgili dal: master
#
# Başlangıç gönderisi
#
# Gönderilecek değişiklikler:
# yeni dosya: deneme.txt
#

Dosya, ilk sürüme eklenecektir.

* git log ile aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/git_test$ git log
commit 56ecf4b0c16b3bf9046f6b3aa719d286541f9e3c
Author: Ad Soyad <eposta@uzantı.com>
Date: Sun Apr 13 18:41:28 2014 +0200

İlk gönderim


* deneme.txt dosyasını açın ve değişiklik yapıp kaydedin.
* git diff komutunu çalıştırın. Aşağıdakine benzer bir çıktı almalısınız:

~/Belgeler/git_test$ git diff
diff --git a/deneme.txt b/deneme.txt
index e69de29..0e0d9a3 100644
--- a/deneme.txt
+++ b/deneme.txt
@@ -0,0 +1,1 @@
+Şimdi deneme dosyasını değiştirdim


-, silinen satırı, + ise eklenen satırı göstermektedir.
* Tekrar git commit deneme.txt ile sürümü kaydedin (tüm dosyaların dahil edilmesi için -a eklemelisiniz):


Değişiklik yapıldı

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# İlgili dal: master
# Gönderilecek değişiklikler:
# değiştirilmiş: deneme.txt
#

* git log çalıştırdığınızda değişikliği görmelisiniz:


~/Belgeler/git_test$ git log
------------------------------------------------------------

commit d2f105158566589d548f7aaf49423684662c5253
Author: Ad Soyad <eposta@uzantı.com>
Date: Sun Apr 13 18:45:01 2014 +0200

Değişiklik yapıldı

commit 56ecf4b0c16b3bf9046f6b3aa719d286541f9e3c
Author: Ad Soyad <eposta@uzantı.com>
Date: Sun Apr 13 18:41:28 2014 +0200

İlk gönderim



İndirme Bağlantısı: http://git-scm.com/downloads
Projelerinize barındırma sağlayan ücretsiz servisler: GitHub, Gitorious, SourceForge, BerliOS, BitBucket, Google Code, CloudHost, Codebase. Devamı: https://git.wiki.kernel.org/index.php/GitHosting
Desteklenen yazılım geliştirme ortamları: Visual Studio, Eclipse, NetBeans
Git ile SK yapılan bazı yazılımlar: Linux, Android, GCC, VLC Player. Liste: https://git.wiki.kernel.org/index.php/GitProjects
Ücretsiz e-Kitap: http://git-scm.com/book/tr (Kısmen Türkçe)



Ortak Açıklamalar

Dallanma

Mercurial, Bazaar ve Git, branching (dallanma) desteği sunmaktadır. Dallanma, tek bir komutla farklı konularda çalışma yapmanızı ve ana kodun bozulmasını önlemenizi sağlar.

Bunun için git kitabındaki bir kısım bu konuya detaylı açıklama yapmıştır. Kitap Git ile ilgili olmasına rağmen, dallanma mantığı tüm SK yazılımları ile aynıdır: http://git-scm.com/book/tr/Git-te-Dallanma-Dallanma-ve-Birle%C5%9Ftirmenin-Temelleri

Dallanmaları grafiksel olarak da görmeniz mümkün. Bunun için seçtiğiniz SK yazılımının grafiksel arayüzünü kullanmanız önerilir. Genel olarak aşağıdakine benzer bir grafikle karşılaşırsınız:


Git ile örnek verilen yukarıdaki grafiği açıklamak gerekirse: 0. günün başlangıcında “master” (temel) dalında çalışılmış. Günün son gönderilerine (commit) doğru, çalışma_dalı adında yeni bir dal açılmış. 1. günde master dalı ile çalışma_dalı birleştirilmiş ve iki dalda da ayrı ayrı gönderiler yapılmış. 2. günde de çalışma_dalı birleştirilip tekrar master ile devam edilmiş.

Git ile yukarıdaki grafiktekine benzer bir dallanma yapabilmek için şu komutları sırasıyla çalıştırabiliriz:

* git checkout -b çalışma_dalı - yeni dal oluştur ve onun üzerinde çalışmaya başla
* git merge çalışma_dalı master - çalışma_dalı’nı master ile birleştir
* git checkout master - master dalına geç

Bazaar ve Mercurial içerisinde dallanma için belgelendirmelerinin ilgili kısımlarına bakın.


Geri Alma
Sürüm kontrolünün en önemli amaçlarından biri de yaptığınız bir yanlışlığı geri alarak en son çalışır yerden devam etmenizi sağlamasıdır. Bunun için sürüm kontrolü yazılımında aşağıdaki komutları çalıştırabilirsiniz:


hg update [-r <gözden geçirme (revision) numarası>]

bzr uncommit [-r -<geri alınmak istenen gönderi sayısı>]
git checkout <log’dan alınan gönderi kodu>


Performans Testleri
Çok yakın sürede yapılmasa da şu kaynaktan alınan verilere göre çoğu işlemde en iyi sonuç Git’in verdiği sonuçlardır. Kaynaktaki tabloları incelemek gerekirse, Linux deposunda sürüm kontrolü yapılırken işlem ve gerçekleşme süreleri (d: dakika, s: saniye):

İşlem
git
bzr
hg

1.5.4.3
1.3.1
0.9.5
Başlatma (init)
0d0.086s
0d0.334s
0d0.137s
Ekleme 2.6.0
0d14.269s
0d4.852s
0d2.526s
Gönderi 2.6.0
0d10.263s
0d43.968s
0d30.890s
Fark alma
0d24.425s
0d51.158s
0d37.846s
Gönderi 2.6.x
0d28.468s
1d8.627s
0d47.948s
Fark (değişiklik yok)
0d0.343s
0d47.448s
0d1.340s
Durum (değişiklik yok)
0d1.230s
0d4.027s
0d1.077s
Gönderi (küçük)
0d0.397s
0d9.010s
0d1.913s

Kaynak kodlarının depo boyutları:


git
bzr
hg
92 MB
112 MB
179 MB


Sonuç
Bu yazılımların hepsi kendi alanlarında başarılıdır ve kendi kullanımınıza göre en iyisini kendinizin belirlemesi en mantıklı sonuç olacaktır. Yukarıdaki üç yazılımın da öğreticilerini tamamlayın ve en çok beğendiğiniz ile sürüm kontrolüne başlayın :)


Diğer Sürüm Kontrolü Çözümleri


Dropbox: En basit sürüm kontrolü

Dropbox, içerisine koyduğunuz dosyayı merkezi bir sunucuya koyan ve istediğiniz yerden erişmenizi sağlayan bir hizmettir. Dropbox kısmen ücretsiz olmasının yanında, aslında kapalı kaynak (sahipli) bir yazılımdır. Bu nedenle gizlilik ilkesi olmasına rağmen, verilerinizin güvenliği tartışılmaktadır. Burada sadece bilgi amaçlı kısa bir açıklama verilecektir. Aynı işlemi kendi bulut dosya sunucunuzda yapmak isterseniz bu makaleyi okuyabilirsiniz. Makalede açık kaynaklı tamamen sizin denetiminizde olan bir Dropbox benzeri, ownCloud adındaki hizmetin tanıtımı ve kurulumu anlatılmaktadır.

Eğer çok kritik bir proje üzerine çalışmıyorsanız, en temel sürüm kontrolü için Dropbox kullanabilirsiniz. Ancak Dropbox’ın işlevselliği çalışmanıza göre yeterli gelmeyebilir.

Yapmanız gereken şey projenizi Dropbox dizininde oluşturmak ve değişiklikleri yine aynı yerde yapmak.

Eğer Dropbox’ın ücretsiz sürümünden yararlanıyorsanız, bir dosyanın üzerinde yapılan değişiklikler 30 gün saklanır. Herhangi bir dosyanın üzerine sağ tıklayıp Dropbox -> View Previous Versions bağlantısını takip edebilirsiniz. Ayrıntılı bilgi için buraya bakın.

Dropbox’taki eksiklik, dosyalar üzerinde herhangi bir birleştirme yapamazsınız ve klasörleri toplu bir şekilde geri döndüremezsiniz.

LibreOffice, Sürümler özelliği

Eğer LibreOffice kullanıyorsanız ofis belgelerinizde de, Dosya -> Sürümler bağlantısı ile çalıştığınız belgelerin sürüm kontrolünü yapabilirsiniz. Ayrıntılı bilgi için buraya bakın.

Kaynaklar





Hiç yorum yok:

Yorum Gönder

Makale ile ilgili soru, yorum ve önerileriniz: