Perché la community Git sembra ignorare le differenze affiancate [chiuso]

30

Ero solito usare Windows, SVN, Tortoise SVN e Beyond Compare. È stata un'ottima combinazione per fare revisioni del codice.

Ora uso OSX e Git. Sono riuscito a mettere insieme uno script bash insieme a Gitx e DiffMerge per trovare una soluzione a malapena accettabile.

Mi sono confuso con questa configurazione, e simili, per oltre un anno. Ho anche provato a utilizzare Gitub diff viewer e Gitx diff viewer, quindi non è come se non avessi dato loro una possibilità.

Ci sono così tante persone intelligenti che fanno grandi cose con Git. Perché non il confronto affiancato con l'opzione di vedere l'intero file? Con persone che hanno usato entrambi, non ho mai sentito di nessuno a cui piaccia il singolo +/- visualizzare meglio, almeno per più di un rapido controllo.

    
posta Kyle Heironimus 24.08.2011 - 16:15
fonte

4 risposte

19

Non posso parlare per Linus di questo, ma il modo in cui git gestisce i differenze è molto unixish, filosoficamente parlando. git fa quello che fa molto bene, e usa strumenti esterni per tutto il resto, compresa la più sofisticata diffusione e fusione.

Uso DiffMerge anche con git su OS X e non ho dovuto ricorrere a nessuna shell bash. È stato complicato, ma ho configurato le impostazioni di difftool e mergetool di git per chiamare direttamente DiffMerge, e ora posso visualizzare le differenze e risolvere i conflitti di unione in un eccellente strumento visivo di terze parti.

Ecco la mia configurazione:

[mergetool "diffmerge"]
        cmd = "diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$(if test -f \"$BASE\"; then echo \"$BASE\"; else echo \"$LOCAL\"; fi)\" \"$REMOTE\""
        trustExitCode = false
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
        tool = diffmerge
[diff]
        tool = diffmerge
    
risposta data 24.08.2011 - 16:25
fonte
16

Noterai che SVN non offre nemmeno una soluzione side-by-side. Quello che hai elencato sono strumenti di terze parti. Come con la maggior parte delle cose in git, questo è straordinariamente configurabile, e ha un ottimo supporto per gli strumenti fuori dagli schemi. Avete impostato un mergetool ? Se no, dovresti. Se lo fai, prova git difftool . Dai un'occhiata alla pagina man per le opzioni di configurazione.

Uso KDiff3 come mio mergetool poiché è uno strumento bello e multipiattaforma e, senza ulteriori configurazioni, git difftool fa esattamente quello che stai chiedendo.

    
risposta data 24.08.2011 - 16:32
fonte
9

È la filosofia * nix. Molte persone che usano questi strumenti passano molto tempo nel terminale. Il terminale non ci impone di muovere le nostre mani dalla tastiera al mouse. So che preferisco lo stile +/- agli strumenti di diff / merge visivi, soprattutto perché mi interessano solo le differenze. Mi preoccupo delle 3-4 righe attorno al cambiamento e al cambiamento stesso. Qualche cosa in più sono informazioni extra che in realtà non mi aiutano.

I diff sono comunemente usati per dare una rapida occhiata a ciò che è stato cambiato. Non leggere il codice.

Non ho mai trovato gli strumenti di visualizzazione vis molto utili rispetto al diff di default sui sistemi GNU. Tutto quello che mi fanno fare è iniziare a scherzare con il mouse e costringermi a scorrere il file, a capire la loro interfaccia utente, e poi a lottare per tornare nella riga di comando dove posso fare qualcosa riguardo a un problema che vedo nel diff .

    
risposta data 24.08.2011 - 16:38
fonte
0

Dal mio uso personale, penso che la risposta sia principalmente che i diff sono abbastanza brevi da non avere importanza.

Per le revisioni del codice, utilizzo uno strumento di revisione del codice completo, che mi dà tutte le cose che mi piacciono: commenti, evidenziazione della sintassi e visualizzazione affiancata.

Uso git diff quasi esclusivamente durante il codice di staging per il commit; Quando questo è il caso, i diff sono abbastanza piccoli, e abbastanza recenti, che non ho bisogno di vedere il contesto per ricordare cosa sta succedendo.

Il mio strumento di revisione del codice di scelta Phabricator , o possibilmente strumenti integrati IDE, che sono a conoscenza del contesto linguistico. Penso che il flusso di richieste pull di github sia terribile per la revisione del codice, soprattutto perché mostra un diff unificato e non affiancato.

    
risposta data 20.10.2013 - 08:20
fonte

Leggi altre domande sui tag