Empfohlener DVCS-Mechanismus zum Hosten vieler unabhängiger Patches

Ich habe gerade ein Projekt in Angriff genommenhttp://sourceforge.net/projects/iotabuildit/ (weitere Details unterhttp://sourceforge.net/p/iotabuildit/wiki/Home/), die derzeit Mercurial für die Versionskontrolle verwenden. Anscheinend verfügen Mercurial und SourceForge fast über die richtigen Funktionen oder Elemente, um den Kollaborationsmechanismus zusammenzustellen, den ich für dieses Projekt beabsichtige, aber ich glaube, ich bin noch nicht ganz da. Ich möchte, dass Menschen in der Lage sind, individuelle Änderungen von einer großen Anzahl von Personen einzureichen, zu diskutieren und abzustimmen (mehr Entwickler als ein Projekt normalerweise haben würde). Und ich möchte, dass die Benutzer so einfach wie möglich daran teilnehmen können. Derzeit wird davon ausgegangen, dass Benutzer die Gabel "free4all" klonen können, die ein Klon des Basis-Repositorys "code" ist, oder ihre eigene Gabel in ihrem eigenen SourceForge-Benutzerprojekt erstellen können (SourceForge stellt nun jedem Benutzer einen Arbeitsbereich zur Verfügung) verschiedene projektbezogene Inhalte hosten). Dann können sie das in ihr lokales Repository klonen (nachdem sie TortoiseHg oder ihren bevorzugten Mercurial-Client heruntergeladen haben). Dann können sie Änderungen vornehmen, sie festschreiben, sie an den Fork schieben und eine Zusammenführung in das Basis- "Code" -Repository anfordern. An diesem Punkt können wir die Zusammenführungsanforderung diskutieren / überprüfen. Das alles ist noch viel zu viele Schritte und formeller als ich möchte.

Ich sehe, dass es in Mercurial so etwas wie "Regale" gibt, aber ich sehe nicht, wie / ob dies im SourceForge-Repository unterstützt wird. Und es gibt wahrscheinlich keine Möglichkeit, zurückgestellte Änderungen zu diskutieren, da Zusammenführungsanforderungen vorliegen.

Ich bin auf der Suche nach Anregungen, die dies erleichtern würden. Im Idealfall möchte ich, dass Benutzer in der Lage sind:

Geben Sie eine beliebige Version an, die abgespielt werden soll, und lassen Sie die angeforderte Version aus der Quellcodeverwaltung extrahieren, damit der Benutzer sie abspielen kannbeim SourceForge (da das Spiel aufgrund von Sicherheitsbeschränkungen nicht lokal gespielt werden kann, gilt der Chrome-Browser ordnungsgemäß für JavaScript-Code, der auf Bildinhalte in unabhängigen Dateien zugreift.)Ermöglichen Sie dem Benutzer, die angeforderte Version des Projekts für die lokale Bearbeitung herunterzuladen (eine C # -Version, die aus derselben Quelle erstellt wurde, kann auch lokal wiedergegeben werden, oder Internet Explorer ignoriert anscheinend die Sicherheitsbeschränkung und lässt die lokale Wiedergabe in einem Browser zu).Akzeptiere eingereichte Änderungen in einer Form, die mit jedem anderen kompatiblen "Zweig" oder jeder anderen Version des Spiels, die eingereicht / gepostet wurde, zusammengeführt werden kann (im Idealfall wäre dies sehr einfach - vielleicht wird nur der gesamte Satz von Dateien zurück auf den Server hochgeladen) und das Vergleichen und Patch / Diff-Extrahieren wird dort durchgeführt)Andere Spieler können eine Liste der verfügbaren eingereichten Patches anzeigen und einen beliebigen Satz zum Spielen / Testen auswählen. Anschließend können sie Änderungen diskutieren und abstimmen.

Offensichtlich sind einige dieser Anforderungen sehr spezifisch, und ich werde wahrscheinlich serverseitigen Code schreiben müssen, um das ideale Ziel zu erreichen. Aber ich möchte den Weg des geringsten Widerstands beschreiten und die verfügbaren Technologien nutzen, wenn ein Großteil der von mir benötigten Funktionalität bereits fast vorhanden ist. Oder ich möchte sehen, ob ich dem zuvor beschriebenen Prozess näher kommen kann, ohne Servercode zu schreiben. Welche Teile werden mir dabei helfen? Unterstützt Mercurial & SourceForge das Speichern und Freigeben von geschütztem Code auf die von mir gewünschte Weise? Gibt es etwas in dieser "Patch-Warteschlange" (das ich sehe, aber noch nicht verstehe oder arbeiten kann), das helfen könnte? Gibt es eine Möglichkeit, eine Patch-Datei aus einem bestimmten Satz von Dateien im Vergleich zu einer bestimmten Revision in einem Repository (auf der Serverseite) zu extrahieren, ohne dass der Benutzer Mercurial-Komponenten herunterladen muss?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage