Hohoo… Hari ini agak sedikit stress. Ceritanya saya buat private composer package untuk salah satu project. Setelah package itu di-pull dari repository dengan composer install, saya mengerjakan project seperti biasa. Tapi karena lagi agak malas, beberapa file di folder vendor saya edit langsung. Niat hati sih nanti di-push ke repo.

Ntah apa yang ada dipikiran saya saat itu. Setelah aplikasi berjalan sebagaimana mestinya, saya hapus folder vendor lalu saya lakukan composer update. Dan, seperti yang sudah diduga, file yang sudah di-edit menjadi seperti awal lagi 😐 Oh God, Why? Dan karena folder vendor ini termasuk folder yang masuk dalam list .gitignore, jadi tidak bisa di-restore dengan VCS (kecuali pernah pake git add --force, lalu commit).

Local History for Rescue

Setelah beberapa jam mencoba mengumpulkan kembali serpihan code sebelumnya dari otak, akhirnya saya ingat dengan local history. Biasanya saya menggunakan vim, tapi kebetulan saya menggunakan IDE dari JetBrains. Solusinya simple banget, cukup dengan right click di folder atau root project, lalu pilih Local History > Show History. Kita bisa mencari file-file berdasarkan perubahan yang pernah kita lakukan. Baik itu perubahan langsung dari IDE, maupun perubahan dari luar. Kita bisa memilih hanya file tertentu yang di-revert, suatu folder ataupun keseluruhan perubahan. Atau bisa juga dengan copy paste hanya pada bagian yang dibutuhkan.

Fiuhh… Thanks JetBrains 😀

Berikut penampakan Local History

local-history

Vim

Bila anda juga pengguna vim, sebenernya ada fitur yang serupa. Setiap kali anda edit file akan dibuat file .swp. Sebaiknya dari awal sudah dikonfigurasi agar file backup ini dipisah dari working folder. Detailnya bisa pelajari disini http://vim.wikia.com/wiki/Remove_swap_and_backup_files_from_your_working_directory

Saya belum pernah coba, tapi sepertinya “plugin” ini layak untuk dicoba:
https://github.com/hjdivad/vimlocalhistory
https://github.com/serby/vim-historic

Sepertinya saya harus explore fitur vim yang ini. Btw, punya info vim plugin lain? :/

Iklan

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s