2008-11-12 9 views
17

Varsayılan farktan daha fazlasına ihtiyacım var! Geçenlerde "Beyond Compare" satın almış ve ben svn ile entegre etmek istiyorum, bu yüzden yazarken onun başlattı:Subversion'ı nasıl üçüncü taraf bir fark aracı kullanırım?

svn diff foo.c Bunu nasıl

?

+1

Linux belirtilen orijinal bir soru. Muhtemelen bu sorunun başlığında bırakılmış olmalı. --diff-cmd svn istemcisi ile –

cevap

23

bir Beyond Compare forum post:

/usr/bin/bcompare_svn:

#!/bin/bash 
/usr/bin/bcompare $6 $7 & 
exit 0 

o svn bir dosya daha açacak, böylece bcompare çağırma açıktır ama eklemek için "exit 0" vardı zamanında.

svn benim programı çağırmak yapmak için, ben Andy Lester cevap ama ben bir yorum eklemek istiyorum ~/.subversion/yapılandırma

diff-cmd=/usr/bin/bcompare_svn 
11

svn --diff-cmd dosyasına bakın. Gönderen

+1

(mayın 1.6.6) hala -L "dosya1 (rev xyz)" -L "dosya2 (dev abc)" gibi, belirtilen komutla -L seçenekleri oluşturur. diff cmd, bunlarla Tamam, kırık. Chris'in, bir başlatıcı komut dosyası oluşturmayı içeren Ötesinde Karşılaştırma sayfasında iyi bir çözümü var. – greggo

8

yılında [yardımcıları] bölümüne aşağıdaki satırı eklendi yeterince büyük bir itibara sahip değil. Ancak, soruya cevap verebilirim, sanırım. Neyse

... Andy zaten kaydetti çalıştırmak "svn help fark" ama sadece size cevap vermek ... olarak

svn diff --diff-cmd < fark-cmd > --extensions < diff- cmd seçenekleri >

svn diff --diff-cmd/usr/bin/diff'in --extensions "-bca" < dosya (lar) >

4

Geçenlerde bizim Using Beyond Compare With Version Control Systems web sayfasına Linux üzerinde Tahrip için talimatlar eklendi . Yukarıdaki bağlantıdaki adımları izledikten sonra "svn diff" çalıştırdığınızda Linux için Beyond Compare 3'ü başlatmanız gerekir.

+0

Not, bunun çalışması için pro sürümüne ihtiyacınız var. –

+0

Evet, bu benim problemlerimi çözdü :-) teşekkürler – Abdullah

4

son Subversion'da, senaryo/usr/bin/bcompare_svn böyle olmalı:

#!/bin/bash 
cp $6 $6.save 
cp $7 $7.save 
{ 
    /usr/bin/bcompare $6.save $7.save 
    rm $6.save $7.save 
} & 
exit 0 

ya da (denenmemiş kodu)

#!/bin/bash 
base=`echo $3 | sed -r "s/^([^\(]+)[ \t]+\((.+)\)$/\1.\2/g" | xargs -i% basename "%"` 
current=`echo $5 | sed -r "s/^([^\(]+)[ \t]\((.+)\)$/\1.\2/g" | xargs -i% basename "%"` 

mv "$6" "/tmp/$base" 
mv "$7" "/tmp/$current" 
{ 
    /usr/local/bcompare/bin/bcompare "/tmp/$base" "/tmp/$current" 
    rm "/tmp/$base" "/tmp/$current" 
} & 
exit 0 
+1

İkinci kod test edildi: işler .. harika! +1 – ezdazuzena