Saya sudah mulai menggunakan Subversion dengan TortoiseSVN. Jika saya membuka log dan klik kanan pada revisi lama saya melihat dua opsi yang terdengar seperti mereka memutar kembali ke versi yang lebih lama: "Perbarui item ke revisi" dan "Kembalikan ke revisi ini".
Saya mengerti bahwa memperbarui revisi yang lebih lama digunakan ketika Anda hanya ingin melihat kembali versi lama tetapi tidak benar-benar mengubah repositori. Kembalikan adalah ketika Anda benar-benar mengacau dan ingin revisi terbaru dalam repositori sama dengan versi yang lebih lama.
Jadi katakanlah revisi HEAD adalah 100 dan saya kembali ke 95. Ini akan membalikkan penggabungan copy pekerjaan saya kembali ke 95. Lalu saya bisa melakukan perubahan itu ke repositori yang akan membuat revisi 101 benar? Apa bedanya jika saya memperbarui kembali ke revisi 95? Bukankah itu masih membalik perubahan dari revisi terakhir? Saya bingung bagaimana kondisi copy pekerjaan saya berbeda setelah Reverting atau Memperbarui ke revisi yang lebih lama.
sumber
update to
danrevert to/from
memperlakukan perubahan lokal (perubahan tidak dikomit)?Untuk memahami perbedaan kondisi copy pekerjaan Anda di kedua skenario, Anda harus memahami konsep revisi BASE :
Salinan kerja Anda berisi snapshot dari setiap file (disembunyikan di folder .svn) di revisi DASAR ini, artinya seperti saat terakhir diambil dari repositori . Ini menjelaskan mengapa copy pekerjaan membutuhkan ruang 2x dan bagaimana mungkin Anda dapat memeriksa dan bahkan mengembalikan modifikasi lokal tanpa koneksi jaringan.
Perbarui item ke Revisi mengubah revisi basis ini, menjadikan DASAR ketinggalan zaman. Ketika Anda mencoba melakukan modifikasi lokal, SVN akan melihat bahwa BASE Anda tidak cocok dengan HEAD repositori. Komit akan ditolak hingga Anda melakukan pembaruan (dan mungkin gabungan) untuk memperbaikinya.
Kembalikan ke revisi tidak mengubah DASAR. Secara konseptual hampir sama dengan mengedit file secara manual agar sesuai dengan revisi sebelumnya.
sumber
update to
danrevert to/from
memperlakukan perubahan lokal (perubahan tidak dikomit)?File-file dalam copy pekerjaan Anda mungkin terlihat persis sama setelah itu, tetapi mereka masih tindakan yang sangat berbeda - repositori dalam keadaan yang sama sekali berbeda, dan Anda akan memiliki opsi yang berbeda yang tersedia untuk Anda setelah mengembalikan daripada "memperbarui" ke revisi lama .
Secara singkat, "perbarui ke" hanya memengaruhi copy pekerjaan Anda, tetapi "gabungkan dan komit" akan mempengaruhi repositori.
Jika Anda "memperbarui" ke revisi lama, maka repositori tidak berubah: dalam contoh Anda, revisi HEAD masih 100. Anda tidak harus melakukan apa-apa, karena Anda hanya bermain-main dengan copy pekerjaan Anda. Jika Anda membuat modifikasi pada copy pekerjaan Anda dan mencoba melakukan, Anda akan diberitahu bahwa copy pekerjaan Anda sudah kedaluwarsa, dan Anda perlu memperbarui sebelum Anda dapat melakukan. Jika orang lain yang bekerja di repositori yang sama melakukan "pembaruan", atau jika Anda memeriksa copy pekerjaan kedua, itu akan menjadi r100.
Namun, jika Anda "membalikkan penggabungan" ke revisi lama, maka copy pekerjaan Anda masih berdasarkan pada HEAD (dengan asumsi Anda up-to-date) - tetapi Anda membuat revisi baru untuk menggantikan perubahan yang tidak diinginkan. Anda harus melakukan perubahan ini, karena Anda mengubah repositori. Setelah selesai, setiap pembaruan atau copy pekerjaan baru berdasarkan HEAD akan menunjukkan r101, dengan konten yang baru saja Anda komit.
sumber
Perbarui copy pekerjaan Anda ke revisi yang dipilih. Berguna jika Anda ingin memiliki copy pekerjaan Anda mencerminkan waktu di masa lalu, atau jika ada komitmen lebih lanjut ke repositori dan Anda ingin memperbarui copy pekerjaan Anda satu langkah pada suatu waktu. Yang terbaik adalah memperbarui seluruh direktori dalam copy pekerjaan Anda, bukan hanya satu file, jika tidak copy pekerjaan Anda bisa tidak konsisten. Ini digunakan untuk menguji tujuan rev tertentu, jika tes Anda telah dilakukan, Anda dapat menggunakan perintah ini untuk menguji rev lain atau menggunakan Pembaruan SVN untuk mendapatkan HEAD
Jika Anda ingin membatalkan perubahan sebelumnya secara permanen, gunakan Kembalikan ke revisi ini .
- dari TSVN help doc
Jika Anda Perbarui copy pekerjaan Anda ke rev sebelumnya, ini hanya mempengaruhi copy pekerjaan Anda sendiri, setelah Anda melakukan beberapa perubahan, dan ingin melakukan, Anda akan gagal, TSVN akan mengingatkan Anda untuk memperbarui WC Anda ke revisi terbaru terlebih dahulu Jika Anda Kembalikan ke rev, Anda dapat berkomitmen ke repositori.semua orang akan kembali ke rev setelah mereka melakukan pembaruan.
sumber
Teks dari referensi Kura-kura:
Perbarui item ke revisi Perbarui copy pekerjaan Anda ke revisi yang dipilih. Berguna jika Anda ingin memiliki copy pekerjaan Anda mencerminkan waktu di masa lalu, atau jika ada komitmen lebih lanjut ke repositori dan Anda ingin memperbarui copy pekerjaan Anda satu langkah pada satu waktu. Yang terbaik adalah memperbarui seluruh direktori dalam copy pekerjaan Anda, bukan hanya satu file, jika tidak copy pekerjaan Anda bisa tidak konsisten.
Jika Anda ingin membatalkan perubahan sebelumnya secara permanen, gunakan Kembalikan ke revisi ini.
Kembalikan ke revisi ini Kembalikan ke revisi sebelumnya. Jika Anda telah membuat beberapa perubahan, dan kemudian memutuskan bahwa Anda benar-benar ingin kembali ke hal-hal yang ada dalam revisi N, ini adalah perintah yang Anda butuhkan. Perubahan dibatalkan di copy pekerjaan Anda sehingga operasi ini tidak mempengaruhi repositori sampai Anda melakukan perubahan. Perhatikan bahwa ini akan membatalkan semua perubahan yang dilakukan setelah revisi yang dipilih, mengganti file / folder dengan versi sebelumnya.
Jika copy pekerjaan Anda dalam keadaan tidak dimodifikasi, setelah Anda melakukan tindakan ini copy pekerjaan Anda akan ditampilkan sebagai dimodifikasi. Jika Anda sudah memiliki perubahan lokal, perintah ini akan menggabungkan perubahan yang dibatalkan ke dalam copy pekerjaan Anda.
Apa yang terjadi secara internal adalah bahwa Subversion melakukan penggabungan terbalik dari semua perubahan yang dilakukan setelah revisi yang dipilih, membatalkan efek dari komitmen sebelumnya.
Jika setelah melakukan tindakan ini, Anda memutuskan untuk membatalkan pembatalan dan mengembalikan copy pekerjaan Anda ke keadaan yang sebelumnya tidak dimodifikasi, Anda harus menggunakan TortoiseSVN → Kembalikan dari dalam Windows Explorer, yang akan membuang modifikasi lokal yang dibuat oleh tindakan penggabungan terbalik ini.
Jika Anda hanya ingin melihat seperti apa file atau folder pada revisi sebelumnya, gunakan Perbarui untuk revisi atau Simpan revisi sebagai ... sebagai gantinya.
sumber
Pembaruan @BaltoStar untuk revisi sintaks:
http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.update.html
Di mana 30 adalah angka revisi. Semoga bantuan ini!
sumber