kaspersky, settings, exclusions, add:
- rules for the project folder
- trusted application for:
- - ..\system32\searchprotocolhost.exe
- - ..\system32\searchfilterhost.exe
- - ..\tortoisesvn\bin\tsvncache.exe
- - ..\tortoisesvn\bin\tortoiseproc.exe
- - ..\tortoisesvn\bin\tortoisemerge.exe
other possible cause:
win7 bug prior sp1: http://support.microsoft.com/kb/982927/en-us
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Tampilkan postingan dengan label tortoisesvn. Tampilkan semua postingan
Tampilkan postingan dengan label tortoisesvn. Tampilkan semua postingan
Rabu, 10 November 2010
Selasa, 09 Maret 2010
[shared] Branching using TortoiseSVN part 2
ok, ngelanjutin dari part 1, saia akan menjelaskan soal feature branch.
untuk post ini saia tidak akan menjelaskan prosedur untuk branching dan merging karena saia rasa di part 1 sudah cukup jelas.. jadi saia akan lebih membahas tentang konsep dari feature branch.
so, pertanyaannya: apa itu feature branch?
jawab: feature branch sbenarnya sama seperti staging branch. perbedaannya feature branch biasanya dibuat dari staging branch, bukan dari trunk, jadi branch of branch.
feature branch ini dibuat untuk memenuhi salah satu aturan yg saia tulis di bagian tambahan pada part 1:
jadi bila pada suatu project ada feature yang cukup besar dan rumit, sehingga diperkirakan membutuhkan waktu 2 hari atau lebih, sebaiknya membuat feature branch khusus untuk feature tersebut.
Kelebihan menggunakan feature branch:
misalkan klien meminta implementasi feature A di page X yang cukup besar/rumit. nah saat kita sedang ditengah2 mengerjakan feature A tersebut ternyata di page X terdapat bug vital dan harus segera diperbaiki. Namun yang jadi masalah page X tersebut sudah terdapat beberapa bagian dari feature A yang masi dalam pengerjaan, jadi tidak mungkin untuk di-deploy (dapat menyebabkan bug). hal tersebut dapat dihindari apabila feature A dikerjakan dalam feature branch.
kasus lain (masih nyambung sama yg di atas), karena feature A cukup rumit, maka pengerjaan memakan waktu bbrp hari, smentara sebelum selesai tidak dapat di-commit karena akan menyebabkan staging server menjadi rusak. nah lalu misalkan karena suatu sebab tempat pengerjaan feature A tersebut tidak dapat digunakan, maka pengerjaan feature A akan dipaksa berhenti. dengan feature branch commit kode yang belum selesai tidak akan mempengaruhi staging server jadi bila terjadi kasus tadi, kita dapat check-out ulang dan melanjutkan pengerjaan di tempat lain.
Kekurangannya:
- memperbesar penggunaan disk space
- ada kemungkinan conflict antara feature branch dengan staging (hati2 dalam me-resolve conflict)
- memperlama deploying, untuk deploy feature A ke production (trunk), merge harus dilakukan 2x: merge feature_a_branch ke staging, kemudian merge staging ke trunk. karena merge proses yg memakan waktu, hal ini dapat menyusahkan apabila kita hanya perlu men-deploy perbaikan kecil (1-2 baris) untuk feature A ke production. maka dari itu biasanya perbaikan2 bug tetap saia lakukan di staging.
ok sgitu saja soal branching2an, post ini hanya merupakan pendapat dari saia dan apa yang saia gunakan saat ini, jadi mungkin tidak spenuhnya benar, dan pastinya ada cara lain yang lebih baik.
untuk post ini saia tidak akan menjelaskan prosedur untuk branching dan merging karena saia rasa di part 1 sudah cukup jelas.. jadi saia akan lebih membahas tentang konsep dari feature branch.
so, pertanyaannya: apa itu feature branch?
jawab: feature branch sbenarnya sama seperti staging branch. perbedaannya feature branch biasanya dibuat dari staging branch, bukan dari trunk, jadi branch of branch.
feature branch ini dibuat untuk memenuhi salah satu aturan yg saia tulis di bagian tambahan pada part 1:
"Usahakan agar setiap update yang ditambahkan di staging selesai dalam sesedikit mungkin commit"
jadi bila pada suatu project ada feature yang cukup besar dan rumit, sehingga diperkirakan membutuhkan waktu 2 hari atau lebih, sebaiknya membuat feature branch khusus untuk feature tersebut.
Kelebihan menggunakan feature branch:
misalkan klien meminta implementasi feature A di page X yang cukup besar/rumit. nah saat kita sedang ditengah2 mengerjakan feature A tersebut ternyata di page X terdapat bug vital dan harus segera diperbaiki. Namun yang jadi masalah page X tersebut sudah terdapat beberapa bagian dari feature A yang masi dalam pengerjaan, jadi tidak mungkin untuk di-deploy (dapat menyebabkan bug). hal tersebut dapat dihindari apabila feature A dikerjakan dalam feature branch.
kasus lain (masih nyambung sama yg di atas), karena feature A cukup rumit, maka pengerjaan memakan waktu bbrp hari, smentara sebelum selesai tidak dapat di-commit karena akan menyebabkan staging server menjadi rusak. nah lalu misalkan karena suatu sebab tempat pengerjaan feature A tersebut tidak dapat digunakan, maka pengerjaan feature A akan dipaksa berhenti. dengan feature branch commit kode yang belum selesai tidak akan mempengaruhi staging server jadi bila terjadi kasus tadi, kita dapat check-out ulang dan melanjutkan pengerjaan di tempat lain.
Kekurangannya:
- memperbesar penggunaan disk space
- ada kemungkinan conflict antara feature branch dengan staging (hati2 dalam me-resolve conflict)
- memperlama deploying, untuk deploy feature A ke production (trunk), merge harus dilakukan 2x: merge feature_a_branch ke staging, kemudian merge staging ke trunk. karena merge proses yg memakan waktu, hal ini dapat menyusahkan apabila kita hanya perlu men-deploy perbaikan kecil (1-2 baris) untuk feature A ke production. maka dari itu biasanya perbaikan2 bug tetap saia lakukan di staging.
ok sgitu saja soal branching2an, post ini hanya merupakan pendapat dari saia dan apa yang saia gunakan saat ini, jadi mungkin tidak spenuhnya benar, dan pastinya ada cara lain yang lebih baik.
Rabu, 03 Februari 2010
[shared] Branching using TortoiseSVN part 1
skarang saia akan sedikit sharing tentang branching dengan tortoise svn. perlu saia beritahukan, implementasi yang saia gunakan mungkin bukan yang terbaik, karena itu kalo ada yg mempunyai implementasi lebih baik tolong beritahu saia melalui comment ^_^
pertama yg perlu dilakukan buat 3 folder di dalam folder project, yaitu: branches, tags dan trunk
kemudian taruh project anda di dalam folder trunk, folder trunk ini akan digunakan sebagai kode stabil yang digunakan di production server.
commit, lalu klik kanan di folder trunk, pilih menu TortoiseSVN>Branch/tag ubah To URL menjadi "../branches/staging", tambahkan message kalo perlu, dan OK.
setelah selesai update folder staging, maka staging akan ditambahkan
folder staging ini digunakan untuk kode staging server, biasa saia gunakan untuk kode2 yg perlu ditest atau dicek oleh klien sebelum masuk production.
setelah melakukan banyak update2 di staging, dan klien menyatakan ok untuk suatu update/feature agar di-deploy ke production, kita dapat dengan mudah menggunakan fitur merge.
Perhatian! untuk mempermudah merging, ikuti aturan commit di akhir post ini..
pastikan fitur yg akan di merge sudah di commit, kemudian klik kanan di folder trunk, pilih menu TortoiseSVN>Merge, pilih "Merge a range of revisions", masukkan url staging dalam URL to merge from, dan tentukan revision dari fitur yg akan di-merge, sebaiknya gunakan show log.
dalam log pilih revision yang akan di-merge, revision yang sudah pernah di-merge akan berwarna abu2, next lalu merge
stelah selesai periksa kode yang ditambahkan, bila ada kesalahan dalam memilih revision gunakan revert pada trunk. sebaiknya jangan pernah secara langsung merubah trunk, kalau ada kesalahan dalam kode, tambahkan perbaikan di staging dan merge ke trunk.
commit dan selesai.
beberapa tambahan yang perlu diperhatikan:
ok segitu dulu, post berikutnya saia akan membahas feature branches dan tags
Buat branch
pertama yg perlu dilakukan buat 3 folder di dalam folder project, yaitu: branches, tags dan trunk
branching -- trunk
-- branches
-- tags
kemudian taruh project anda di dalam folder trunk, folder trunk ini akan digunakan sebagai kode stabil yang digunakan di production server.
branching -- trunk -- app
-- config
-- db
-- dll..
-- branches
-- tags
commit, lalu klik kanan di folder trunk, pilih menu TortoiseSVN>Branch/tag ubah To URL menjadi "../branches/staging", tambahkan message kalo perlu, dan OK.
setelah selesai update folder staging, maka staging akan ditambahkan
branching -- trunk -- app
-- config
-- db
-- dll..
-- branches -- staging -- app
-- config
-- dll..
-- tags
folder staging ini digunakan untuk kode staging server, biasa saia gunakan untuk kode2 yg perlu ditest atau dicek oleh klien sebelum masuk production.
Merge
setelah melakukan banyak update2 di staging, dan klien menyatakan ok untuk suatu update/feature agar di-deploy ke production, kita dapat dengan mudah menggunakan fitur merge.
Perhatian! untuk mempermudah merging, ikuti aturan commit di akhir post ini..
pastikan fitur yg akan di merge sudah di commit, kemudian klik kanan di folder trunk, pilih menu TortoiseSVN>Merge, pilih "Merge a range of revisions", masukkan url staging dalam URL to merge from, dan tentukan revision dari fitur yg akan di-merge, sebaiknya gunakan show log.
dalam log pilih revision yang akan di-merge, revision yang sudah pernah di-merge akan berwarna abu2, next lalu merge
stelah selesai periksa kode yang ditambahkan, bila ada kesalahan dalam memilih revision gunakan revert pada trunk. sebaiknya jangan pernah secara langsung merubah trunk, kalau ada kesalahan dalam kode, tambahkan perbaikan di staging dan merge ke trunk.
commit dan selesai.
Tambahan
beberapa tambahan yang perlu diperhatikan:
- Hindari meng-edit trunk secara langsung
- Tambahkan message yang jelas dalam setiap commit di staging
- Usahakan agar setiap update yang ditambahkan di staging selesai dalam sesedikit mungkin commit, kalau fitur yang ditambahkan cukup besar dan rumit, gunakan feature branch (akan dibahas di post berikutnya)
- Jangan pernah menambahkan 2 fitur dalam 1 revision, pisahkan dalam revision yang berbeda, akan menyulitkan pada saat memilih revision untuk di-merge nantinya
ok segitu dulu, post berikutnya saia akan membahas feature branches dan tags
Langganan:
Postingan (Atom)