Verschiedene Methoden, ein git diff-Tool einzurichten, führen zu "fatal: [...] exec [...]: schlechte Adresse".
2228
user354932
Ich bin auf Linux Mint 17 64-Bit. Einfach gereinigt gitund mit neu installiert apt. Gelöscht ~/.gitconfig. Die einzige Konfiguration, die ich nach angeblich neu installieren muss, ist (während in einem Repo)
fatal: cannot exec 'git_diff_wrapper': Bad address external diff died, stopping at HEAD:switch-monitor.sh.
Es scheint jedoch nichts mit dem Inhalt von zu tun zu haben git_diff_wrapper. Ich platzierte
#!/bin/bash echo hello
Daran und das ändert nichts. Wenn ich jedoch die Datei entferne oder umbenenne, bekomme ich diese
error: cannot run git_diff_wrapper: No such file or directory external diff died, stopping at HEAD:switch-monitor.sh.
Beachten Sie, dass in diesem Fall "Keine solche Datei oder ein solches Verzeichnis" anstelle von "Ungültige Adresse" angezeigt wird.
Ich habe online ein ähnliches Problem gefunden und kann es nicht finden.
Aktualisieren
Das gleiche Problem tritt bei einer Neuinstallation von Ubuntu 14.04 auf einer virtuellen Maschine auf
Aktualisieren
Ich habe einige Zeit damit verbracht an git der Quelle suchen, und ich bin mir ziemlich sicher errnowird immer gesetzt EFAULT( „Bad - Adresse“), im Laufe dieser Funktion:
int sane_execvp(const char *file, char * const argv[]) { if (!execvp(file, argv)) return 0; /* cannot happen ;-) */ /* * When a command can't be found because one of the directories * listed in $PATH is unsearchable, execvp reports EACCES, but * careful usability testing (read: analysis of occasional bug * reports) reveals that "No such file or directory" is more * intuitive. * * We avoid commands with "/", because execvp will not do $PATH * lookups in that case. * * The reassignment of EACCES to errno looks like a no-op below, * but we need to protect against exists_in_PATH overwriting errno. */ if (errno == EACCES && !strchr(file, '/')) errno = exists_in_PATH(file) ? EACCES : ENOENT; else if (errno == ENOTDIR && !strchr(file, '/')) errno = ENOENT; return -1; }
Irgendwelche Ideen?
Vielen Dank
Ich habe das gleiche Problem bei umbenannten Dateien mit git difftool -C --tool = meld -Y master Ohne die -C-Markierung stürzt sie nicht ab (sie sieht jedoch keine Umbenennungen ...)
user3819503 vor 9 Jahren
0
3 Antworten auf die Frage
1
uros
Ich weiß, dass dies ein alter Thread ist, aber es scheint nicht geschlossen zu sein ...
Ich bin auf einen ähnlichen Fehler gestoßen (ich wollte auch vimdiff verwenden, um den Unterschied zwischen den beiden Commits zu überprüfen). Was für mich funktioniert hat: git difftool HEAD..HEAD ~ 1 --path-to-file / file