daha önce verilen cevabın tekrarı için biraz yer kullandığım için üzgünüm - ama bu her zaman başıma bela olan bir şey.
Diyelim ki yerel dosyaları en son revizyona güncelledim, ki bu 854'tür. Daha sonra, daha eski bir revizyon almak istiyorum - birkaç revizyondan önceki dosyanın versiyonu, revizyon 851 diyelim.
Kopyalama işe yarar:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. Ancak, repo URL için selamlamak rahatsız olamaz :)
Güncelleme görünüşte işe yarayabilir:
svn up -r 851 ./l3toks.dtx
... ancak aynı zamanda yerel kopyayı "yeni kullanıma alınmış" veya daha çok "çevrimiçi revizyonla" olarak işaretler (yani Tortoise / RabbitVCS'de yeşil bir Tamam onay işareti alırsınız) - bu, yapamayacağınız anlamına gelir svn ci -m "rolled back to r 851"
: subversion
yürütülebilir dosya yerel değişiklikleri fark etmez ve çevrimiçi veri havuzuna hiçbir şey yüklemekten rahatsız olmaz.
Ve daha önce yanıtlandığı gibi, ters birleştirme çalışır - ancak bu durumda, kısayol sözdizimine güvenilmemelidir; ancak özellikle belirtin:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Itiraf etmeliyim - Ben cümleyi bunuanlayamaz " Ters-birleştirme dosyası içine r852 yoluyla r854 " "anlamında Sadece dosyanın r851 var ve daha önce yerel vardı ne olursa olsun üzerine yazılır - ve en son çevrimiçi revizyon farklı olarak işaretli olduğu için yeni bir 'geri alma' revizyonu olarak tekrar çevrimiçi olarak kontrol edebilirsiniz , ancak sanırım (ve umarım :)) işte budur :)
Bundan sonra svn diff
, doğru revizyonu yerel olarak geri alırsak hızlı bir emin olmak için kullanılabilir ; ve ayrıca, dosya Tortoise / RabbitVCS'de (yani en son taahhüt edilen sürümden farklı olarak) kırmızı bir ünlem işaretiyle işaretlenir ve svn ci -m "rolled back to r 851"
bu kez çalışabilir.
Ayrıca, nihayet, ters birleştirme işleminden sonra fikrinizi değiştirirseniz ( yani, en son, HEAD revizyonu, burada 854), yerel olarak 851'e geri döndükten sonra, ancak geri dönmeyi taahhüt etmediyseniz, ), kullanmamalısınız svn up
, çünkü basitçe "zaten 854 revizyonunda " olduğunu söyleyecektir ; bunun yerine svn revert --recursive .
veya benzerlerini kullanın ...
Şerefe!
Ref: Subversion - Jacob Wright - Flex, AIR, PHP, vb.
EDIT: ... ve görünüşe göre, tam olarak aynı etki svn merge -r HEAD:851 l3toks.dtx
ile elde edilebilir:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.