Konfiguracja Mercurial-FileMerge Dla Apple Mac OS X
Jak skonfigurować program FileMerge firmy Apple, aby działał jako narzędzie merge firmy Mercurial? Mam swoje .konfiguracja pliku hgrc w moim katalogu domowym i po prostu chcę skonfigurować FileMerge jako program scalający.
5 answers
Jak opisano w Hg wiki , to działało dla mnie z różnymi wersjami hg:
- Stwórz skrypt gdzieś w swoim
$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 "$@" | cat
- Dodaj do swojego
~/.hgrc
następujące sekcje:
[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żesz użyć go jako $hg opendiff
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 07:37:19
Aktualizacja: Mercurial wiki ma stronę o 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 opisana na stronie mergeprogram Mercurial wiki. Krótka wersja jest typowymi wyborami:
Ustaw zmienną środowiskową HGMERGE
tak, aby wskazywała na żądane narzędzie scalania.
Lub Dodaj do swojego .hgrc
:
[ui]
merge = /path/to/toolname
[merge-tools]
toolname.args = $base $local $other
Kluczem jest to, że narzędzie scalające musi weź trzy argumenty: podstawową wersję, lokalne zmiany i zmiany z drugiej gałęzi. Pierwsza konfiguracja służy do określenia Narzędzia, a druga do określenia sposobu pobierania argumentów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 07:36:23
Żadna z dołączonej dokumentacji nie działała dla mnie bez modyfikacji; ostatecznie to, co zrobiłem, to kombinacja oficjalnych instrukcji i "używanie Vima jako programu filemerge" z https://www.mercurial-scm.org/wiki/TipsAndTricks . stworzyłem skrypt opendiff-w opisany w tej odpowiedzi (choć nazwałem go hgvdiff) i umieściłem w moimhgrc:
[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 to umiarkowanie funkcjonalne, choć czasami wykonuje kontrolę dla czy plik został zmieniony przedwcześnie, co prowadzi do kilku:
output file wwwroot/zoomingo/website/protected/messages/en/z.php appears unchanged
was merge successful (yn)? n
Kiedy zamykasz FileMerge.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 07:36:05
Oto Jak to naprawiłem:
Utworzony {[4] } wypełniony:
#!/bin/sh
# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff "$@" | cat
Następnie uruchom polecenie: sudo chmod +x /usr/local/bin/opendiff-w
Następnie edytowane ~/.hgrc
z następującym dodatkiem:
[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 następujące polecenie, aby sprawdzić, czy działa: hg opendiff
Jednak mam następujący błąd:
exception raised trying to run FileMerge: launch path not accessible
Aby to naprawić uruchomiłem następujące polecenie:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
To powinno teraz działać i otworzyć się FileMerge.
====================================================================
Jeśli używasz TorsoiseHg dla komputerów Mac, jedyną rzeczą, którą musisz teraz zrobić, aby pracować z FileMerge, to wybrać filemerge z wykrytych narzędzi merge/diff, gdy pojawi się okno Rozwiąż konflikt i wybrać narzędzie Rozwiąż.
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-24 19:27:20
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 07:37:03