2016-08-10 4 views
1

J'essaie de comparer un fichier binaire en utilisant "git difftool". Ce fichier est également mis en scène, mais il semble que ce n'est pas important. Donc, je me sers quelque chose comme ci-dessous:git difftool: comment comparer les fichiers zip

git difftool --staged /path/to/file 

et mon .gitconfig est configuré comme ceci:

[difftool "bc3"] 
    path = C:/Program Files (x86)/Beyond Compare 3/BComp.com 
    cmd = BComp.com \"$LOCAL\" \"$REMOTE\" -lefttitle="Remote" -righttitle="$BASE" -lro 
[diff] 
    tool = bc3 
[difftool] 
    prompt = false 

Alors, quand je lance git difftool il ouvre cependant au-delà, Comparer comme prévu, je reçois une erreur le fichier binaire de base n'existe pas. La copie locale modifiée est correctement chargée dans l'outil.

Je l'ai remarqué avec * .bcpkg (fichier de paramètres Au-delà de la comparaison, un fichier zip essentiellement) et aussi * .zip réguliers. Mais semble fonctionner correctement pour les fichiers * .exe. Ce que j'ai remarqué, c'est que git difftool ne devrait pas retourner sauf si Beyond Compare est fermé, parce que s'il retourne le fichier temporaire créé par lui est supprimé. Mais dans le cas d'un fichier zip, il revient toujours immédiatement.

Par ailleurs, diff pour tous les autres types de fichiers fonctionne bien pour moi. Je suis sur Windows 7 (64 bits) et comme vous pouvez le voir ont configuré Beyond Compare 3.

+0

Git ne gère pas bien les différences sur les fichiers binaires, d'après ce que je comprends. C'est la raison pour laquelle beaucoup n'utilisent pas Git pour la version des fichiers binaires. Je ne vois rien d'inattendu dans votre question. –

+0

C'est décevant ... puis-je extraire le fichier "base", et mettre en scène des fichiers en dehors du repo pour les comparer manuellement en utilisant mon outil? –

+0

Si les fichiers "base" sont en texte brut, code source, etc. et non binaires, alors oui cela devrait fonctionner. –

Répondre

1

Ceci est corrigé dans Beyond Compare 4. Beyond Compare 4 prend en charge la différenciation des fichiers zip de git.

Au-delà de la comparaison 3 ne supporte pas les fichiers zip de git. Il échouera avec le message d'erreur: dossier Non disponible: C: \ Users \ nom d'utilisateur \ AppData \ Local \ Temp \ 42Ycl9_filename.zip

Si vous souhaitez évaluer Beyond Compare 4 fichiers zip test diffs, exécutez la installer et sélectionnez Créer une installation portable et installer dans un dossier sur votre bureau. Cela ne nécessite pas de droits d'administrateur. Ensuite, exécutez git config --global difftool.bc3.path "c:/users/nom d'utilisateur/desktop/Beyond Compare 4/bcomp.exe" pour que git utilise l'installation portable. Une fois les tests terminés, supprimez simplement le dossier sur votre bureau pour supprimer l'installation portable version 4.

Pour mettre à niveau votre licence après avoir évalué un essai de la version 4, remplissez le upgrade form sur le site Web de Scooter Software.

+0

Ce n'est pas correct ... Je peux difficilement comparer les fichiers zip avec TortoiseSVN, où j'ai branché Beyond Compare de la même manière. De plus, si vous regardez de plus près, j'utilise BComp.com et non BComp.exe, qui ne retourne pas tant que l'onglet de comparaison n'est pas fermé. Cela est vrai même dans les cas où Beyond Compare a déjà une instance existante en cours d'exécution. –

+0

Je viens de réaliser que vous êtes un employé de Scooter Software, donc très probablement je suis celui qui a tort ici: p –

+0

J'ai parlé à un collègue à ce sujet, le comportement pourrait avoir changé de BC3 à BC4. Je vais faire une enquête aujourd'hui et mettre à jour mon message. –

0

FWIW, this article montre comment vous pouvez configurer git pour décompresser les fichiers avec les extensions choisies avant que votre diff standard ne soit exécuté dessus. Peut-être que ça aide.

+1

Je me demande si cette technique est pratique. Je suppose que ce serait assez bon pour les cas simples, mais un fichier zip contenant beaucoup de fichiers serait extrêmement difficile à diff comme ça. Une façon beaucoup plus intuitive de les différencier est comme Beyond Compare, dans la comparaison des dossiers. –

+0

@WaqasIlyas, oh, oui, absolument. Cette technique particulière fonctionnerait pour les formats de fichiers qui sont fondamentalement un fichier (un peu verbeux) qui est ensuite compressé (pour la compression), comme par exemple les "nouveaux" formats Office .docx, .xlsx, etc. – Fab