Verwenden des Mercurial Patch Queue Repository unter BitBucket für viele Benutzer und Patches
Entschuldigen Sie die vielteilige Frage, aber ich habe Schwierigkeiten, die beabsichtigten Methoden zur Verwendung einer Mercurial Patch Queue mit BitBucket zu verstehen, und Google hilft nicht viel. Ich hoffe, dass eine Antwort, die einige MQ-Konzepte beschreibt, viele der Fragen gleichzeitig abdeckt. ich habe gelesenhttp://ches.nausicaamedia.com/articles/technogeekery/using-mercurial-queues-and-bitbucket-org, aber es scheint veraltet und unvollständig zu sein. Mein Gesamtplan ist es, eine Vielzahl von eingereichten Änderungen von einer Vielzahl von Benutzern zuzulassen, ohne sie notwendigerweise an eine Zweigstelle zu binden. Diese Patches stellen optionale Modifikationen dar, die Spieler an einem Spiel vornehmen, um das Spiel zu verbessern und zu erweitern. Und ich möchte, dass Benutzer in der Lage sind, einen beliebigen Patch oder eine Reihe von Patches auszuwählen, mit denen sie spielen und diese überprüfen können. Wenn ich ein sicheres Verständnis dafür habe, wie hg funktioniert, möchte ich einige PHP-Skripte oder etwas schreiben, um eine Verzweigung und einen ausgewählten Satz von Patches in einen Arbeitsbereich zu ziehen, damit ein Player den HTML5-Code zur Überprüfung ausführen kann.
I haben war in der Lage zu:
Erstellen Sie ein Repository in SourceForgehttp://sourceforge.net/p/iotabuildit/wiki/Home, wo ich ursprünglich dachte, ich würde alles hosten.Übertragen Sie meinen gesamten Code in das SourceForge-Repository.Stellen Sie fest, dass BitBucket ein besserer Ort ist, um dies zu hosten (danke anEmpfohlener DVCS-Mechanismus zum Hosten vieler unabhängiger Patches) nach meinen Wünschen.Importieren Sie meinen Code direkt aus dem Mercurial-Repository von SourceForge in BitBuckethttp://bitbucket.org/bluemonkmn/iotabuildit/Fügen Sie TortoiseHg den BitBucket-URI hinzu, damit ich dasselbe lokale Repository mit beiden Online-Repositorys verwenden kann.Aktivieren Sie mq in TortoiseHgQGeben Sie eine Änderung in die Patch-Warteschlange meines lokalen Repository ein.Erstellen Sie ein Patch-Warteschlangen-Repository in BitBuckethttp://bitbucket.org/bluemonkmn/iotabuilditmq/.Klonen Sie das Patch-Warteschlangen-Repository in ein lokales RepositoryKopieren Sie die Patch-Dateien aus dem ursprünglichen lokalen Repository in das Repository der Patch-Warteschlange (obwohl ich mich frage, ob es eine bessere Möglichkeit gibt, dies zu tun).Schieben Sie die Patches in das BitBucket-Patch-Warteschlangen-Repository, indem Sie den Schalter --mq aktivieren, bevor Sie einen Push ausführen.Siehe die in BitBucket aufgelisteten Patches.Klonen Sie eine neue Kopie des BitBucket-Patch-Warteschlangen-Repositorys und sehen Sie sich die im lokalen Repository verfügbaren Patches (zusammen mit dem Rest des Baums) an.Die Dinge, die ichkippen Finden Sie heraus, oder haben Sie Fragen zu:
Muss ich sowohl ein Haupt-Repository als auch ein Patch-Repository lokal aufbewahren?Kann / sollte ich das Patch-Repository mit SourceForge verwenden? (Wenn ich kann, kann ich BitBucket aufgeben.)Unterstützt SourceForge mq? (Wird mir SourceForge jemals ein geklontes Repository mit den Patches geben, die ich auf BitBucket gesehen habe?)Kann / sollte ich das ursprüngliche Repository mit dem BitBucket-Patch-Repository verwenden? (Wenn ich kann, kann ich das Repository bei SourceForge aufgeben.)Muss ich ein Repository verwenden, wenn ich an Code arbeite, der für Patches vorgesehen ist, und das andere, wenn ich an Code arbeite, für den ein formelles Commit durchgeführt werden soll?Was ist der beste Weg, um aPatch in ein Online-Repository?Mache ich ein QCommit oder QNew im lokalen Patch-Repository und drücke dann auf den Schalter --mq?Irgendwann während meines Prozesses habe ich eine Serie und eine .diff-Datei in das Patch-Repository geschrieben, was ein wenig abwegig schien. Hat dies meine Wahrnehmung beeinträchtigt, wie mq und BitBucket funktionieren sollen?Sollte ich jemals .diff-Dateien für die Quellcodeverwaltung in BitBucket oder SourceForge festlegen? (In einigen Fällen scheint QCommit .hgignore-, Serien- und .diff-Dateien festschreiben zu wollen.)Sollen Benutzer in der Lage sein, ausstehende und / oder nicht angewendete Patches in einem Patch-Repository nach dem Klonen zu sehen?Gibt es eine Möglichkeit, verfügbare Patches in einem lokalen System abzurufen?oder Remote-Repository, ohne es zu klonen?Nachdem ich einen Patch in meinem lokalen Repository gelöscht hatte, konnte ich weder herausfinden, wie er aus dem Remote-Repository wiederhergestellt werden kann, ohne ihn erneut zu klonen, noch konnte ich herausfinden, wie das Löschen des Patches festgeschrieben werden kann.Ich konnte den Patch nicht von meinem ursprünglichen Repository in das Patch-Repository übertragen, ohne die Patch-Dateien manuell zu kopieren.Bin ich bald auf ein Problem gestoßen, bei dem ich einige Patches nicht aus der Warteschlange heraussuchen kann, ohne andere Patches in derselben Warteschlange vor mir zu haben? Ich mache mir Sorgen, dass einige Spieler es unterlassen, ihre Patches in einem separaten Zweig / einer separaten Warteschlange / was auch immer zu erstellen, was sie mit nicht verwandten Änderungen desselben (oder vielleicht sogar eines anderen) Benutzers in Einklang bringt. Vorschläge zur Behebung dieses potenziellen Problems sind ebenfalls willkommen.Ist es möglich (zuzulassen), dass ein beliebiger Benutzer einen Patch sendet, ohne dass jeder BitBucket-Benutzer explizit hinzugefügt werden muss, um Berechtigungen für das Patch-Repository zu erhalten?Ist es ratsam und vernünftig, dass alle (möglicherweise Hunderte?) Benutzer das Patch-Warteschlangen-Repository gemeinsam nutzen? Dies wäre ideal (anstatt dass jeder Benutzer sein eigenes Patch-Repository erstellt, falls dies überhaupt möglich ist), da ich nicht möchte, dass dies für Benutzer kompliziert wird, und da ich mir die Zeit genommen habe, Mercurial und BitBucket zu verstehen, habe ich befürchten, dass eine Komplikation viele Benutzer / Spieler ausschaltet.Wie Sie vielleicht sagen können, bin ich irgendwie verloren und weiß nicht, welche Fragen ich stellen soll. Ich vermute, die Antwort ist einfacher als diese Fragen, aber ohne die Frage zu kennen, ist es schwierig, die richtige Frage zu stellen. Hoffentlich klärt eine Antwort, die die Art eines Patch-Warteschlangen-Repository beschreibt, all dies für mich auf.