Friday, March 13, 2009

Adding level information to nested set tree

Masih cukup terkagum-kagum dengan keindahan yang di-define oleh struktur tree berdasarkan nested sets. Dengan informasi lft dan rght saja sudah cukup untuk membuat reporting query yang kompleks dikerjakan dengan lebih sederhana, dan cukup realtime. Kali ini, ada kebutuhan untuk membatasi view maksimal hanya 5 level ke bawah. Untuk memper-ringan query, saya membutuhkan tambahan informasi 'level' di table tersebut.

Dari membaca-baca lagi, ternyata pada saat mengubah struktur dan mengisi informasi 'level' itu tidak sesulit yang dibayangkan.
Here is the query:

Wednesday, March 11, 2009

Git export ke Subversion

Karena Git lebih superior dari Subversion, use-case yang terjadi pada umumnya adalah melakukan import dari subversion ke git. Sayangnya, kali ini yang terjadi sebaliknya. Saya yang sudah terbiasa menggunakan git (walaupun sederhana) terpaksa harus memberi interface subversion ke rekan kerja yang sudah terbiasa dengan svn sehingga project bisa berjalan tanpa hambatan.

Yang pertama adalah mempersiapkan server svn:

# svn mkdir http://localhost/svn/project1 -m 'project1 placeholder'
# svn mkdir http://localhost/svn/project1/trunk -m 'trunk placeholder'
# svn mkdir http://localhost/svn/project1/tags -m 'tags placeholder'
# svn mkdir http://localhost/svn/project1/branches -m 'branches placeholder'

kemudian di git repository local, buat link ke server svn tadi:

# git svn init -s --prefix=svn/ http://localhost/svn/project1
# git svn fetch
# git checkout -b trunk svn/trunk
# git merge master
# git svn dcommit

dengan cara seperti di atas, hanya versi terakhir yang akan dimasukkan ke svn. tidak masalah karena
secara historikal masih tersimpan di git local.

lihat lebih detail di milis ini