2010-10-28 2 views
4

Есть ли способ в svn diff или любой другой инструмент (на основе linux) до показывать только пробелы/вкладки изменения?.svn diff пробелы/вкладки только изменения

Назначение, я не хочу, чтобы эти различия были проверены. Я могу вернуть эти строки в такое же состояние, прежде чем проверять, может ли инструмент поймать эти различия.

Спасибо,

ответ

5

Это должно сработать для вас.

#!/bin/bash 

FILES=`svn status | awk '{ print $2}'` 
for file in $FILES 
do 
    COUNT=`svn diff $file --diff-cmd 'diff' -x '-w' | wc -l` 
    if [ $COUNT -le 2 ] 
    then 
     echo "$file has only whitespace changes" 
    fi 
done 

Кроме того, вместо того, чтобы переводить строки в одно и то же состояние, почему бы не просто вернуть эти файлы?

+0

Спасибо mfisch. .. Извините, если мой вопрос не был ясен на первом месте. Ваш ответ почти прав. Я хочу видеть, есть ли в каком-либо файле строки, которые имеют только пробелы. (не весь файл). FILES = 'svn status | awk '{print $ 2}' ' для файла в $ FILES do COUNT1 =' svn diff $ file --diff-cmd 'diff' -x '-w' | wc -l' COUNT2 = 'svn diff $ file --diff-cmd 'diff' | wc -l' если [! $ COUNT1 = $ COUNT2] then echo "$ файл имеет изменения пробелов" fi done – Xprog

0

Beyond Compare покажет те, выделены другим цветом в зависимости от типа файла. у них действительно есть версия Linux, но я ее не использовал. Однако это отличный инструмент для сравнения.

+0

Thanks Moose. Я ищу инструмент, который можно запустить из командной строки. Я хочу создать скрипт на основе того, что скажет, если мои затронутые файлы имеют «только изменения пробелов» на somelines, поэтому dont commit .. – Xprog

2

Пара улучшений для скрипта @ mfisch: работает только с файлами с изменениями текста и поддерживает имена файлов с пробелами.

#!/bin/bash 

svn status | grep ^M | sed 's/^........//' | 
while read -r file 
do 
    COUNT=$(svn diff "$file" --diff-cmd 'diff' -x '-w' | wc -l) 
    if [ $COUNT -le 2 ] 
    then 
     echo "$file has only whitespace changes" 
     # svn revert "$file" 
    fi 
done 
Смежные вопросы