maaf menggunakan beberapa ruang hanya pada pengulangan dari jawaban yang diberikan sebelumnya - tapi ini adalah sesuatu yang selalu berakhir dengan masalah.
Katakanlah saya telah memperbarui file lokal ke revisi terbaru, yaitu 854. Lalu, saya ingin mendapatkan revisi yang lebih lama - versi file dari beberapa revisi sebelumnya, katakan revisi 851.
Salin akan berfungsi:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. Namun, saya tidak dapat diganggu grepping untuk URL repo :)
Pembaruan yang tampaknya berfungsi:
svn up -r 851 ./l3toks.dtx
... namun, ini juga menandai salinan lokal sebagai "baru diperiksa", atau lebih tepatnya "sama dengan revisi online" (yaitu di Tortoise / RabbitVCS Anda mendapatkan tanda centang OK hijau) - yang berarti Anda tidak dapat melakukan svn ci -m "rolled back to r 851"
: hanya karena lokal subversion
dieksekusi tidak akan melihat perubahan lokal, dan tidak akan repot untuk mengunggah apa pun ke repositori online.
Dan, seperti yang sudah dijawab, membalikkan penggabungan berfungsi - tetapi dalam kasus ini, orang seharusnya tidak mengandalkan sintaks pintasan; tetapi secara khusus nyatakan:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Harus saya akui - saya tidak akan pernah mengerti kalimat " Membalikkan r854 melalui r852 ke dalam file " berarti " Baru saja mendapatkan r851 dari file Anda, dan menimpa apa pun yang sebelumnya Anda miliki secara lokal - dan ditandai sebagai berbeda dari revisi online terbaru, jadi Anda dapat memeriksanya kembali secara online sebagai revisi 'rollback' baru ", tapi saya kira (dan harap :)) itulah fungsinya :)
Setelah ini, seseorang dapat menggunakan svn diff
untuk memastikan dengan cepat jika kami mendapatkan revisi yang tepat secara lokal; dan juga, file tersebut akan ditandai dengan tanda seru merah di Tortoise / RabbitVCS (yaitu, berbeda dari versi terbaru yang dilakukan), dan svn ci -m "rolled back to r 851"
dapat dijalankan saat ini.
Juga, perhatikan bahwa jika Anda, akhirnya, berubah pikiran setelah penggabungan terbalik ( yaitu Anda ingin tetap bekerja pada revisi terbaru, HEAD, di sini 854 - setelah Anda kembali ke 851 secara lokal, tetapi belum melakukan rollback ), Anda tidak boleh menggunakan svn up
, karena itu hanya akan mengatakan bahwa itu sudah " Pada revisi 854 "; gunakan sebagai gantinya svn revert --recursive .
atau serupa ...
Bersulang!
Ref: Cara Roll Back Changes menggunakan Subversion - Jacob Wright - Flex, AIR, PHP, dll.
EDIT: ... dan ternyata, efek yang persis sama dengan svn merge -r HEAD:851 l3toks.dtx
, dapat dicapai dengan:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.