2010-09-08 38 views
16

Tôi thích svn diff để hiển thị màu khác thông qua máy nhắn tin (giống như git). Tôi đã thành công để có được một diff màu bằng cách thiết lập diff-cmd trong ~/.subversion/config:Làm thế nào để bạn nhận được một máy nhắn tin trong svn diff?

diff-cmd = colordiff 

Bây giờ tôi muốn đường ống đầu ra khác thông qua một máy nhắn tin, làm thế nào để làm điều đó? (Short viết svn diff | less, tất nhiên.)

+1

[Câu trả lời hay ở đây] (http://superuser.com/a/241833/197866) (các tùy chọn 'ít' khác nhau cho một bên dưới). –

Trả lời

14

Trong quá khứ tôi đã sử dụng một kịch bản wrapper và thiết lập diff-cmd để kịch bản này:

#!/bin/sh 
colordiff "[email protected]" | less -r 

Nhưng sau đó bạn nhận được một máy nhắn tin riêng cho mỗi tập tin, tôi 'không chắc chắn nếu đây là những gì bạn muốn. Ngày nay tôi chỉ viết svn diff | less.

Một giải pháp dễ dàng khác là tạo bí danh: alias svndiff='svn diff | less'. Hoặc nếu bạn muốn sử dụng svn diff, hãy tạo hàm vỏ:

svn() { 
    if [ x"$1" = xdiff ] || [ x"$1" = xdi ]; then 
     /usr/bin/svn "[email protected]" | less -r 
    else 
     /usr/bin/svn "[email protected]" 
    fi 
} 
6

Tôi thường chạy svn diff | vim -.

+0

Câu trả lời gốc được sử dụng 'vimdiff' nhưng điều này không hữu ích hơn' vim' và hiển thị thanh gấp gây phiền nhiễu ở bên trái màn hình. –

+0

@AlastairIrvine Câu hỏi yêu cầu cụ thể cho một máy nhắn tin khác màu. Vim độc lập không làm điều đó. Vimdiff cho thấy sự khác biệt bên cạnh rất hữu ích. –

+1

Vimdiff không làm bất cứ điều gì đặc biệt trong trường hợp này, như tôi đã nói. Để Vimdiff hoạt động, nó cần hai tệp. –

0

Thêm

function sdi() 
{ 
    if tty -s; then 
      exec svn diff --diff-cmd=colordiff "[email protected]" | less -R 
    else 
      exec svn diff --diff-cmd=colordiff "[email protected]" 
    fi 
} 

để ~/.bashrc tôi đã làm các trick cho tôi. Lấy từ here

Các vấn đề liên quan