Git deposuna dosya eklemeyi unutmamak için…

Son zamanlarda django-south ile çalışmaya başladığımdan beri, sık sık depoya gönderilecek dosyalar arasında depoya eklenmemeiş dosyaları eklemeyi unutur oldum. Daha doğrusu gözden kaçırıyorum ister istemez. Çünkü oluşturulan dosyalar alt klasörde duruyor ve o klasörler ise kapalı. Yani içindeki dosyalar listelenmiyor pencerede. Doğal olarak kırmızı renkteki dosyaları sağ tıklayıp eklemeyi unutuyorum. Sonunda bu duruma bir dur demem gerekti ve araştırdım ettim, bir yol buldum.

Bulduğum yol git’in muhteşem hook’larından pre-commit kullanmak oldu. proje dizinindeki .git klasörü altında bulunan hooks klasöründeki örnek birkaç hook dosyasında biri olan pre-commit...

Devamı...

Ubuntu sunucuda headless firefox kullanmak

Linux sunucularda genelde olmayan, kullanılmayan hatta gerek dahi duyulmayan yegane şey;  grafik arayüzdür. Sebebi ise basittir. Suncu verilen görevi yerine getirmek için sağlıklı, güvenli ve hızlı çalışmak zorundadır. Özellikle de “Güvenlik”. Linux sistem yöneticileri herşeyi konsoldan yapmanın bir yolunu muhakkak bulur. Grafik arayüzlü bir sistemde ise çok daha fazla açık oluşabileceği hassasiyetinden dolayı böyle bir sistem kullanmayı reddederler. Ancak işler bir yerde grafik işleme kabiliyeti gerektirebilir.

Örneğin “Selenium” denilen beowser emülatörü kullanımı için illa ki grafik işleme kabiliyeti lazım. Yine de, bu durumda “Selenium”u Linux sunucuda kullanmak imkansızdeğildir...

Devamı...

Gereksiz dosyaların git deposuna eklenmesini engellemek

Bunun için proje köküne “.gitignore” adında bir dosya oluşturup örnekteki içeriği ekleyebilirsiniz. Aşağıdaki örnek içerikte bulunan uzantılar ve dosyaların haricinde depoya gitmesini istemediğiniz dosyalar ve ya dosya türleri varsa bu listeye ekleyebilirsiniz. Aynı zamanda bu dosyayı git deposuna eklemenizi proje ortaklarınız içinde faydalı olacaktır. Böylelikle bütük kullanıcılarda aynı dosyalar bir kerede engellenmiş olur.

Devamı...

Uzak sunucudaki git deposunu yerele çekmek

Uzak sunucudaki git deposunu yerele çekmek diğer anlamıyla, remote repo’yu clone’lamak için aşağıdaki adımları takip edeceğiz.
Yerel makinede projenin klonlanacağı klasöre geçiyoruz. Örnekte “~/dev/” klasörünü kullancağım

veli@veli-GA-990XA-UD3:~/dev/git clone [email protected]:project.git

Cloning into ‘project’…
Enter passphrase for key ‘/home/veli/.ssh/id_rsa’:
warning: You appear to have cloned an empty repository.
Checking connectivity… done.

Yukarıda daha önceki yazımda “gitolite” aracılığı ile ilklendirmiş olduğumuz boş depoyu yerelimize klonlamış olduk. Bundan sonra yapılacak olan iş proje klsörü içine proje dosyalarını koymak ve bunları depoya göndermek. Dosyaları ekledikten sonra depoya göndermek için şunları yapıyoruz:

Devamı...

Gitolite ile Git’e kullanıcı eklemek

Eklenecek kullanıcının public_key’i alınır. Bunun için kullanıcın bilgisayarında, geliştirme için kullanılan kullanıcı hesabı ile login olunur ve aşağıdaki komut çalıştırılır.

ali@ali-GA-990XA-UD3:~/ ssh-keygen -t rsa -C “ali@ali-GA-990XA-UD3

bu komut ile kullanıcın home klasöründe bulunan .ssh klasörü altında “[email protected]” isimli bir public key oluşur. Bu public key dosyası gitolite yönetici olan kullanıcıya iletilir. gitolite yöneticisi olan kullanıcı, bu public key dosyasını “gitolite-admin/keys” klasörüne yerleştirir ve gitolite deposuna ekler

veli@veli-GA-990XA-UD3:~/gitolite-admin/git add keydir/[email protected]

Sonrasında eklenecek kullanıcı için git kullanıcısı oluşturulur:

Devamı...

Kendi Git deponuzu kurun ve Gitolite ile yönetin

Bu doküman ile Ubuntu sistemlerde git sürüm yönetim sistemini kolaylıkla kurup rahat bir şekilde yönetebilirisiniz. Öncelikle ubuntu sistemlerinde git sürüm yönetim sistemi nasıl kurulur onu inceleyelim

  • Git sürüm yönetim sistemi kurulumu:

veli@veli-GA-990XA-UD3:~/ sudo apt-get install git-core

Hepsi bu 🙂

  • Gitolite ile Git yönetimi:

Git sürüm yönetim sisteminin komut dilini ezberlemek ve her seferinde hatırlamaya çalışmak biraz sıkıntılı, özellikle de yeni depo kurmanız ve kullanıcı ve dahi haklarını yönetmeniz gerekiyorsa…

Gitolite bu işleri basitleştirmek amacıyla, daha önceden var olan az daha sorunlu, sıkıntılı ve artık geliştirilmesi bırakılmış olan Gitosis yerine oluşturulmuş bir projedir. Amaç depo ve kullanıcı yönetimini basitleştirmek, sistem yöneticilerinin kendilerine daha fazla zaman ayırabilmelerini sağlamaktır :p

Ubuntu sisteminde gitolite kurmak ve sürüm yönetim sistemini bunun üzerine taşımak için git sürüm yönetim sistemini kurduktan sonra aynı yöntem ile gitolite’ı sisteme kuracağız. Ancak bunu yaparken uzak sunucu kullanmak isteyeceğinizi varsayarak sistemi yapılandıracağız. Bunun için uzak sunucuya ssh ile giriş yaptıktan sonra süper kullanıcı konumuna geçmeniz gerekli.

Devamı...

Twitter ve (dahası için) engelleri aşmak

Eğer bilgisayar üzerindeyseniz işini kolay. Birkaç seçenekten en basiti ile başlayalım:

  • DNS Değiştirmek:

DNS Adresini değiştirerek kolayca Twitter’a ulaşabilirsiniz.

  • Opera Browser Kullanmak:

Opera BROWSER‘ı indirip kurun ve ayarlarından Off-Road’ı etkinleştirin. (DNS değiştirmenize gerek yok.)

  • TOR Browser Kullanmak:

TOR Browser Bundle indirip kullanabilirsiniz. (DNS değiştirmenize gerek yok. Sadece browseri kurup gitmek istediğiniz adrese bu browser ile gitmeniz yeterli. Veri güvenliği için tercihen sadece HTTPS protokolünü kullanınız.)

  • Kullandığınız browser için Proxy eklentisi kurmak:

Firefox veya Chrome için çeşitli proxy eklentileri mevcut. Bu eklentilerden birisini kurarak, Hide My Ass ya da Free Proxy List gibi adreslerden edinebileceğiniz ...

Devamı...

Dial-Up Hand Shake (Nostalji)

Devamı...

RAID 1 sistemin tek diskini başka makineye bağlayıp yedek almak

Farz-ı misal yedekleme için kullandığınız veri yolları yavaş çalışan bir Software RAID 1 üzerinde koşan makinanız var. Zaman içinde bu makinanın diskinin dolması ile yedeklerin arşiv disklerine kayıt edilme zamanı geldi diyelim. Arşiv olarak kullanmak üzere aldığınız diske verileri aktarmanız gerekiyor ama başta dediğim gibi yedekleme makinasının veri yolları o kadar yavaş ki içindeki yedekleri arşiv diskine aktarması günler alacak.

Normalde yavaş veri yolu olan bir makineden veriyi içindeki diski daha hızlı bir makineye takarak almayı tercih edenlerdenim, ancak şimdiye kadar SoftRAID 1 üzerinde koşan bir makinadan bu şekilde veri çekmemiştim.

Veri yüklü diski söktüm arşiv diski ile birlikte hızlı bir makineye bağladım ve sistemi boot ettim...

Devamı...

Amazon S3 buketini Linux’a mount etmek

Eğer Amazon S3 servisindeki buketinizin içindeki dosyaların bilgisayarınızdaki kopyalarında değişiklik yaptıktan sonra illaki Firefox s3 organizer gibi bir eklenti ya da s3cmd gibi bir linux konsol komutu üzerinden buketteki dosyayı güncellemekten sıkıldıysanız, fuse tabanlı s3fs ile buketlerinizi yerel makinenize mount ederek dosya sisteminin bir parçası gibi kullanabilirsiniz.

Malesef şimdilik Ubunut paket deposunda bulunmamakta ancak kaynaktan kurulum düşündüğünüz kadar zor değil. Sadece kaynağı derlerken gerekli olan bağımlılıkların sisteminizde kurulu olması gerekmekte. Kuruluma hazırlık için öncelikle bu bağımlılıkları kurmanız gerekmekte:

# sudo apt-get update

# sudo apt-get install build-essential gcc libfuse-dev fuse-utils libcur...

Devamı...