2012-05-24 12 views
11

Ho impostato il mio classpath per p4merge e ho impostato il file .gitconfig, ma ottengo questo errore quando lo strumento p4merge suppone di opemare quei due file che sono in conflitto. qualcuno conosce la soluzione?con lo strumento di fusione p4merge in git

aggiunto al classpath: "C: \ Program Files \ Perforce \ p4merge.exe" aggiunto .gitconfig di file:

[merge] 
    tool = p4merge 
[mergetool "p4merge"] 
    cmd = p4merge.exe \\\"$BASE\\\" \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$MERGED\\\" 

MESSAGGIO DI ERRORE:

Normal merge conflict for 'protected/views/layouts/main.php': 
    {local}: modified file 
    {remote}: modified file 
Hit return to start merge resolution tool (p4merge): 
C:\Program Files (x86)\Git/libexec/git-core/mergetools/p4merge: line 8: p4merge: 
command not found 
protected/views/layouts/main.php seems unchanged. 
Was the merge successful? [y/n] n 
merge of protected/views/layouts/main.php failed 

risposta

1

Sembra si può trovare P4merge quindi provare ad aggiungere "C: \ Programmi \ Perforce \" alla variabile di ambiente PATH tramite Proprietà del sistema.

0

Aggiungi il percorso P4merge completo al tuo .gitconfig. Ecco la mia (si noti che i separatori di percorso sono capovolte in giro, vale a dire c:/invece di c: \):

[merge] 
    tool = p4 
[mergetool "p4"] 
    cmd = c:/winprogs/p4merge/p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 
+1

Se percorso del exe contiene spazi, allora dovrebbe essere tra virgolette. 'cmd = 'C:/Programmi/Perforce/p4merge.exe' $ BASE $ LOCAL $ REMOTE $ MERGED' – Alex78191

3

Potrebbe anche essere necessario riavviare il console git se avete appena installato p4merge, per l'aggiornamento variabili di ambiente da registrare.

+0

non ha aiutato :( – IsmailS

0

se non volete aggiungere p4merge nel percorso variabile d'ambiente (come detto Dan Lister) si potrebbe aggiungere percorso parametro nel git config:

[mergetool "p4merge"] 
    path = C:/Program Files/Perforce/p4merge.exe 

Si lavora per me su git v1.7.11 (WinXP).

+0

Non mi piace l'ordine delle schede REMOTO, BASE, LOCALE. usa 'cmd = 'C:/Programmi/Perforce/p4merge.exe' $ BASE $ LOCAL $ REMOTE $ MERGED' – Alex78191

4

funziona per me:

[merge] 
    keepBackup = false; 
    tool = p4merge 
[mergetool "p4merge"] 
    path = C:/Program Files/Perforce/p4merge.exe 
    cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
    keepTemporaries = false 
    trustExitCode = false 
    keepBackup = false 
[difftool] 
    prompt = false 
[mergetool] 
    prompt = false 
+0

' keepTemporaries' di default è falso.In ogni caso, dovrebbe essere impostato come 'mergetool.keepTemporaries' , non 'mergetool. .keepTemporaries'. Anche 'KeepBackup' è impostato senza specificare' '. – Alex78191

+0

' trustExitCode' non deve essere impostato su falso (dovrebbe essere il valore predefinito - true) – Alex78191

4

Perché è tutto così difficile che odio di scrivere comandi così che cosa ho fatto?

  1. Installare p4Merge forma strumento here serach per P4Merge e installare l'exe, allora avete bisogno solo

enter image description here

  1. installarlo come utente di Windows

  2. Entrare nella directory utente dell'utente e cercare .gitconfig modificarlo ed aggiungere

[mergetool "p4merge"] 
    path = C:\\Program Files\\Perforce\\p4merge.exe 
    cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
[merge] 
    tool = p4merge 

Come si usa? Quando si tira qualcosa e avere conflitti si può solo scrivere

git mergetool

E lo strumento sarà aperto.

enter image description here

In fondo si è la versione definitiva è possibile modificare lì poi basta salvare e impegnarsi e il conflitto sarà risolto.

+0

L'opzione 'percorso' non è necessaria. – Alex78191

0
These steps worked for me. 

Dopo il download e l'installazione di strumento di P4Merge da perforce.com

Dopo il nome del profilo/id-mail.

Sostituire questo contenuto nel file ~/.gitconfig

enter code here 

[merge] 
    keepBackup = false 
    tool = p4merge 
[mergetool "p4merge"] 
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$REMOTE\"" "\"$PWD/$MERGED\"" 
    keepTemporaries = false 
    trustExitCode = false 
    keepBackup = false 
[diff] 
    tool = p4merge 
[difftool "p4merge"] 
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""