2012-12-25 8 views
12

Ruby newb hier.Soll Gemfile.lock zur Quellcodeverwaltung unter Windows verpflichtet werden?

Ich lade Ruby über Rubyinstaller, tat gem install rails, löste ein paar fehlende Bibliotheken, und gab schließlich die ruby project gegabelte ich möchte arbeiten.

Bevor etwas zu berühren, ich sehe, dass mein Gemfile.lock geändert:

diff --git a/Gemfile.lock b/Gemfile.lock 
index aefda68..9ebccba 100644 
--- a/Gemfile.lock 
+++ b/Gemfile.lock 
@@ -46,6 +46,7 @@ GEM 
    diff-lcs (1.1.3) 
    erubis (2.7.0) 
    eventmachine (1.0.0) 
+ eventmachine (1.0.0-x86-mingw32) 
    execjs (1.4.0) 
     multi_json (~> 1.0) 
    hike (1.2.1) 
@@ -65,11 +66,17 @@ GEM 
    multi_json (1.3.6) 
    multi_xml (0.2.2) 
    pg (0.14.1) 
+ pg (0.14.1-x86-mingw32) 
    polyglot (0.3.3) 

... 

PLATFORMS 
    ruby 
+ x86-mingw32 

Alle modifizierten Linien scheinen Windows-zusammenzuhängen. This answer scheint darauf hinzuweisen, dass ich Gemfile.lock nicht gitignieren sollte (es ist ohnehin schon dem Repo verpflichtet, den ich sowieso geklont habe). This answer bedeutet, dass ich Fehler bekommen könnte, wenn ich commit & schiebe es auf Heroku (macht Sinn, da ich nicht möchte, dass meine App von Windows-spezifischen Dateien abhängen).

Also, was ist das? Wie soll ich es beheben? Soll ich Gemfile.lock aus meinem Repo löschen?

+1

Könnte Plattformen in GEmfile versuchen, http://qastuffs.blogspot.com/2011/02/how-to-configure-gemfile-for-windows.html?m=1 – house9

Antwort

1

Das letzte Mal, als ich nach Heroku mit einem Windows Gemfile.lock schob es handhabte es ziemlich anmutig. Ich kann mich nicht erinnern, ob es gescheitert ist und die Gemfile.lock neu erstellt oder einfach die binären Edelstein-Tags entfernt habe.

Es gibt 2 realisierbare Optionen, die ich sehe.
Man geht davon aus, dass es mit diesem Verhalten kein Problem geben wird. Das bedeutet, dass Sie strenge Edelsteinversionsanforderungen verwenden oder Ihre bundle aktualisieren und alles bestätigen, bevor Sie loslegen.

Eine andere ist die Verwendung der :platform flag in your Gemfile. Ich werde das nicht empfehlen, aber es sollte die Quelle erzwingen und das Juwel lokal kompilieren. Das bedeutet, dass alle externen Abhängigkeiten verfügbar sein müssen. Mit vielen binären Edelsteinen (wie dem pg Edelstein) ist das keine leichte Aufgabe. Mit einigen anderen Edelsteinen kann es fast unmöglich sein. Noch einmal, ich würde das nicht empfehlen.

+0

Ich möchte Änderungen vermeiden zu den Gemfile. Ich habe versucht, eine Pull-Anfrage an das Projekt zu senden, das ich gespalten habe, nur um später heraus zu finden, dass ich das Gemfile versehentlich begangen habe. Auch wenn es keine Probleme verursacht, ist die gemfile-Modifikation sicherlich nicht Teil dessen, was ich versuche, auf sie zurückzuschlagen. Funktioniert eine dieser Optionen? Sie scheinen beide einige Änderungen an der Edelsteindatei zu erfordern. – ripper234

+0

Entschuldigung, ich nahm an, dass die Frage war, welche Auswirkungen der 'Gemfile.lock' bei der Bereitstellung Ihrer Anwendung in einer Linux-Umgebung hat. – Azolo

+0

Ich schaute auf die [Pull-Anfrage] (https://github.com/lockitron/selfstarter/pull/22) Ich gehe davon aus, dass Sie sprechen. Sieht so aus, als hättest du eine 'py'-Abhängigkeit hinzugefügt und das' Gemfile.lock' geändert. Ironischerweise hast du die 'Gemfile'-Änderungen nicht einfach an den' Gemfile.lock'-Änderungen vorgenommen. = P Ich würde einfach zurückgehen und die 'Gemfile.lock' Änderungen von den Commits entfernen, da die Änderung sowieso zufällig war. – Azolo

Verwandte Themen