Versiyon Kontrol Sistemleri



Benzer belgeler
SUBVERSION VE TRAC A GİRİŞ

Gitlab ile Web Tabanlı Git Deposu Yönetimi

Git Sürüm Kontrol Sistemi

PHP 1. Hafta 1. Sunum

27 Kasım Ekran 1: ETA:SQL Yazılım Güncelleme Uygulaması

VPN NEDIR? NASıL KULLANıLıR?

UNICASE.... kapsamlı bir CASE* aracı. *

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ

Kaynak Kodları GitHub Üzerinden Yönetilen ve Debian Depolarında Bulunan Yazılımların Geliştirme İstatistikleri. Dilara Koca

Özgür Yazılım Geliştirme Araçları

SIRA NO SORUMLU BİRİM FAALİYET SORUMLU DURUM AÇIKLAMA

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

AHTAPOT Merkezi Güvenlik Duvarı Yönetim Sistemi Kontrol Paneli

Pac Dosyası İle Proxy Kullanmak

Bilgisayar İşletim Sistemleri BLG 312

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

BEUN VPN Hizmeti. VPN Nedir?

ZyXEL P-660HN-F1Z Modem ve VLAN Gerekliliği

AMASYA ÜNİVERSİTESİ BİLGİ İŞLEM DAİRE BAŞKANLIĞI HİZMET ENVANTERİ TABLOSU

Google Play Zararlısı İnceleme Raporu

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

SEE-GRID-2. TR-GRID Üzerinde Kandilli Sismik Veri Sunucusu.

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

15xx versiyonu Tarihli Arşivin İçeriği

2. hafta Bulut Bilişime Giriş

PHP 1. Hafta 2.Sunum

Zeki Gülen Marmara Üniversitesi Sosyal Bilimler Enstitüsü, Gazetecilik Ana Bilim Dalı, Bilişim

Google Scripts. Neticaret Sistemine Google Analytics ve AdWords sistemleriyle ilgili 3 yeni parametre eklenmiştir.

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

Yazılım/Donanım Farkı

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

David s Advanced Revision Control System

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

Bilişim Teknolojileri Temelleri 2011

Açıklama Bölüm Kılavuzun ilk yayım tarihi

BGYS ve BGYS Kurma Deneyimleri

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

BitTorrent İstemci Kullanımı

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

e-fatura UYGULAMASI (Test Planı) Haziran 2013 ANKARA GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

STOKLARDA RESĐM KULLANIMI

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı

Linux Çekirdek Geliştirme Süreci

İşletme ve Devreye Alma Planı Yerel Okul Sunucusu Uygulama Yazılımları Prototipi TRscaler Technology Solutions

Kaynak Kodları GitHub Üzerinden Yönetilen ve Debian Depolarında Bulunan Yazılımların Geliştirme İstatistikleri

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

e-beyas İŞLEMLERİ TALİMATI

GÖZETMEN İLE BAŞVURU FORMU DOLDURMA TALİMATI

Bilgisayar Programalamaya Giriş

Öğr. Gör. Serkan AKSU 1

Bilgisayar, elektronik bir cihazdır ve kendi belleğinde depolanan talimatları sırasıyla uygulayarak çalışır. İşler. Bilgi İşlem Çevrimi

Berqnet Sürüm Notları Sürüm 4.1.0

Güvenli Doküman Senkronizasyonu

«Dil Seçeneği» alanı. «Sisteme Giriş» alanı

ÇÖZÜM BİLGİSAYAR KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU Sürüm: 1.0

PROGRAMLAMA DERSİ 1. İNTERNET

Yerel Ağlarda Port 139 ve Saldırı Yöntemi

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

Üst Düzey Programlama

Sağlık Tesisleri nde Mali Hizmetler Programı (Kiksoft) Yardımcı Döküman

LKD Kendi İlacını Kullanıyor

16. LİSELERARASI MATEMATİK YARIŞMASI BİREYSEL YARIŞMA

Paketler ve Detayları

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

Acarix CD-DVD/Ağ üzerinden çalışan GNU/Linux Dağıtımı

ÖZ DEĞERLENDİRME SORU LİSTESİ

Tarım makineleri kullanımında mesleki riskleri önlemek için görsel iletişim araçlarıyla eğitim

KolayOfisHukukOfis OtomasyonSistemleri

Çekirdek Nedir? Ne yapar?

Finans Dünyasında Linux ve Özgür Yazılımlar

Proticaret Exclusive v3.2.0 E-Ticaret Yazılımı Kurulum Dokümanı

SQL ALWAYS ON SİSTEMİNE YENİ CLUSTER NODE EKLENMESİ

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

NComputing Erişim Cihazları Maksimum Esneklik ve Tasarruf Eylül 2010

ADOBE CONNECT PRO MEETİNG NASIL KULLANIRIM. Her yerden kolayca erisilebilen sinif. Erzurum

FTP Programı File Zilla nın Kurulumu & Çalıştırılması

Y.T.Ü. Öğrenci Bilgi Sistemi USIS (University Student Information System) Tanıtımı. (Doküman No: KL-029; Revizyon Tarihi: ; Revizyon No:01)

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

ProTicaret Exclusive 4.05 E-Ticaret Yazılımı Kurulum Dokümanı

Yedek Nasıl Alınır? "Veri Tabanı Yedekleme ve Geri Alma" butonunu tıklayınca aşağıdaki gibi bir ekran açılacaktır.

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Ecat 8. Hakbim Bilgi İşlem A.Ş. Versiyon

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Transkript:

Versiyon Kontrol Sistemleri

Olayımız Nedir? Versiyon Kontrolü Nedir? Neden Versiyon Kontrolüne İhtiyaç Duyarız? Merkezi Versiyon Kontrol Sistemi Nedir? Peki ya merkezi olmayan? Ayıp olmasın diye: SVN Sebeb-i ziyaretimiz: Git SVN vs Git Hangisi döver? Social Coding: github Github üzerinde proje inceleme

Versiyon Kontrolü Nedir? Versiyon kontrolü, yazılım geliştirmedeki anlamından bağımsız olarak, bir dökümanın üzerinde yapılan değişikliklerin yönetilmesidir. Burada bahsedilen döküman, Bir ofis belgesi, web sitesi, hatta bir uygulama programı bile olabilir.

Versiyon Kontrolü Nedir? (2) Yazılım geliştirme üzerinde özelleştirirsek, versiyon kontrolü bir yazılımın revizyonlar halinde güncellenerek geliştirilmesini sağlar. Böylece geliştirilen yazılımın geçtiği süreçler rahatça takip edilebilir.

Neden Versiyon Kontrolü? Birden fazla kişinin beraber çalıştığı projelerde proje gelişiminin hızlanması için. Yeni bir özellik üzerinde çalışırken Ben buraya nereden geldim?, O kadar kod yazdım, derlenmezse yandık. dememek için. Açık kaynak projelerde hali hazırda tamamlanmış projeler baz alınarak geliştirilen yeni projelerde süreci kolaylaştırmak için.

Merkezi VKS Nedir? Merkezi versiyon yönetim sistemlerinde tüm kullanıcılar bütün değişikliklerini direkt olarak uzaktaki depo (repository) üzerinde yaparlar. Son revizyonu yapan kullanıcının yeni bir değişiklik yapıp uzak sunucuya göndermesi büyük olasılıkla bir sorun yaratmaz. Başka bir kullanıcı kendi değişikliklerini uzak depoya gönderip nihai hale getirmek istediğinde (commit) ne olacak peki?

Merkezi VKS Nedir?(2) Bu durumda ilk kullanıcının yaptığı değişiklikler yok mu olacak? Ya da ortada karman çorman bir kod yığını mı oluşacak? İkisi de değil. Uzak sunucudaki kodun stabilitesinin korunması için VKS ikinci kullanıcıya önce uzak depodaki kodu çalıştığı kodun üzerine indirmesini (update) isteyecek.

Merkezi VKS Nedir?(3) Uzak sunucudan gelen dosyalar sizin geliştirdiğiniz kodlar ile uygun şekilde birleştirilecek. (merge) Ardından ikinci kullanıcı değişikliklerini sorunsuzca uzak depoya yollayabilecek. Her şey bu kadar toz pembe mi? Tabii ki de hayır.

Merkezi VKS Nedir?(4) Bölüm Sonu Canavarı: Conflict Merge işlemi versiyonun yönetiminin en can alıcı noktasıdır. Fakat bu işlem her zaman tereyağından kıl çeker gibi olmaz. Diyelim ki iki kullanıcı da bir dosyada aynı satırlar üzerinde değişiklik yaptılar. Bu durumda birleştirilen dosyada hangi kullanıcının değişikliği saklanacak? İşte bu ikileme versiyon kontrolü sözlüğünde conflict (çatışma) denir.

Merkezi VKS Nedir?(5) Çatışmayı tatlıya bağlamak: Solve Conflict Bir dosya üzerinde iki değişiklik çatışırsa çoğu zaman bu durumun düzeltilmesi için elle müdahele gerekir. Çatışmalar çözüldükten sonra gereken değişiklikler yapılarak yeni versiyon uzak sunucuya yollanabilir.

Merkezi VKS Nedir?(6) Özet olarak, Merkezi yönetim sistemlerinde asıl amaç elimizdeki versiyonun uzak sunucu ile aynı olmasıdır. Proje bittiğinde, hem uzak sunucuda hem de kullanıcıların elinde aynı versiyon bulunacaktır. Merkezi sistemler içinde en iyilerinden biri ve en yaygını olan SVN (Subversion)'dir.

Merkezi olmayınca nasıl oluyor? Merkezi olmayan sistemlerde versiyonlama iki kademeli olarak gerçekleşir. Merkezi sistemlerde tek depo (repository) ve birçok kullanıcı vardır. Merkezi olmayan sistemlerde ise birçok yerel depo (local repository) ve birçok kullanıcı ile birlikte bir adet de uzak depo (remote repository) bulunmaktadır. Bu tarz sistemlerde, commit işlemi sadece yerel depoyu etkiler. Bu da sözlüğümüze yeni bir kelime ekliyor: Push

Merkezi olmayınca nasıl oluyor? (2) Push eylemi, daha önce yerel makinede commit edilmiş. Bütün revizyonları sırayla uzak depoya uygular. Buradaki süreç merkezi VKS'ler ile neredeyse aynıdır. Uzak depodaki versiyonun yerel depoya indirilmesi işlemine ise merkezi olmayan sistemlerde Pull denir Birleştirme işlemi, çatışma oluşması gibi olaylar aşağı yukarı aynı şekilde gerçekleşir. Merkezi olmayan versiyon kontrol sistemlerinin en güzel örneği Git'tir.

SVN vs Git Git, yerel depolar ile de çalıştığından internete bağlı olmadığınız sürede de kendi değişikliklerinizi kademe kademe versiyonlamanız mümkündür. Yeni başlayanlar için SVN'i anlamak Git'i anlamaktan biraz daha kolaydır. SVN'in yardım dosyaları daha organizedir. Git'te, her yerel depo bir şekilde uzaktakinin yedeği olduğundan veri kaybetmek neredeyse imkansızdır.

SVN vs Git(2) Git'in birleştirme işlemi SVN'e göre kat kat daha iyidir. Conflict oluşma sıklığı daha azdır. Git, disk alanını SVN'e göre kat kat daha verimli kullanır. Git'te uzak sunucuya erişim SVN'e nazaran daha nadir olduğundan versiyonlama işlemi daha hızlı çalışır.

Sorularınız? Teşekkürler