Page MenuHomeSealhub

Arcanist - klient CLI do phabricatora
Updated 1,885 Days AgoPublic

Version 13 of 20: You are viewing an older version of this document, as it appeared on Mar 7 2019, 13:44.

Arcanist

Arcanist to narzędzie umożliwiające wygodne nawigowanie po Review Workflow z poziomu linii komend. Potrafi m.in.:

  • tworzyć diffy i wysyłać je na serwer (arc diff);
  • aktualizować diffy (arc diff);
  • finalizować diffy, squashować commity i wysyłać je na repozytorium (tzw. "land" - arc land);

Instalacja

Sprawdź, czy Arcanist jest dostępny w repozytoriach Twojego systemu. Na Archu (więc także na Manjaro) trzeba włączyć repozytoria AUR i następnie można będzie zainstalować Arcanista jak każdy inny program.

Jeżeli Arcanista nie ma w repozytoriach systemu, skorzystaj z oficjalnych instrukcjij instalacji.

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:

arc patch
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.

git branch
* 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:

  1. Sklonuj repozytorium dodając flagę --recursive do polecenia git clone, LUB
  1. W sklonowanym repozytorium wykonaj polecenie git submodule update --init
Last Author
kuba-orlik
Last Edited
Mar 7 2019, 13:44

Event Timeline

kuba-orlik moved this document from Unknown Object (Phriction Wiki Document).Sep 10 2017, 18:48
arkadiusz-wieczorek edited the content of this document. (Show Details)
kuba-orlik edited the content of this document. (Show Details)
kuba-orlik added a project: Unknown Object (Project).Jul 20 2018, 13:57
kuba-orlik edited the content of this document. (Show Details)
kuba-orlik shifted this object from the Restricted Space space to the S5 Publiczna space.
kuba-orlik changed the title from Arcanist - klient CLI do phabricatora to Arcanist - Phabricator CLI.Oct 30 2023, 14:08
kuba-orlik edited the content of this document. (Show Details)