Frage

Zuerst ein wenig hintergrund.

Ich habe die Arbeit auf der MS-Plattform für meine gesamte Entwicklung Karriere.Bis vor 2 Wochen, hatte ich noch nie gebootet andere Betriebssysteme als Windows 98/XP/Vista.Ich begann mit VSS vor langer Zeit, und die änderung vorgenommen zu SVN vor etwa 2 Jahren.Mit SVN verwende ich TortiseSVN und verwenden Sie den standard-branch/tag/trunk setup.

Meine Projekte sind auch Selbstversorger, das heißt, ich kann gehen, um einen frischen dev-box, pull-down-ein einzelnes repository, open VS, drücken Sie die F5-Taste und es wird ausgeführt (die meiste Zeit).Alle Abhängigkeiten befinden sich in lib Ordner, source code ist in einem src Ordner, etc...

In dem bemühen, neue Dinge zu lernen, habe ich beschlossen zu bauen eine Ruby on Rails-Applikation und haben eine Ubuntu-basierte Entwicklung der Maschine.Ich habe einen SVN-server laufen und arbeite mit einer anderen person auf diesem Projekt.Er passiert einen Mac verwenden, der für seine Entwicklung der Maschine.

Und nun zu den Fragen.

Ich scheine zu kämpfen mit, wie die Verwaltung der verschiedenen Versionen von ruby, rails und alle plugins, mit dem ich arbeite.Ich habe auch zu sein scheinen, kämpfen mit der Verwendung von SVN auf Ubuntu.

So Ubuntu kommt mit Ruby pre-installiert.Ich möchte sagen, das ist die version 1.8.5.So oder so, ich hatte ein paar Edelsteine zu installieren, für das plugin, das ich verwende (Community Engine).Wird neu in *nix, ich habe nicht verwenden sudo wenn Sie zu installieren und lief in alle möglichen Themen.I ended up blowing away Ruby komplett und neu anfangen zu können.Das schien zu funktionieren.

Das problem ist aber, dass nach ich verpflichte mich, meinem code und der andere Kerl bekommt neusten, er hat zu gehen durch den gesamten Prozess der Installation von gems.

Was ist die beste Praxis für die Verwaltung von gems und plugins in einer RoR-Anwendung? I dont care, wenn eine Unmenge Dateien Hinzugefügt SVN.Platten-und Netzwerk-Bandbreite, die sind Billig.Ich weiß nur nicht, wie Sie dies tun richtig.

Also auf zu SVN.

Ich habe installiert RapidSVN, aber sehr oft Probleme mit Ordner immer gesperrt.Ein paar mal wurde mir klar, mein Fehler, bei anderen hatte ich keine Ahnung, warum.Aber in beiden Szenarien, ich konnte es nicht reparieren.Ich endete damit, ein backup von meinem code, ziehen Sie eine neue Arbeitskopie dann manuell bewegen über änderungen und ein bisschen klüger, wenn Begehen Sie das Projekt.

Ich eigentlich RTFM etwas in der letzten Nacht und fand, dass ich eigentlich so erstellen Sie ein Lesezeichen für meine repos, machen Sie dann einen "checkout Arbeitskopie" von Lesezeichen.Ich bin mir nicht sicher, warum, aber ok, das ist es, was das Handbuch sagt, dass...

Was sind einige best practices für die Verwendung von SVN auf einem RoR-Projekt auf Ubuntu?

Ich bin buchstäblich auf der Suche nach einer Schritt für Schritt Prozess-auf diese ein.

Bearbeiten Ich vergaß zu erwähnen, ich benutze NetBeans für meine IDE, obwohl ich nicht sah, um zu sehen, welche Art von SVN-Unterstützung, die es hat, wenn überhaupt.Ich schaute auf RubyMine, und würde lieben, es zu benutzen, aber es scheint zu sein, zu instabil, gerade jetzt.

War es hilfreich?

Lösung

Für plugins, würde ich persönlich empfehlen, nur kleben Sie in der vendor-Ordner und fügen Sie Sie im SVN, als hätten Sie den code selbst geschrieben.Kolben war auch eine großartige Lösung, wechselte aber Weg von es, wenn alle den gemeinsamen plugins begann der Umzug zu github (Kolben wurde unzuverlässig, seitdem)

Für Edelsteine, hoffentlich bist du mit Schienen 2 oder höher.Sie sollten die Liste der Edelsteine, die Sie benötigen in Ihrem config/environment.rb Verwendung config.gem. Hier sind ein paar Informationen über diese Funktion

Was dies bedeutet ist, dass, wenn Sie hinzufügen ein neues Juwel, das nächste mal, wenn Ihr co-worker-updates, seine rails app lässt sich nicht starten bis er hat die notwendigen Edelsteine.Er kann dann installieren Sie diese in einem Schritt mit sudo rake gems:install

Sie können dies einen Schritt weiter, und legen Sie Ihre Edelsteine in der vendor-Verzeichnis.Dies ist allgemein bekannt als "Verkäufer alles." Der einfachste Weg, dies zu tun ist es, alle Edelsteine, die Sie in environment.rb wie oben beschrieben, und führen Sie dann rake gems:unpack.Es gibt 2 Probleme mit diesem Ansatz, jedoch, so ich nicht verwenden möchten, es selbst.

  1. Wenn Sie 10 apps, und jeder Verkäufer Ihre Schätze, die Sie am Ende halten 10 Kopien von gemeinsamen Edelsteine in subversion, die Aktualisierung macht alle Ihre Webseiten eine ganze Menge langsamer.
    Dies kann nicht ein Problem für Sie, oder Wert sein kann, sich mit einem, es ist nur eine persönliche Präferenz.

  2. Einige Edelsteine (wie mongrel oder hpricot) native Erweiterungen in C geschrieben.Was dies bedeutet ist, dass, wenn Sie installieren Sie die .c source code heruntergeladen wird, und gcc ausgeführt wird, um es zu kompilieren, die speziell für Ihr system.
    Wenn Sie installiert eine native C extension on ubuntu, dann legen Sie Sie in der vendor-Ordner, und später versuchte zu laufen, dass auf OS X (oder möglicherweise sogar eine andere version von ubuntu), es würde höchstwahrscheinlich zu einem Absturz des ruby-Prozesses und bringen Sie Ihre app herunter.
    Wenn alle Ihre Schmuckstücke sind Reine-ruby lieben, dann ist dies nicht ein problem, aber es ist nur etwas zu beachten.

Andere Tipps

Viele Menschen nutzen Kolben oder Wüste zum verwalten von plugins und installieren Sie Edelsteine in Rail local vendor-Ordner (gespeichert unter SVN).

http://www.rubyinside.com/advent2006/12-piston.html http://pivotallabs.com/users/brian/blog/articles/459-build-your-own-rails-plugin-platform-with-desert

Ich empfehle auch die Verwendung geminstaller, die Ihnen helfen, beides zu installieren alle die gleichen Edelsteine und die gleichen Versionen von Ihnen

http://geminstaller.rubyforge.org/

Ich benutze SVN von der Befehlszeile aus wenn Sie aber mehr bequem mit TortiseSVN möchten Sie vielleicht, um zu versuchen, IDEs, die SVN gut integriert wie RadRails und NetBeans.Die IDEs sehr ähnlich grafischer SVN-Manager ähnlich Tortise, wenn Sie arbeiten wollen auf die cmd-Zeile nur eine einfache 10-minütige SVN-tutorial, und Sie sollten gut zu gehen.

Ich habe noch nie gehört, rapid SVN und die normale SVN-tool hat immer gearbeitet, nur finden bei mir fast nie verursachen die sperren Ordner Problem.

Orion erwähnt aufbauen müssen Edelsteine wurden vendored bei der Freigabe zwischen verschiedenen OS ' s - Sie können verwenden Sie die Edelsteine:bauen rake-task neu zu erstellen, die Sie automatisch.

Erstens, herauszufinden, svn von der Befehlszeile aus.Die svn-Buch ist auf-Linie.Es ist nicht allzu schwer zu tun svn status oder svn commit -m "bla".Die meisten Probleme kommen, wenn Sie die Verwendung von OS-Funktionen zum löschen oder umbenennen von Dateien.Die svn-Befehle für, dass.

Neben, wenn rapidsvn ist nicht für Sie, versuchen Sie svn-workbench.Hasse es zu sagen, aber keiner von den linux-svn-GUI-tools, die ich gesehen habe, sind so gut wie tortoisesvn.

Plugins und svn sind ein Problem.Es gibt ein tool namens Kolben das soll bis klar, wenn ich nicht verwenden es.Ich check out die plugins in meinem vendor/plugins directory.Wenn eine neue version rauskommt, dass ich wirklich wollen, ich meine treuen update_plugin bash-Skript, um das plugin zu aktualisieren:

#!/bin/bash

#  reinstall the plugin in an svn friendly way
plugin="some_plugin"
plugin_url="http://some_server/some_plugin/trunk"

for f in site1 site2 site3
do
  echo $f
  cd ~/rails/$f

  svn delete vendor/plugins/$plugin
  rm -rf vendor/plugins/$plugin
  svn -m "remove $plugin" commit
  script/plugin install $plugin_url
  svn add vendor/plugins/$plugin
  svn -m "add $plugin" commit

done
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top