2017-02-12 106 views
9

Bu yanıtı okudum: How do I return to an older version of our code in Subversion? ve eski bir düzeltmeye geri dönmek için svn merge -r 150:140 . komutunu kullandım (Geri döndürülen değişiklikleri gerçekleştirmem gerekmedim, sadece eski dosya sürümüne git)). Bundan önce revizyon 150'de temiz bir repo sürümü vardı (dosyalarda manüel değişiklik yok). Yapmak istediğim tüm dosyaların bazı eski sürüme geri dönmek olduğu gibi beni görmeye şaşırtanDeğişikliklerin geri yüklenmesi bazı atlanan yollarla başarısız oldu

... 
Skipped 'some/file.h' 
Skipped 'some/file2.h' 
... 
Skipped 'some/file3.h' 
Skipped 'some/file4.h' 
... 
Summary of conflicts: 
Skipped paths: 4 

(ve önceden herhangi bir değişiklik vardı): Ne yazık ki, bu uyarıları var.

Buna ne sebep olmuş olabilir? Eski versiyona nasıl ulaşırım?

Düzenleme: kontrol ettim ve görünüşe bu dosyalar currrent sürümü (150) (SVN diskte ya ya) bulunmayan:

svn: warning: W155010: The node 'some/file.h' was not found. 

Ama Yani revizyon 140. etkisi var mıydı Yol boyunca bir yerlerde silindi. Ama neden SVN onları geri yükleyemiyor?

+0

kullanarak yeni yerel klasöre revizyon 140 gelen taze bir çalışma kopyasını ödeme daima var mıydı? Subversion, isimlerle iyi başa çıkmaz. – andref

+0

Hayır, bu dosyalar yeni kaldırıldı. – NPS

+0

'svn stat'ünün çıkışı nedir? – Constantin

cevap

4

Böyle bir ağaç çatışması için en yaygın temel neden, çalışma kopyanızın bazı değişikliklere sahip olması ve daha sonra birleştirmeye çalıştığınızdır - kötü şeyler olabilir. Sadece çıktıdan tahmin edersek, "bazı" klasörüyle ilişkili olabilir (yani, tüm dosyalar yalnızca dosyalar değil, 140 ve 150 arasındaki tüm dosyalar kaldırılmışsa ya da birleştirmeden önce atlanan dosyalarda yerel değişiklikleriniz varsa).

Geri revizyon 150
svn revert --recursive 

çalışma kopyasından herhangi Sürümsüz dosyaları & klasörleri silmek ve

kullanarak birleştirmeyi yeniden çalıştırın: Bu ileride olur durumda

yine yürüterek başarısız birleştirme dönmek için deneyin

svn merge -r 150:140 -v --force . 

( -v yerel modifiye edilmiş olsa bile --force, çalışma kopyasından dosyaları siler, daha ayrıntılı bilgileri gösterecektir) Dosya yeniden adlandırır durum her şeyden başarısız olarak

, son çare sadece

svn checkout -r 140 $your_url 
+0

"Bundan önce revizyon 150'de temiz bir repo sürümü vardı (dosyalarda manüel değişiklik yok)." – NPS

+0

svn değişiklikleri ve çalışma kopyalama durumu hakkında daha fazla bilgi sahibi olmadan, yalnızca kök nedeninin gerçekten ne olduğunu tahmin edebilirim – Constantin

+0

biliyorum, bu soruya yorum yazdım. – NPS