17 Mart 2014 Pazartesi

Git ve SVN

Git ile ilgili aldığım notlarım aşağıda.

Remote Repository İle İlgili Komutlar

Yapılmış Olan Değişikliklerin Alınması
git pull : Bu komut ile remote repository'deki değişiklikler bizim repository'imize merge edilir.

Eğer değişiklikleri beğenmez ve eski haline getirmek istersek
git reset --hard HEAD komutunu çalıştırmak lazım.

Yapılmış Olan Değişikliklerin Gönderilmesi
 git push origin master
--------------------------------------------------------------------------------------------------------------
tortoise svn ile ilgili aldığım notlar aşağıda. tortoise svn arayüzünde çeşit çeşit renkler kullanılmış. Renklerin manası var ve dikkat etmek gerekiyor.

Yardımcı olsun diye ekran görüntüsünün ekliyorum.

Blame
Dosyadaki satırın hangi commit numarası ile değiştirildiğini gösterir.

Commit
Commit seçeneğine tıklanınca "non-versioned" dosyaları da listeleme veya listelememe seçeneği mevcut.

Commit Hook
SVN sunucusunda  repository'nin hooks dizinine .bat veya .sh dosyası yazılabilir. pre-commit.bat veya post-commit.bat commit öncesi veya sonrası çalıştırılır.


Check for Modifications
Bazen svn değişiklikleri hemen algılamaz ve Windows'ta simgler kırmızı yeşil görünmez. Check for modifications menüsü ile simgelerin yenilenmesi sağlanır.

Eğer Update komutu çalıştırılınca hangi dosyaların indirileceğini görmek istersek aşağıdaki gibi yapabiliriz.
tortoiseproc /command:repostatus /path:{your/path/goes/here} /remote
Diff
diff en son güncellenen sürümle diskte dosyayı karşılaştırır. Dosya svn'de ielerlemiş olsa bile head ile disk arasındaki farkı göstermez!.

Update
Sunucudaki dosyaları getirir. Eğer merge edilebilecek dosyalar varsa otomatik olarak merge eder. Merge edilen dosyaya sağ tıklayıp "Compare with working copy" menüsü seçilirse açılan pencerede 3 bölüm görülür.
Theirs
Sol üstteki "Theirs" penceresi SVN'e commitlenmiş dosyayı gösterir. Bu pencerede "-" ile işaretli satırlar benim sürümümde olmayan satırları belirtir.

Mine
Sağ üstteki "Mine" penceresi "Mine" ve "Theirs"'in birleştirilmiş halini gösterir. Benim satırlarım "+", onların satırları ise "-" ile belirtilir.

Merged
En alttaki "Merged" penceresi ise "Mine" ve "Theirs"'in birleştirilmiş halini renkli olarak gösterir.


Eğer dosyalar arasında conflict varsa, kırmızı renk ile gösterir. Conflict olan dosyaya sağ tıklayıp Resolve conflict using 'theirs' seçilirse, sunucudaki dosya doğru kabul edilir ve değişikliklerimizi kaybederiz.

Silinmiş Bir Dosyayı Geri Getirmek (Revert veya Rollback)
Silinmiş bir dosyayı geri getirmek için "Show Log" seçilir. Yapılan commitler listesi üzerinde dolaşılarak silinen dosya bulunur. Dosya seçilerek "Revert changes from this revision" seçilir. Aynı şekilde dosyanın daha önceki halini de geri getirmek mümkün.

Belli bir Revizyona Geri Dönme
SVN/Update to revision... menüsünden eski bir revizyon numarası girilerek, geri dönülebilir. SVN global revizyon numarası tutar. Bir dosya değişse bile dizinin de revizyon numarası değişir.

Yeni Tortoise SVN 1.7 ile .svn dosyaları tarihe karışıyor. Artık metadata working copy'nin root dizinindeki bir sqlite veritabanında tutuluyor. Bu yüzden kurulumda daha eski client'lar working copy ile çalışamaz uyarısı veriliyor.

Dosya Taşıma

Dosya taşımak için Windows Gezgini ile dosya(lar) seçilir. Seçili nesneler sağ tuşa tıklanarak taşınmak istenen yeni dizine sürüklenir.Açılan menüden "svn move versioned item(s) here" seçilir.

Show Log
Yapılan commitler görülür. Koyu renk ile gösterilen versiyon lokalimizde olan versiyonu temsil eder. Koyu renk satır ilk sırada ise lokalimiz svn ile senkronize olmuşuzdur, eğer daha alt sırada ise biz "update" işlemini yaptıktan sonra farklı commitler olmuştur. Yani lokalimiz geriden gelmektedir.


SVN Checkout
SVN'e dahil olmayan bir dizine sağ veya boş bir yere sağ tıklanınca "SVN Checkout" menüsü gelir. Menüyü seçince "Checkout" kutusu açılır. Repository adresi girildikten sonra - örneğin "svn://10.5.91.179/Projem" gibi - dosyalar seçtiğimiz dizine indirilirler.

Export
Bir dizini export ederek gizli .svn dosyalarından arınmış yepyeni bir dizin elde ederiz. Böylece kaynak kodları taşımak daha kolay olabilir.

Patch
Kendi lokalimizde yaptığımız değişiklikleri commitlemeden başkasına aktarmak için kullanılır. Tortoise Svn'e sağ tıklanır "Create Patch" seçilir. Açılan pencereden değişiklik yaptığımız ve patch dosyasına girmesini istediğimiz dosyaları seçer ve x.patch isimli dosyaya kaydederiz. Bu dosyayı alan kişi bizimle aynı dizine bu dosyayı yerleştirir ve çift tıklar.. Dosyadaki değişiklikler kendi lokaline yansıtılır.

Ayarları Temizlemek
Tortiose Svn bazı ayarları kaydeder. Örneğin kullanıcı şifresi gibi. Bu tür şeyleri temizlemek için Tortoise svn / Settings / Saved Data menüsünü seçin. Authentication data yazısının yanındaki "Clear" düğmesine tıklayın.

Komut Satırından Çalıştırma
Tortoise svn bir GUI programı ancak komut satırından TortoiseProc.exe kullanılarak aşağıdaki gibi çalıştırılabilir.
<Path to TortoiseSVN>\bin\TortoiseProc.exe /command:<SVNCommand> <Parameters>
SVN Sunucusunu Kilitleme
SVN sunucusu admin tarafından kilitlenebilir. Böylece commit yapılması önlenebilir.
--------------------------------------------------------------------------------------------------------------
JIRA Notlarım
Projeler
Jira ile bir çok farklı proje izlenebilir. Bunların listesini "Projects" menüsü altında görebiliriz.

Software Change Control Board (SCCB)
SCCB ekibini hataları kontrol ederken kullanacağı en önemli iki araç Jira ve SVN. Hata çözümlerini kontrol ederken dikkat edilmesi gereken hususlar:

  • SCR sadece problemin çözümüyle ilgili olmalı. Diğer hataların çözümünü ilgisiz bir SCR'a yedirilmemiş olmalı.
  • Doors'ta baseline alınmış ürüne SCR açılmadan herhangi bir değişiklik yapılmamalı


Hatalar
Filtreleme
Projeler ait hatalar çeşitli kriterlere göre filtrelenebilir. Filtrelenen hatalr views menüsü kullanılarak excel veya word formatında export edilebilir.

Hataların Durumları
Hatalar Create, Waiting for Approval, Open, In Progress, Reopened, Resolve, Closed gibi durumlarda bulunabilir. 

Hata Yaratmak
Hata yaratırken, önem seviyesinin girilmesi gerekir. Bunlar Block, Critical, Major, Minor, Trivial gibi seviyelerdir.

Ayrıca eğer varsa Component, yine eğer varsa Affected Version, Fix Versiıon gibi sürüm ve bileşen bilgileri girilebilir.

Hata Clone'lamak
Hataları clone düğmesi ile kopyalamak mümkün. Böylece hızlı giriş imkanı sağlanır.

Hata Düzeltmek
Hata düzeltilirken çözüm olarak kullanılabilecek bazı seçenekler Fixed, Invalid, Won't Fix, Duplicate, Incomplete, Cannot Reproduce gibi çözümler olabilirler.
--------------------------------------------------------------------------------------------------------------
Word Belgesi Sürümü Numarası

Her ne kadar svn veya git Word Belgesinin tarihçesini tutsa da, belgenin kapak sayfasına sürüm numarası yazmak gerekiyor. Bazı şirketlerde gördüğüm örnekler:

Belge henüz yayınlanmadıysa ve üzerinde çalışılıyorsa sürüm numarasına -(P1) -preliminary anlamına geliyor - yazılır. Belge resmi olarak yayınlandıktan sonra sürüm numarasındaki -(P1) kaldırılır ve sadece "-" yazılır.
Yani :
Version : -(P1) iken
Version : - haline gelir.

Hiç yorum yok:

Yorum Gönder