2010-09-27 21 views
8

geri dönerek ben yanlışlıkla en çok fan.txt diyelim basitleştirilmiş Örnekteki uğruna dosyaya yanlış değişikliği, taahhüt:svn: önceki sürüme

fan.txt, rev (doğru) 300:

E = mc^2 

E = mc^3 

ben nasıl işlemek sonrakine rev 300 yeniden işlemek:

fan.txt, (yanlış) 301 rev? Foo.txt dosyasını 300 olarak güncellediğimde, doğru dosyayı aldım ancak durumu doğru & taahhüt edilmek zorunda değil.

Not: Sadece geri dönmek istediğim foo.txt var. Rev 301'deki diğer revizyonlar önemlidir ve bunları saklamak zorundayım.

+2

olası yinelenen http://stackoverflow.com/questions/345997/better-way-to-revert-to-a-previous -svn-revizyon-of-a) –

+0

Bu benim için çalışmıyor gibi görünüyor; Ya farklı ya da yanlış bir şey yapıyorum. –

+0

oh bekle, rev # önce "-" özledim. Evet, bu bir kopya. –

cevap

15
svn merge -r301:300 foo.txt 
svn commit -m 'revert foo.txt to 300' 
[Dosyanın önceki bir SVN düzeltmeye geri dönmek daha iyi bir şekilde?] (Içinde
2
svn merge -c-301 . 
svn commit -m "Reverting commit 301" 
+0

Yine de r301'i geri almamalı mıydınız? ve bence bu bir '-c' –

+0

Sander: Doğru, sabit :) – harald

9

Eğer TortoiseSVN kullanıyorsanız, bu şaşırtıcı derecede kolaydır. Sadece bu dosya için günlüğü görüntüleyin, revizyon 300'e sağ tıklayın ve bu revizyona geri dönün (bu bir yerel işlemdir). Ardından yerel dosyanızı 302 olarak işleyebilirsiniz.

İsteğe bağlı olarak, bir süre önce gerçekleştiyse, bu düzeltmeden değişiklikleri geri almayı seçebilirsiniz. Bu, yalnızca bu kontrolde gerçekleşen değişiklikleri geri döndürecektir (bunu 301'de gerçekleştirirsiniz).

+0

Hayır, bunu denedim. Bu düzeltmeye geri dönmeme izin verir, ancak dosyayı kirli olarak işaretlemez. –

+0

Çalışırsa, "güncellemeyi" "güncellemeyi" seçmeye dikkat edin. Bazen kaplama simgeleri gerçek durumu göstermez. "Commit" durumunda, dosyayı listede kirli olarak görmelisiniz. – jdehaan

+1

@ Jason: Tek. Son kez bir revizyonu geri almak zorunda kaldım, tam olarak JoshD'nin söylediklerini yaptım ve gayet iyi çalıştı. –