2014-09-08 11 views
8

Ich bin ein Anfänger mit Pharo, und ich habe gelernt, über Monticello und Metacello.Pharo Projekt auf Git

Soweit ich weiß, Pharo nicht dateibasiert bedeutet, dass man nicht gemeinsame Source-Control-Tools wie Git direkt verwenden kann. Dennoch sehe ich einige Pharo-Repositories auf Github, wie zum Beispiel this one.

Ist es möglich, die Cello-Versionierung auf Git zu sichern? Wie würde ein solcher Workflow aussehen?

Antwort

5

Zunächst einmal begrüßen zu Pharo und ich hoffe, dass Sie Ihren Aufenthalt genießen und es ist sehr produktiv und Spaß :)

Es ist möglich, weil vor allem haben Sie die Möglichkeit, Ihren Code in eine Datei zu exportieren, um eine FileOut mit Aktion und Sie können auch das Gegenteil tun, importieren Sie Ihren Code zurück zu Pharo mit einem Filein. Das Problem ist, dass die Dateiauslagerung pro Klasse ziemlich viel Handarbeit erfordert. Aber ich habe diesen Ansatz ausprobiert und arbeite mit Git und GitHub.

Natürlich werden Sie schnell die Generierung von Dateien automatisieren wollen und das ist wo Filetree zu spielen kommt. Es bremst nicht nur Klassen, sondern sogar Ihre Methoden (Klasse und Instanz) in Dateien. Alles ist gut organisiert in einem einzigen Ordner, wobei jede Klasse ihren eigenen Unterordner und jede Methode ihre eigene st-Datei erhält, die eine normale Textdatei ist, wie man es von jeder Quellcodedatei erwartet.

gitfiletree, dass Damien erwähnt, ist im Grunde ein Client für Git wie magit ist für Emacs oder Smartgit. Es erlaubt Ihnen, monticello gui zu verwenden, um Ihre Git-Commits zu tun, obwohl Sie noch ein Terminal benötigen, um zu drücken. Der Nachteil von gitfiletree ist, dass es für Windows nicht funktioniert, da der OSProcess, mit dem Pharo eine Befehlszeilenanwendung aufrufen kann (was git wirklich ist), für Windows gerade nicht funktioniert, aber es ist nur eine Frage der Zeit.

Also, wenn Sie schon vertraut und verwenden Sie Git für das Terminal brauchen Sie sowieso nicht gitfiletree und alles, was Sie brauchen, wenn Dateibaum.

Es ist nicht schwer per se für einen Anfänger, aber es könnte schwierig sein, aber im Gegensatz zu Damien würde ich nicht besonders entmutigen, wenn Sie bereits mit Git und GitHub vertraut sind.

Sie finden weitere Informationen in der Pharo für das Enterprise-Buch im Kapitel Git für Pharo

Pharo for The Enterprise

Ich benutze gitfiletree in macos, für mein Projekt Ephestos finden. Bis jetzt läuft es gut und ich habe wenig Grund zurück zu Smalltalkhub zu wechseln.

+1

Vielen Dank. Ich bin ziemlich glücklich mit Monticello und Metacello, aber ich dachte, wenn ich etwas Opensource mache, wäre es schön, es auch auf meinem GitHub zu veröffentlichen. – Andrea

+0

nichts stört Sie aber im Geiste, dass Gitfiletree und Git-Integration zu Pharo ist eine neue Sache, so dass Sie die gelegentliche Fehler und die Oberfläche ist nicht so poliert, wie es eine Arbeit in Arbeit ist. Da wir mehrere Probleme mit Smalltalkhub hatten, ziehen immer mehr Leute nach Github. Ich denke, es ist eine Frage der Zeit, bis sich Pharo reibungslos in Git integriert. Ich kann auch selbst anfangen, zu Gitfiletree beizutragen, da ich ein großer Fan von Git und Github bin. Meine bisherigen Erfahrungen mit einfachen Commits sehen gut aus ohne große Probleme.In Windows verwende ich nur Dateibaum und git bash. – Kilon

+0

Ich würde einen Smalltalk-Anfänger dringend davon abraten, jetzt Git und Github zu benutzen. Die Qualität der Werkzeuge ist einfach noch nicht akzeptabel. Die Art von Problemen, die Sie möglicherweise beheben müssen, sind definitiv außerhalb Anfängerbereich. Wir erwarten, dass sich das schnell ändert. Bitte überprüfen Sie die Pharo-Mailing-Liste, um zu sehen, wann die Tools bereit sind. –

3

Es ist in der Tat möglich, git von Monticello zu verwenden, um Ihren Quellcode zu versionieren: Die Tools sind die Dateitree, Gitfiletree und Gitfiletree Mergetreiber. Dennoch sind diese Tools nicht für jedermanns Nutzung bereit. Es gibt keinen gut etablierten Workflow. Daher rate ich dringend davon ab, als Anfänger mit Pharo noch eines dieser Werkzeuge zu verwenden.