Projem_ilk2_son1.prj
Sürüm
Kontrolü ile güvenli proje takibi
14.04.2014
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.
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 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.
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
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 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
|
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
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.
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>
|
Ç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
|
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 :)
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.
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.
Hiç yorum yok:
Yorum Gönder
Makale ile ilgili soru, yorum ve önerileriniz: