Arcanist - Phabricator CLI
Arcanist
Arcanist is a CLI tool that helps you submit your code changes for code review. You can use it to
- create, submit and update diffs (arc diff);
- land the changes after they've been reviewed (arc land - this equivalent to a "Merge");
- run unit tests and check code coverage (arc lint, arc unit)
Instalacja
See this link for an installation guide: https://hub.sealcode.org/w/sealhub_workflow/linting/
Konfiguracja
Wykonaj polecenie
# arc install-certificate https://hub.sealcode.org/
i podążaj za instrukcjami. Jest to jednorazowy krok mający na celu uwierzytelnienie Arcanista na Twojej maszynie w danym repozytorium lokalnym.
Wybór domyślnego edytora
Arcanist korzysta z domyślnego edytora, aby umożliwić konfigurację diffów (wliczając w to tytuły diffów i listę recenzentów). Aby wybrać domyślny edytor, ustaw odpowiednio zmienną środowiskową $EDITOR (prawdopodobnie możesz to zrobić w Twoim pliku ~/.bashrc, w przypadku systemu OSX w pliku ~/.bash_profile).
Korzystanie z Arcanista
Arcanist jest wymagany do pracy w Review Workflow. W dokumencie opisującym workflow można przeczytać więcej o tym, jak korzystać z Arcanista.
Kilka review naraz
Może zdarzyć się, że wyślesz zmiany na review i pozostaje Ci czekać, aż ktoś je zrecenzuje. W międzyczasie możesz oczywiście pracować nad innym diffem! Załóż nowego brancha, który ma zwój korzeń w masterze, wykonaj kilka commitów i ponownie możesz założyć nowy review request za pomocą polecenia arc diff.
Rozwiązywanie problemów
Error: "Arc was unable to automagically make a name for this patch"
Jeżeli po kilkukrotnym odpaleniu arc patch na tego samego diff arc krzyczy:
Branch name arcpatch-D300 already exists; trying a new name. Branch name arcpatch-D300_1 already exists; trying a new name. Branch name arcpatch-D300_2 already exists; trying a new name. Branch name arcpatch-D300_3 already exists; trying a new name. Exception Arc was unable to automagically make a name for this patch. Please clean up your working copy and try again. (Run with `--trace` for a full exception trace.)
Oznacza to, że wyczerpały się nazwy branchy, pod którymi trzymane są poprzednie patche tego samego diffa.
* alpha arcpatch-D187 arcpatch-D188 arcpatch-D196 arcpatch-D213_1 arcpatch-D213_2 arcpatch-D217 arcpatch-D300_1 arcpatch-D300_2 arcpatch-D300_3 ...
Jeżeli nie potrzebujesz już żadnych poprzednich lokalnych branchy w postaci arcpatch-D..., możesz je usunąć poleceniem:
# git branch | cut -c3- | grep arcpatch- | xargs -n1 git branch -D
Więcej o rozwiązaniu tego problemu możesz przeczytać tutaj: https://secure.phabricator.com/T3277#33729
Exception: Source file ".pinterest-linters/__phutil_library_init__.php" failed to load.
Rozwiązania:
- Sklonuj repozytorium dodając flagę --recursive do polecenia git clone, LUB
- W sklonowanym repozytorium wykonaj polecenie git submodule update --init
- Last Author
- kuba-orlik
- Last Edited
- Oct 30 2023, 14:08