Ruby Version Manager ermöglicht es uns, in jedem Projekt eine .rvmrc
Datei zu verwenden, um festzulegen, welche Ruby Version und welches Juwel geladen werden soll. Soll diese Datei in die Quellcodeverwaltung eingecheckt werden? Oder setzt das zu viel von der Arbeitsumgebung anderer Entwickler voraus?Überprüfen Sie Ihre rvmrc-Datei?
Antwort
Source Control Management ist hauptsächlich über Reproduzierbarkeit: Können Sie eine Version einer Entwicklungsbemühung basierend auf dem, was Sie in Ihrem SCM gespeichert haben reproduzieren?
Wenn diese Datei .rvmrc
benötigt wird, damit ein Entwickler in Ihrem Projekt arbeiten kann (mit den richtigen Artefakten), dann sollten Sie es versionieren.
Wie in RVM Best Practices erwähnt:
No. 2 - Überprüfen Sie Ihre rvmrc in die Quellcodeverwaltung.
die zuvor erwähnte rvmrc in die Quellcodeverwaltung an der Seite Ihrer App Durch die Überprüfung, Sie sicherstellen, dass alle Benutzer eine konsistente Umgebung haben, wenn sie rvm verwenden sind.
Durch die Automatisierung von Gemset-Installationen und Ähnlichem (z. B. das rvmrc im Repository der rvm-Site oder das Rvmrc der TEDxPerth-Repository), machen Sie den Einstieg ebenso einfach wie das Ändern des Verzeichnisses.
Darüber hinaus können Sie Ihre Bereitstellungen auch automatisch auf Ihre anwendungsspezifische Umgebung einrichten.
Andere Entwickler können mit der Verwendung von gemsets auf ihre RVM Wende:
echo rvm_ignore_gemsets_flag=1 >> ~/.rvmrc
Dies wird ihnen Standard gemset immer verwenden machen.
Ich würde tatsächlich davon abraten, .rvmrc
in SCM zu halten. Zwei spezifische Gründe:
Wenn Sie gemsets Sie andere Entwickler erzwingen die gleiche gemset zu verwenden (während einige könnten es vorziehen, alle in der globalen gemset ihre Edelsteine haben).
Sie machen es anderen Entwicklern schwer, das Projekt auf einer anderen Ruby-Version auszuführen. Sicher, bei der Produktion läuft es unter
1.9.2-p290
, aber warum sollte ich die App nicht lokal auf1.9.3-p0
ausführen dürfen?
Allgemeinen erzwingt es zu viel auf jedem Entwickler (gleiche Geschichte wie database.yml
, die sollte auch nicht in SCM gehalten werden). Ein Hinweis in der README des Projekts der "production running" Ruby Version ist genug imo.
Ich denke, es kommt auch auf das Projekt an.Ich habe eine Situation, in der Entwickler mehrere Ruby-Versionen des gleichen Projekts (verschiedene Plattformen, Anforderungen) von der Produktion - von Design - laufen lassen. Unsere * Tests * sagen uns, dass alles richtig funktioniert. Die Freiheit, Rubine zu wechseln, erlaubt es uns, versionsspezifische Probleme zu diagnostizieren und Benchmarks durchzuführen. – foz
- 1. TweetSharp: Wie Sie überprüfen, ob Ihre Anwendung bereits autorisiert ist?
- 2. Verschieben Sie Ihre Arbeitskopie
- 3. Sortieren Sie Ihre Klassen?
- 4. Anmeldung fehlgeschlagen. Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es erneut.
- 5. Xcode: Die Sitzung ist inaktiv. Bitte überprüfen Sie Ihre Einstellungen und versuchen Sie es erneut. 0xE800001E
- 6. Wie behalten Sie Ihre eigenen Debug-Zeilen, ohne sie zu überprüfen?
- 7. Fehler - Der Dienst ist ungültig. Bitte überprüfen Sie Ihre Einstellungen und versuchen Sie es erneut. (0xE8000022)
- 8. Verwenden Sie Ihre eigene API, um Ihre Website zu erstellen
- 9. Wie schreiben Sie Ihre Paketdokumentation?
- 10. Wie verspotten Sie Ihre Repositories?
- 11. Wie dokumentieren Sie Ihre Datenbankstruktur?
- 12. Wie überwachen Sie Ihre Webdienste?
- 13. Wie organisieren Sie Ihre Namespaces?
- 14. Wo behalten Sie Ihre Testdateien?
- 15. Wo setzen Sie Ihre Abhängigkeiten?
- 16. Wo speichern Sie Ihre setting.xml?
- 17. Wie organisieren Sie Ihre TestSuite?
- 18. Wie versionieren Sie Ihre Projekte?
- 19. Wie organisieren Sie Ihre Ressourcendateien?
- 20. Implementieren Sie Ihre eigene sizeof
- 21. Probleme bei der Ausführung von epstopdf. Überprüfen Sie Ihre TeX Installation
- 22. Überprüfen Sie, ob zwei JSON die gleichen Werte für ihre gemeinsamen Namen haben
- 23. Kein Sitzungsrepository konnte automatisch konfiguriert werden, überprüfen Sie Ihre Konfiguration (Sitzungsspeichertyp ist 'null')
- 24. WARNUNG! ejabberd kann nicht Admin-Benutzer starten erstellt nicht Bitte überprüfen Sie Ihre Konfiguration
- 25. phpMyAdmin - Fehler | Die mbstring-Erweiterung fehlt. Bitte überprüfen Sie Ihre PHP-Konfiguration in Ubuntu 14.04 LTS
- 26. Fehler, wenn mehrere js Quellen zu schließen versuchen: Überprüfen Sie Ihre javascripts.joinTo Config
- 27. Einer Ihrer SonarQube-Server kann nicht erreicht werden. Bitte überprüfen Sie Ihre Verbindungseinstellungen
- 28. Überprüfen Sie, ob die Datei auf dem Remote-Server über ihre URL existiert
- 29. Wie Sie Ihre PHP-Anwendungen korrekt bereitstellen?
- 30. Wo führen Sie Ihre Validierung durch?
interessanter Punkt. Ich halte mein rvmrc in meinem Home-Verzeichnis, muss das anders machen. –
Erzwingt dies nicht, dass andere Entwickler in Ihrem Team einen Edelsteinsatz mit dem gleichen Namen wie der .rvmrc-Ersteller verwenden? – ybakos
Normalerweise füge ich in Rvmrc kein Gemset ein, wenn das Projekt Bundler verwendet. Wenn es keinen Bundler verwendet, geben Sie ihm einen Namen für den Gemset-Namen, der dem Projekt mit dem Flag "--create" entspricht, damit es automatisch erstellt wird. –