Svn geri alma

Zaman zaman karşılaştığım irili ufaklı sorunları çözmek için internette dolanıp bulduğum çözümleri not etmek niyetiyle açtığım blogumu, biraz üşengeçlikten biraz ihmalkarlıktan, maalesef ki bu iş için kullanmak henüz nasip olamadı. Draftta, yayınlananlardan çok yazı birikmiş olması da enteresan bir durum. Bolca yeni şeyler öğreneceğim bir döneme giriyorum. Umarım bundan sonra buraya yazacak bolca notum olacak.

Üzerinde uğraştığımız projelerde yeni kullanıcılar için öğrenmesi kolay olduğundan sürüm takip sistemi olarak subversion kullanıyoruz. Her ne kadar öğrenmesi kolay olsa da elbette arada ufak tefek sorunlar çıkıyor.

Geçtiğimiz günlerde kullanıcılardan biri yanlışlıkla neredeyse depomuzun yarısını silmiş. Her ne kadar svn kullandığımızdan bu durum çok sıkıntı olmasa da daha önce bu durumla karşılaşmamış olduğumdan irc’de konu hakkında biraz laflamak gerekti.

Sonuç olarak unutulmaması gereken komut şöyleymiş.

svn merge -r [Son Revision]:[Dönülecek Revision] URL

örn. svn merge -r 1216:1205 URL

HFS+ dosya sistemi ve unicode dosya adları

Okulda* yenice başladığımız bir proje için SVN kullanmaya karar verdik. Onlarca kişinin ortaklaşa çalıştığı işlerde bize büyük kolaylıklar sağlayan SVN, işin içine unicode dosya isimleri ve HFS+ dosya sistemi girince bizi epey sıkıntıya soktu.

İlk başlarda gayet güzel giden dosya ekleme işlemleri, OS X kullanan kullanıcılar işin içine girince birden karıştı. Dizinlerin içinde aynı dosyalardan ikişer tane olmaya, updateler sırasında hatalar oluşmaya başladı.

Bir süre dosya sisteminin aynı dosya adında iki dosyayı nasıl yanyana tutabildiğine şaşırdıktan sonra Google sayesinde öğrendim ki HFS+ dosya sisteminde dosya isimleri decomposed (“e\314\200″, 3 byte) biçimde yazılıyormuş. Linux ve Windows’ta ise composed (“\303\250″, iki byte) biçimde. Dolayısı ile bize aynı görünen dosya isimleri sisteme göre gayet farklılarmış.

Oluşan bu durum ile ilgili SVN tracker’dan bulduğum yamalar da işe yaramayınca, OS X kullananların en azından sisteme dosya ekleyip çıkarabilmesi için MacFuse kullanarak çok pratik olmasa da bir yol buldum.

Öncelikle sisteme MacFuse ve ntfs-3g kurdum. “Disk Utility” ile 1 GB’lik bir dmg yaratıp FAT olarak formatladım. Daha sonra bu dmg’yi mount edip, NTFS-3G ile tekrar formatladım. (Direk ntfs-3g ile bir dmg yaratmaya kalkınca “The device doesn’t exist; did you specify it correctly?” diye bir hata veriyor.)

Şimdi bu disk imajı üzerinde SVN depomuzu kullanabiliyoruz. Dosya ekleyebiliyoruz, çıkarabiliyoruz.Fakat buradan bir dosyaya erişmeye çalıştığımızda OS X programları dosyanın orada olmadığını iddia ediyor. Dosyaları düzenlemek için Terminal’den disk üzerinde bir yere kopyalamak ve oradan açmak gerekiyor.

Şimdilik sadece veri girişi yapıldığından, dosyaları düzenleme kısmı pek canımızı yakmıyor. Ama verileri düzenlemeye başladığımızda SVN tarafından hala bir çözüm gelmemiş olursa, dosyaları oradan oraya savuran kirli çözümler kullanacağız veya istemeyerek de olsa dosya adlarını sisteme uyduracağız gibi duruyor. :/

Pardus... Özgürlük İçin... Özgürlük için Pardus... Vi The Editor Google Summer of Code Django