Membuat dan Menerapkan Patch

Untuk proyek sumber terbuka (seperti yang satu ini) setiap orang mempunyai akses baca ke repositori, dan setiap orang bisa melakukan kontribusi terhadap proyek. Lalu bagaimana kontribusi itu dikontrol? Jika setiap orang bisa mengkomit perubahan, proyek akan tidak stabil secara permanen dan mungkin rusak secara permanen. Dalam situasi ini perubahan diatur dengan mengirimkan file patch ke tim pengembangan, yang mempunyai akses tulis. Mereka bisa meninjau ulang dulu file patch, dan kemudian mengirimkannya ke repositori atau menolaknya kembali ke pembuat.

File Patch adalah file Unified-Diff yang menampilkan perbedaan antara copy pekerjaan Anda dan revisi base.

Membuat File Patch

Pertama Anda perlu membuat dan menguji perubahan Anda. Kemudian daripada menggunakan TortoiseSVNKomit... pada folder di atasnya, Anda pilih TortoiseSVNBuat Patch...

Gambar 4.63. Dialog Buat Patch

Dialog Buat Patch

Sekarang Anda bisa memilih file yang ingin Anda sertakan dalam patch, seperti yang Anda inginkan dengan komit penuh. Ini akan menghasilkan file tunggal berisi ringkasan dari semua perubahan yang sudah Anda buat ke file yang dipilih sejak pemutahiran terakhir dari repositori.

Kolom dalam dialog ini bisa dikustomisasi dalam cara yang sama seperti kolom dalam dialog Periksa modifikasi. Baca bagian bernama “Status Lokal dan Remote” untuk detil selanjutnya.

By clicking on the Options button you can specify how the patch is created. For example you can specify that changes in line endings or whitespaces are not included in the final patch file.

Anda bisa menghasilkan patch terpisah yang berisi perubahan ke set file yang berbeda. Tentunya, jika Anda membuat file patch, buat beberapa perubahan lagi ke file yang sama dan kemudian buat patch lain, file patch kedua akan menyertakan kedua set perubahan.

Simpan file menggunakan nama file pilihan Anda. File patch bisa memiliki ekstensi yang Anda sukai, tapi konvensi seharusnya .patch atau ekstensi .diff. Sekarang Anda siap untuk mengirimkan file patch Anda.

Tip

Do not save the patch file with a .txt extension if you intend to send it via email to someone else. Plain text files are often mangled with by the email software and it often happens that whitespaces and newline chars are automatically converted and compressed. If that happens, the patch won't apply smoothly. So use .patch or .diff as the extension when you save the patch file.

Selain ke suatu file, Anda dapat juga menyimpan patch tersebut ke clipboard. Anda mungkin ingin untuk melakukannya supaya Anda dapat menempelkannya ke dalam email untuk dikaji ulang oleh orang-orang lain. Atau jika Anda memiliki dua copy pekerjaan di satu mesin dan Anda ingin memindahkan perubahan-perubahan dari satu ke yang lain, suatu patch ke clipboard adalah cara yang cukup nyaman untuk melakukannya.

If you prefer, you can create a patch file from within the Commit or Check for Modifications dialogs. Just select the files and use the context menu item to create a patch from those files. If you want to see the Options dialog you have to hold shift when you right click.

Menerapkan File Patch

Patch files are applied to your working copy. This should be done from the same folder level as was used to create the patch. If you are not sure what this is, just look at the first line of the patch file. For example, if the first file being worked on was doc/source/english/chapter1.xml and the first line in the patch file is Index: english/chapter1.xml then you need to apply the patch to the doc/source/ folder. However, provided you are in the correct working copy, if you pick the wrong folder level, TortoiseSVN will notice and suggest the correct level.

Untuk menerapkan file patch ke copy pekerjaan Anda, Anda perlu mempunyai akses baca ke repositori. Alasan ini adalah bahwa program penggabung harus merujuk perubahan kembali ke revisi terhadap perubahan dibuat oleh pengembang secara remote.

From the context menu for that folder, click on TortoiseSVNApply Patch... This will bring up a file open dialog allowing you to select the patch file to apply. By default only .patch or .diff files are shown, but you can opt for All files. If you previously saved a patch to the clipboard, you can use Open from clipboard... in the file open dialog. Note that this option only appears if you saved the patch to the clipboard using TortoiseSVNCreate Patch.... Copying a patch to the clipboard from another app will not make the button appear.

Alternatifnya, jika file patch mempunyai ekstensi .patch atau .diff, Anda bisa mengklik kanan padanya secara langsung dan pilih TortoiseSVNTerapkan Patch.... Dalam hal ini Anda akan ditanya untuk memasukan lokasi copy pekerjaan.

Dua metode ini menawarkan cara berbeda dalam melakukan hal yang sama. Dengan metode pertama Anda milih WC dan melihat file patch. Yang kedua Anda memilih file patch dan melihat ke WC.

Sekali Anda memilih file patch dan lokasi copy pekerjaan, TortoiseMerge dijalankan untuk menggabung perubahan dari file patch dengan copy pekerjaan Anda. Jendela kecil mendaftar file yang sudah diubah. Klik ganda pada setiap file untuk meninjau perubahan dan simpan file gabungan.

Patfh pengembang remote sekarang sudah menerapkan ke copy pekerjaan Anda, maka Anda perlu mengkomit untuk membolehkan orang lain untuk mengakses perubahan dari repositori.