2009-09-04 3 views
13

Ich unterrichte in diesem Semester einen neuen Kurs an einer neuen Universität, und ich bin wirklich daran interessiert, meine Studenten mithilfe von Best Practices zum Laufen zu bringen. Auf diese Weise würde ich gerne Hausaufgaben von ihnen mithilfe von Git-Repositories zuweisen und erhalten. Leider benutze ich Git, aber ich verstehe es nicht gut genug, um zu wissen, was die potenziellen Sicherheitslücken sind und wie man sie vermeiden kann. Außerdem habe ich nur Git für die persönliche Versionskontrolle und nie in einer Gruppe oder einem Team verwendet.Kann ich Git zur Zuweisung von Aufgaben verwenden?

Mein aktueller Plan ist, Maschine A mit Benutzern 1-12 einzurichten, die jedem meiner Schüler entsprechen. Ich werde ein ssh öffentliches/privates Schlüsselpaar für jeden Schüler und ein anfängliches Git-Repository erzeugen. Die Studenten können dann auf das Repository für neue Aufgaben zugreifen und bei der Übermittlung darauf zugreifen.

Im Idealfall, ohne zu viele Probleme, kann ich von einem Master-Repository in die Schüler-Repositories schieben, wenn ich Aufträge gebe. Wenn es möglich wäre, aus ihren Repositories in das Master-Repository zu ziehen, wäre das auch ordentlich.

Edit: Dieser Text war ein wenig unklar. Ich beabsichtige, sie in ihren individuellen Aufbewahrungsort zu schieben/ziehen, wenn sie einen Auftrag abgeschlossen haben oder einen neuen bekommen. Ich nehme nicht an, dass ich Aufgaben in ihre Laptops schieben kann :)

Also wo fange ich an? Wonach halte ich Ausschau? Ist das eine schlechte Idee? Wenn ja warum?

+5

Ich denke, es ist eine coole Idee. Ich bin deprimiert darüber, wie wenig ich Best Practices wie Versionskontrolle während des Studiums kennengelernt habe. Ob es eine gute Idee ist, ist anders. –

+1

Ich denke, du solltest dafür sorgen, dass sie aus einem Repo ziehen, um den Auftrag zu bekommen. Auf diese Weise machen sie die Arbeit, nicht du. –

+0

Es ist eine brillante Idee. Vielleicht solltest du sogar einen Bereich auf http://github.com/ einrichten, um Anweisungen für die Zuweisung usw. zu enthalten. – grenade

Antwort

5

Sie können Gitosis SSH-Zugriff auf Repositories zu verwalten, wie in scie.nti.st: Hosting Git repositories, The Easy (and Secure) Way und Tv's cobweb: Snakepit and gitosis, things I've been working on Blog-Posts beschrieben, und in Chapter 4.7: Gitosis von "Pro Git: professioneller Versionskontrolle" Buch. Es ist in Python und erfordert setuptools. Oder Sie können versuchen, seine Entsprechung zu finden, wie gitolite (ehemals gitosis-lite) in Perl.

Alternative Lösung wäre für jeden der Studenten, sein eigenes Repository oder ein Paar Repositories zu haben: Privat, in dem er/sie arbeitet, und (halb-) öffentliches vielleicht mit SSH-Zugang, den er/sie zur Fertigstellung der Arbeit schiebt . Sie würden die Rolle des Betreuers/Integrators übernehmen und Pull Änderungen von ihren öffentlichen Repositories in Ihr Repository (oder Ihre Repositories). Die Schüler würden aus Ihrem öffentlichen Repository (oder Repositories) ziehen.

+0

Danke Jakub. Empfehlen Sie Gitosis oder Benutzerkonten für die Pflege der separaten Repositories? Beide erscheinen als praktikable Optionen und ich bin mir nicht sicher, welche einfacher und sicherer werden. –

+0

Ich habe nicht die Notwendigkeit, Multi-User-Git-Repositories einzurichten, also kann ich Ihnen das nicht sagen; Ich habe keine persönliche Erfahrung mit einem solchen Setup. Ich würde empfehlen, relevante Kapitel von "Pro Git" (und vielleicht auch "Git User's Manual" und "Git Community Book") zu lesen. –

+2

gitosis ist eine sehr komfortable Lösung, um Git-Repositories und Benutzerzugriffe zu verwalten. Sie können alle Repositorys und Zugriffsberechtigungen über 1 Konfigurationsdatei verwalten. Ich benutze Gitosis jetzt seit ungefähr einem Jahr und Management und Nutzung ist wirklich unkompliziert. Es ist definitiv einen Blick wert. – maff

2

Wenn Sie in ihre Repositorys (die ihrem Benutzer gehören) wechseln, müssen Sie root-Rechte verwenden, um in ihre eigenen zu gelangen. Warum veröffentlichen Sie nicht den Pfad zur Aufgabe und lassen Sie ihn ziehen?

Natürlich können Sie auch ssh-Schlüssel beschränken, so dass nur ein bestimmter Befehl ausgeführt werden kann; Sie könnten die Pfade in einem einzelnen Repo beschränken, der einem einzelnen Benutzer gehört, basierend auf dem bereitgestellten Schlüssel.

Git ist ein DCVS, also mag ich Ihre mehrere Konten Idee.

+0

"Wenn Sie in ihre Repositorys (die ihrem Benutzer gehören) pushen, müssen Sie root-Rechte verwenden, um in ihre eigenen zu gelangen." Ich hoffe, dass ich das umgehen kann, indem ich mich der Gruppe jedes Schülers hinzufüge. Natürlich habe ich keine Bedenken, in diesem Fall sudo zu verwenden :) –

+0

Ja, vielleicht würde nur die Umask auf 002 setzen, um die erstellten Dateien schreibbar zu machen. –

+1

'git init' hat eine' --shared' Option für genau diese Situation. Git wird die Gruppenzugriffsbits im Repository auf etwas einrichten, das Sinn macht (für die Gruppe). –

2

Wenn Sie Git verwenden, müssen Ihre Studenten viele Konzepte in Bezug auf Softwarekonfigurationsverwaltung, Versionskontrolle usw. lernen, was für den Unterricht, z. B. einen Erdkunde-Kurs, unnötig ist. Lehrst du einen SCM-Kurs? Wenn ja, klingt deine Idee gut. Wenn nicht, könnten Sie etwas wie Moodle betrachten. Wenn Ihre Benutzer unter Windows arbeiten, denken Sie daran, dass Git in dieser Umgebung nicht optimal ist.

+0

Ich stimme zu, Sie sollten wirklich sicherstellen, dass sie das Tool beherrschen, so dass sie keine Daten usw. verlieren. Sie müssen also ein paar Stunden verbringen, um erste VCS/DVCS Grundlagen zu unterrichten, dann git Besonderheiten (Reflog, Index, etc.)). – tonfa

+0

Dies könnte ein Deal-Breaker sein. Obwohl der Kurs für Studenten mit einem Bachelor-Abschluss im Informatik-Bereich auf einem Hochschulniveau unterrichtet wird, wird es kein Kursmaterial zur Versionskontrolle geben. Ich hoffe, dass sie sehr einfach mit git add/commit/push arbeiten können, um ihre Aufgaben zu erledigen. Ich könnte vielleicht eine Stunde in einem Labor verbringen, um sie mit git vertraut zu machen, aber nicht mehr. –

Verwandte Themen