2010-08-27 15 views
7

Situation: Bir SVN deposu var, 100 revision, rev. En yenisi 100. Rev olarak bazı değişiklikler yaptım. 90 şimdi geri alınması gereken. Devirdeki değişiklikler 90 bağımsızdır, bu yüzden aşağıdaki revizyonları etkilemezler.SVN: Rastgele bir değişiklikle ilgili değişiklikleri geri döndürün, ancak aşağıdaki tüm değişiklikleri koruyalım

Problem: Yalnızca devirdeki değişiklikleri geri almak istiyorum. 90, ancak yine de baş revizyonumdaki tüm revizyonlarda tüm değişikliklerin olmasını istiyorum.

Question:Yalnızca rastgele bir revizyondaki değişiklikleri geri döndürmek için SVN'de herhangi bir işlev var mı?

+0

Muhtemelen bir kopyası: http://stackoverflow.com/questions/13330011/how-to-revert-an-svn-commit –

cevap

12

Ters birleştirme yapmanız gerekir, yani rev:rev-1 aralığındaki birleştirme. Eğer çalışma dizinde ise komut satırında Örneğin,: TortoiseSVN yılında

`svn merge -r 90:89 .` 

, birleştirmeye Revizyon aralığı için 90 girip Ters birleştirme kontrol etmeniz gerekir onay kutusunu Merge dialog görünüyor (Bende yok ki teyit edemiyorum).

+1

Tek bir düzeltmeyi geri almak için alternatif (tartışmasız daha basit) sözdizimi şöyledir: 'svn birleştirme -c -90. –

4

TortoiseSVN ile günlüğü açın ve geri almak istediğiniz düzeltmeyi bulun. Satırı sağ tıklayın ve "Bu revizyondaki değişiklikleri geri al" ı seçin. Bu, çalışma kopyanızda bu düzeltmeyi geri alacak yerel değişiklikleri yapar.

+0

Bu yalnızca Windows'ta çalışır. Linux için Tortoise için alternatif olan RapidSVN'yi kullanıyorum ve bu işlevselliğe sahip değil. –