GNU/Linux >> Belajar Linux >  >> Linux

Cara melihat svn diff dengan gaya vimdiff di svn

Edit file $HOME/.subversion/config sehingga berisi baris:

diff-cmd = <your favorite diff application>

Beberapa aplikasi berbeda mendukung svn. Misalnya, diff-cmd = meld harus bekerja dengan baik. Namun, vimdiff adalah tidak salah satu diantara mereka. Alasannya adalah svn diff memberikan file untuk dibandingkan sebagai argumen ke-6 dan ke-7, dan bukan sebagai argumen ke-1 dan ke-2 seperti biasanya. Jadi yang dilakukan kebanyakan orang dalam situasi ini adalah:

Buat skrip pembungkus :

#!/bin/sh

/usr/bin/vimdiff ${6} ${7}

Simpan, misalnya, di $HOME/bin/svndiffwrap.sh

Jangan lupa untuk membuatnya dapat dieksekusi chmod +x $HOME/bin/svndiffwrap.sh .

Jadikan sebagai perintah svn diff :

di $HOME/.subversion/config :

diff-cmd = /home/<username>/bin/svndiffwrap.sh

Catatan :Beberapa klien svn tidak mendukung jalur yang menggunakan $HOME variabel lingkungan. Jadi sangat berguna untuk menentukan jalur lengkap.


Ditemukan di:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/

Entri blog ini mengambil skrip langsung dari contoh alat diff eksternal buku SVN:

diffwrap.sh

#!/bin/sh

# Configure your favorite diff program here.
DIFF="/usr/local/bin/vimdiff"

# Subversion provides the paths we need as the sixth and seventh 
# parameters.
LEFT=${6}
RIGHT=${7}

# Call the diff command (change the following line to make sense for
# your merge program).
$DIFF $LEFT $RIGHT

# Return an errorcode of 0 if no differences were detected, 1 if some were.
# Any other errorcode will be treated as fatal.

Catatan: Ini mengasumsikan bahwa vimdiff Anda ada di /usr/local/bin , bagi saya, di Fedora, ada di /usr/bin . Jika Anda tidak dapat menemukannya, jalankan:

$ whereis vimdiff

Lalu di ~/.subversion/config :

[helpers]
...
diff-cmd = /home/<username>/bin/diffwrap.sh

vimdiff <(svn diff)

<() disebut sebagai substitusi proses yang membuat file pseudo dari output svn diff untuk vimdiff untuk dikonsumsi.

Anda dapat membuat alias shell seperti ini:alias svndiff='vimdiff <(svn diff)'

Jawaban serupa

PS - ini adalah solusi paling sederhana yang belum saya temukan; itu mengubah hidup saya (secara relatif)!


VCSCommand dapat melakukannya untuk Anda - instal plugin, arahkan ke file, dan tekan <Leader>cv


Linux
  1. Bagaimana cara memperluas/menciutkan bagian diff di Vimdiff?

  2. Bagaimana cara mengabaikan direktori/file di Subversion?

  3. Cara membedakan direktori melalui ssh

  1. Cara Melihat Metadata Gambar Di Linux

  2. Bagaimana cara melihat anggota grup?

  3. Cara melihat file Core (umum)

  1. Bagaimana mengubah gaya cPanel

  2. Cara melihat statistik di Plesk

  3. Masalah dengan WinSCP dengan gaya end-of-line di Ubuntu Linux saat menggunakan SVN Diff