Skip to content

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. :/

Post a Comment

You must be logged in to post a comment.