Come usare Xcode 4 mergetool in modo standalone?

8

A volte devo fare unire git sulla console. Fino ad ora, per risolvere i conflitti, stavo usando FileMerge di Xcode 3 (puoi aprirlo sulla console usando il comando 'opendiff'). Se i conflitti mostrano, io uso 'git mergetool' che richiama automaticamente opendiff per ciascuno dei file in conflitto.

Tuttavia, Xcode 4 presenta un componente mergetool molto più bello per la risoluzione dei conflitti. Credo che questo componente sia parte dell'eseguibile Xcode 4, piuttosto che standalone. Consente di visualizzare l'anteprima del file unito e di modificare direttamente il codice unito caso per caso, il che rende i conflitti complessi di fusione incredibilmente rapidi e soddisfacenti.

C'è un modo per usare il mergetool Xcode 4 quando invochi 'git mergetool' dal Terminale?

Non riesco a trovare un eseguibile per questo strumento all'interno del pacchetto Xcode 4. Qualsiasi trucco che possa raggiungere questo risultato sarebbe il benvenuto.

    
posta Ricardo Sanchez-Saez 18.08.2011 - 14:00
fonte

3 risposte

4

opendiff accetta due argomenti filename e un parametro --ancestor con un terzo nomefile, per produrre un diff a tre vie, e un parametro --merge per dire il file di output da utilizzare per la risoluzione del conflitto.

Quindi vai:

[mergetool "opendiff"]
    cmd = "opendiff \"$LOCAL\"  \"$REMOTE\" \"$(if test -f \"$BASE\"; then echo \"--ancestor $BASE\"; else echo \"--ancestor $LOCAL\"; fi)\" --merge=\"$MERGED\" "
[merge]
    tool = opendiff

Questo dovrebbe far sì che git usi opendiff come suo strumento di unione, quando ci sono conflitti di fusione.

Detto questo, io preferisco di gran lunga DiffMerge di SourceGear , che è uno strumento free diff e three-way-merge che fa molto meglio, orientato alla parola, risoluzione dei conflitti. E nella documentazione di DiffMerge c'è da dire a git di renderlo lo strumento di diffusione e fusione predefinito.

    
risposta data 18.08.2011 - 17:07
fonte
0

Puoi modificare l'editor di testo (molto semplice) all'interno di FileMerge aprendo il riquadro dell'editor, che è chiuso per impostazione predefinita. Per aprire l'editor in FileMerge, trascina il punto sotto la colonna del centro verso l'alto per aprire il pannello dell'editor.

    
risposta data 17.02.2014 - 19:12
fonte
-1

Questo ha finito per funzionare per me

[merge]
  tool = opendiff

[mergetool]
  keepBackup = false

[mergetool "opendiff"]
  cmd = "opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\""
    
risposta data 05.12.2012 - 23:59
fonte

Leggi altre domande sui tag