2016-02-03 7 views
6

ich overcommit gem bin mit (https://github.com/brigade/overcommit) in meinem Projekt, wenn ich Github Desktop für osx verwenden erhalte ich diese Fehler:Fehler bei der Verwendung von overcommit und Github Desktop-

Diese Repository-Hooks von Overcommit installiert enthält, aber die overcommit Gem ist nicht installiert. Installieren Sie es mit gem install overcommit. (1)

Der Edelstein ist installiert, es funktioniert im Terminal. Ich schätze, weil ich rvm verwende und Github Desktop nicht über rvm weiß. Weiß jemand, wie man das repariert?

Antwort

5

Ok endlich arbeiten, um es! die Antwort von @michelegera mit Kommentaren von @rewritten

Schritt 1 kombiniert:

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

Schritt 2: hinzugefügt command: ['bundle', 'exec', 'rubocop']-.overcommit.yml

Danke für die Hilfe!

+1

Gleiche Situation mit Git Tower. Das oben genannte funktionierte nicht für mich, bis ich Tower von Terminal mit ihren CLI-Tools startete. Ich stelle mir vor, GitHub für Desktop hätte das selbe. https: //www.git-tower.com/help/mac/faq-und-tipps/faq/hook-scripts – Craig

+0

behebt auch ähnliche Problem in SourceTree auf Mac. Vielen Dank! – ludenus

0

Am wahrscheinlichsten ist es this line, wo der Fehler auftritt. Wie Sie sehen können, ist das Hauptproblem, dass es require 'overcommit' nicht möglich ist. Ich kenne den GitHub-Desktop-Client nicht so gut (vielleicht gibt es eine Möglichkeit, ihn darin zu konfigurieren), aber eine Sache, die Sie tun können, ist den absoluten Pfad hinzufügen, wo Rvm Ihre Edelsteine ​​auf dem "Require-Pfad" im Hook speichert Datei. Dies könnte wie folgt aussehen:

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

Der Nachteil dabei ist, dass Sie Ihren absoluten Pfad in der Hook-Datei haben würden und es wird höchstwahrscheinlich für andere nicht. Sie sollten auch in Betracht ziehen, den Edelstein global für den Ruby-Interpreter zu installieren, der das Skript ausführt (siehe Abschnitt "Shebang" in der Hook-Datei).

+0

danke für Ihre Antwort, so installierte ich weltweit überkompensieren. Jetzt kann es rubocop nicht finden (das ist was ich in de pre-commit Hook ausführe). Das ist also der nächste Schritt. – Chris

+1

@Chris verwendet 'command: ['bundle', 'exec', 'rubocop']' in der Overcommit-Konfiguration, so dass rubocop von innerhalb des Bundles ausgeführt wird. – rewritten

0

Sie haben Recht, Github Desktop (oder eine andere GUI) läuft nicht in Ihrer Terminalumgebung, daher weiß es nichts über Ihre spezifische RVM-Installation.

Eine einfache Lösung ist overcommit und andere Edelsteine, indem Sie Ihre Haken in Ihr System Rubin erforderlich zu installieren:

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

Wenn Sie Git über Homebrew oder andere Mittel installiert ist, können Sie die Git binär ändern müssen von Ihrer GUI verwendet.

Zum Beispiel, in Tower, wählte ich Homebrew-Version und nicht das System.

Tower for OS X Git Config

+0

Kein Glück: '[RuboCop] FAILED 'rubocop' ist nicht installiert, nicht in Ihrem Pfad, oder hat keine Berechtigungen ausführen Installieren Sie es durch Ausführen: Gem installieren rubocop' – Chris

Verwandte Themen