Jak skonfigurować program FileMerge firmy Apple tak, aby działał jako narzędzie scalania Mercurial? Mam plik instalacyjny .hgrc w moim katalogu domowym i po prostu chcę skonfigurować FileMerge jako program scalający.Konfigurowanie Mercurial - FileMerge dla Apple Mac OS X
Odpowiedz
Jak opisano w hg wiki ten pracował dla mnie z różnymi wersjami GW:
- utworzyć skrypt gdzieś w
$PATH
, powiedzmy w/usr/local/bin
:
$ vim /usr/local/bin/opendiff-w #!/bin/sh # opendiff returns immediately, without waiting for FileMerge to exit. # Piping the output makes opendiff wait for FileMerge. opendiff "[email protected]" | cat
- Dodaj następujące sekcje do swojej
~/.hgrc
:
[extdiff] cmd.interdiff = hg-interdiff cmd.opendiff = opendiff-w [merge-tools] filemerge.executable = opendiff-w filemerge.args = $local $other -ancestor $base -merge $output [extensions] extdiff =
Teraz można go używać jako $hg opendiff
.
Aktualizacja: wiki Mercurial ma numer page about FileMerge. Przeczytaj to najpierw.
Nie próbowałem używać FileMerge
, ale ogólny przegląd może pomóc. Większość tego, co chcesz wiedzieć, jest opisane na stronie wiki Mercurial: MergeProgram. Wersja krótka to typowe opcje:
Ustawienie zmiennej środowiskowej HGMERGE
w celu wskazania żądanego narzędzia scalania.
lub dodać następujące wpisy do .hgrc
:
[ui]
merge = /path/to/toolname
[merge-tools]
toolname.args = $base $local $other
Kluczem jest to, że narzędzie do seryjnej musi podjąć trzy argumenty: przegląd bazowej, lokalnych zmian, a zmiany w stosunku do innych gałęzi. Pierwsza konfiguracja służy do określania narzędzia, a druga do określania sposobu wykonywania argumentów.
Nie próbowałem, ale założę się, że musisz wskazać całą drogę do pliku wykonywalnego FileMerge, a nie tylko pakietu aplikacji.
Więc:
[ui]
merge = /Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge
Próbowałem tego, to nie takie proste. –
próbowałem go jako dobrze, mam: 'FileMerge [51550: 30F] Nie można utworzyć połączenia dla root' – jammon
Żadna z powiązanych dokumentacji nie działała dla mnie bez modyfikacji; ostatecznie to, co zrobiłem, to połączenie the official instructions i "Używanie Vima jako programu do tworzenia plików" z https://www.mercurial-scm.org/wiki/TipsAndTricks. Stworzyłem skrypt opendiff-w opisanej w this answer (choć nazwałem go hgvdiff) i umieścić następujące do mojego .hgrc:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = /usr/local/bin/hgvdiff
[merge-patterns]
** = filemerge
[merge-tools]
filemerge.executable = /usr/local/bin/hgvdiff
filemerge.args = $local $other -ancestor $base -merge $output
filemerge.checkchanged = true
filemerge.gui = true
[extensions]
extdiff =
Jest umiarkowanie funkcjonalny, choć czasami wykonuje czek czy plik był zmieniono przedwcześnie, co doprowadziło do pęknięcia:
output file wwwroot/zoomingo/website/protected/messages/en/z.php appears unchanged
was merge successful (yn)? n
po zamknięciu FileMerge.
Oto jak naprawiłem go:
Utworzono /usr/local/bin/opendiff-w
wypełniona:
#!/bin/sh
# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff "[email protected]" | cat
Następnie prowadził polecenie: sudo chmod +x /usr/local/bin/opendiff-w
edytowane ~/.hgrc
z następującym uzupełnieniem:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = opendiff-w
[merge-tools]
filemerge.executable = /usr/local/bin/opendiff-w
filemerge.args = $local $other -ancestor $base -merge $output
[extensions]
extdiff =
Następnie uruchomiłem obserwację ng polecenie, by sprawdzić pogoda to działało: hg opendiff
Jednak mam następujący błąd:
exception raised trying to run FileMerge: launch path not accessible
W celu ustalenia, że wpadłem następujące polecenie:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
To powinno teraz działać i otwórz FileMerge.
============================================== ======================
Jeśli używasz TorsoiseHg na Macu, jedyną rzeczą, którą musisz zrobić teraz, aby pracować z FileMerge jest aby wybrać filemerge z narzędzi Detected merge/diff, kiedy pojawi się okno Resolve Conflict i wybierz narzędzie Resolve.
Nadzieja to pomaga.
** Dla innych **:' opendiff-w' jest skrypt, który w końcu jest wymieniony w. plik hgrc (nie było to dla mnie zbyt oczywiste). Pierwszym blokiem kodu jest zawartość. Zmieniono również uprawnienia do dodawania execute 'chmod + x opendiff-w' –
** Dla innych: ** Coś, co nie było dla mnie oczywiste: Teraz musisz uruchomić' op/hg '$ hg' (aby zobaczyć wyjście w' FileMerge '); '$ hg diff' nadal będzie wyświetlać dane wyjściowe w linii poleceń –
** Dla innych: ** ... i musisz włączyć rozszerzenie extdiff w' ~/.hgrc' –