2016-02-03 24 views
6

Używam gem overcommitu (https://github.com/brigade/overcommit) w moim projekcie, gdy używam GitHub Desktop dla OSX otrzymuję te błędy:Błąd podczas korzystania overcommitu i Github Pulpit

To repozytorium zawiera haki zainstalowane przez overcommitu, ale overcommit Klej nie jest zainstalowany. Zainstaluj go pod numerem gem install overcommit. (1)

Klejnot jest zainstalowany, działa w terminalu. Chyba dlatego, że używam rvm i Github Desktop nie wie o rvm. Ktoś wie, jak to naprawić?

Odpowiedz

5

Ok wreszcie go do pracy! połączeniu odpowiedź od @michelegera z komentarzem od @rewritten

Krok 1:

sudo su - 
gem install bundler 
gem install overcommit 
gem install rubocop 

Krok 2: dodano command: ['bundle', 'exec', 'rubocop'] do .overcommit.yml

Dzięki za pomoc!

+1

Ta sama sytuacja z Git Tower. Powyższe nie działało dla mnie, dopóki nie uruchomiłem Tower z Terminalu za pomocą narzędzi CLI. Wyobrażam sobie, że GitHub na Desktop miałby to samo. https: //www.git-tower.com/help/mac/faq-and-tips/faq/hook-scripts – Craig

+0

rozwiązuje również podobny problem w SourceTree na Macu. dzięki! – ludenus

0

Najprawdopodobniej jest to this line, gdzie pojawia się błąd. Jak widać głównym problemem jest to, że nie jest w stanie require 'overcommit'. Nie znam tak dobrze klienta pulpitu GitHub (być może istnieje sposób na skonfigurowanie go wewnątrz), ale jedną rzeczą, którą można zrobić, jest dodanie absolutnej ścieżki, w której rvm przechowuje twoje klejnoty w "wymagającej ścieżce" w haczyku. plik. Mogłoby to wyglądać tak:

$: << "/home/user/.rvm/path/to/gems/dir" 

Wadą jest to, że masz absolutną ścieżkę do pliku haka i najprawdopodobniej nie będzie działać dla innych. Możesz także rozważyć zainstalowanie klejnotu na całym świecie dla interpretera ruby, który wykonuje skrypt (patrz wiersz Shebang w pliku haka).

+0

dziękuję za odpowiedź, więc zainstalowałem overcommit na całym świecie. Teraz nie może znaleźć rubocopa (to jest to, co robię w haku de pre-commit). To kolejny krok. – Chris

+1

@Chris używają 'command: ['bundle', 'exec', 'rubocop']' w konfiguracji overcommit, więc rubocop jest uruchamiany z wewnątrz pakietu. – rewritten

0

Masz rację, Github Desktop (lub jakikolwiek inny GUI) nie działa w twoim środowisku terminala, więc nic nie wie o Twojej konkretnej instalacji RVM.

Prostym rozwiązaniem jest zainstalowanie overcommit i innych klejnotów wymagane przez haki do systemu Ruby:

sudo su - 
gem install bundler 
gem install overcommit 
gem install rubocop 
... 

Jeśli zainstalowano Git poprzez Homebrew lub w inny sposób, może trzeba zmienić Git binarny używany przez GUI. Na przykład w Tower wybrałem wersję Homebrew zamiast systemu.

Tower for OS X Git Config

+0

Bez powodzenia: '[RuboCop] FAILED 'rubocop' nie jest zainstalowany, nie jest w Twojej PATH lub nie ma uprawnień do wykonywania Zainstaluj go, uruchamiając: gem install rubocop' – Chris