2010-10-28 8 views
4

Y a-t-il moyen dans svn diff ou tout autre outil (linux based) à d'afficher uniquement les changements d'espaces/tabulations? But, je ne veux pas que ces diffs soient vérifiés. Je peux remettre ces lignes au même état avant l'enregistrement si un outil pouvait attraper ces diffs.svn diff whitespace/tab changements seulement

Merci,

Répondre

5

Cela devrait fonctionner pour vous.

#!/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 

De même, au lieu de remettre les lignes au même état, pourquoi ne pas simplement rétablir ces fichiers?

+0

Merci mfisch. .. Désolé si ma question n'était pas claire à la première place. Votre réponse est presque correcte. Je veux voir si un fichier a des lignes qui n'ont que des changements de blancs. (pas le fichier entier) FICHIERS = 'svn status | awk '{print $ 2}' ' pour le fichier dans $ FICHIERS do COUNT1 =' svn diff $ fichier --diff-cmd 'diff' -x '-w' | wc -l' COUNT2 = 'svn diff $ fichier --diff-cmd 'diff' | wc -l' si [! $ COUNT1 = $ COUNT2] puis echo "$ file a des changements d'espaces" fi done – Xprog

0

Beyond Compare montreront ceux mis en évidence dans une couleur différente en fonction du type de fichier. ils ont une version Linux, mais je ne l'ai pas utilisée. C'est un excellent outil de comparaison.

+0

Merci Moose. Je cherche un outil qui peut être exécuté à partir de ligne de commande .. Je veux faire un script basé sur ce qui dira si mes fichiers touchés a "seulement des espaces blancs changements" sur someline, alors ne pas commettre .. – Xprog

2

Quelques améliorations pour le script de @ mfisch: ne fonctionnent que sur des fichiers avec des modifications de texte, et prennent en charge les noms de fichiers avec des espaces.

#!/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