22 Haziran 2011 Çarşamba

commit yapmak artık daha kolay!

1

Mercurial kullanırken 'hg commit' demek beni hep huzursuz etmekteydi. Ta ki MQ ile tanışana dek. Commit yaptıktan sonra commit'in hash'i yeni commit'in parent'ı olarak kullanılacağı için commit'i hiçbir şekilde değiştirmek artık mümkün olmuyor. Push demeden önce bir sorun fark ettiyseniz, bunu yeni bir commit ile halletmekten başka çareniz yok. MQ (Mercurial Queue) burada yetişiyor yardıma. Ana fikri değiştirilebilir changeset'ler yaratmanıza imkan vermek. En çok iki açıdan faydası var.
  1.  Girişte yazdığım gibi, bir commit yapmanız gerek fakat bunun en mükemmel commit olduğuna ikna olmadığınız halde şimdilik yeterli gibi duruyor. Bu durumda bunu bir mq patch olarak kuyruğa atabiliriz ve daha sonra üstüne yeni patchler eklesek dahi geri dönüp tekrar düzenlememiz mümkün. Bunun sayesinde commit'imizi yapmış gibi varsayıp yeni bir commit üzerinde çalışmaya başlayabiliriz. Ya da aynı anda birden fazla commit üzerinde çalışabiliriz.
  2. Bir dosya üzerinde çalışırken çalıştığımız dosyada bir hata bulduk. Bulduğumuz hatayı onarırsak bu değişiklik bizim önceden yaptığımız çalışmalarla birlikte commit edilecek ve atomic commit yerine iki farklı işi tek bir commit'de yollamış olacağız. Ya da hatayı işimiz bittikten sonra düzelteceğimize kendimizi inandırıp unutmamız da mümkün. Bunun yerine mq kullanıp şu ana kadar yaptığımız değişiklikleri bir patch kuyruğuna atıp hatayı onaran kodu commitleyip tekrar patchimize dönüp çalışmaya devam edebiliriz.
Bir patch ile işimizin bittiğine emin olduktan sonra onu gerçek bir commit'e çeviriyoruz. Şurada MQ ile ilgili güzel bir belge mevcut. Ne işe yaradığını ve nasıl çalıştığını tam olarak anlayıp kullanmaya başladıktan sonra hayat daha bir güzel oluyor. Yatmadan önce patch'imi qrefresh edeyim diye buluyorum kendimi.

6 Haziran 2011 Pazartesi

GSoC 2011

0

Gecikmiş bu yazıyı nihayet yazabiliyorum, benim için bir zamanlar gerçekleşmesi oldukça uzak bir hayal olan "Google Summer of Code"a bu sene kabul edildim ve bunun mutluluğu içerisindeyim. Kodlama süreci başlayalı 2 hafta geçti fakat okullar dolayısı ile henüz sıkı bir çalışma sürecine giremedim.

Bu yaz Summer of Code'da Melange için "Integration with External APIs" projesi üzerine çalışacağım. Melange GSoC ve GCI etkinliklerinin üzerinde çalıştığı Django ve App Engine ile birlikte çalışan bir çatı. Geleneksel Django yaklaşımı yerine bir nevi kendi framework'lerini kullanmaktalar ve sanırım dahil olabileceğim en düzenli kod yazılan projelerden birisi. (Açıklama satırının sonuna nokta koymadığım için uyarılmışlığım oldu :) Projem ile ilgili ayrıntıları buradan ve Melange bloğundan takip etmeniz mümkün.

15 Nisan 2011 Cuma

Planet Caravan

0

Uykusuz bir sınav gecesinde boşlukta uçmak...