Zalecany mechanizm DVCS do obsługi wielu niezależnych poprawek

Właśnie zaczynam projekthttp://sourceforge.net/projects/iotabuildit/ (więcej szczegółów na stroniehttp://sourceforge.net/p/iotabuildit/wiki/Home/), który obecnie używa Mercurial do kontroli wersji. Wygląda na to, że Mercurial i SourceForge mają prawie wszystkie właściwe funkcje lub elementy, aby połączyć mechanizm współpracy, który mam na myśli w ramach tego projektu, ale myślę, że jeszcze tam nie jestem. Chcę, aby ludzie mogli zgłaszać, dyskutować i głosować nad indywidualnymi zmianami od dużej liczby osób (więcej deweloperów, niż normalnie miałby projekt). Chcę, aby użytkownicy mogli w tym uczestniczyć w jak najprostszy sposób. Myślą teraz jest to, że ludzie mogą klonować widelec „free4all”, który jest klonem bazowego repozytorium „kodu”, lub mogą tworzyć własne widelce we własnym projekcie użytkownika SourceForge (SourceForge zapewnia teraz przestrzeń roboczą dla każdego użytkownika do host różnych treści związanych z projektem). Następnie mogą sklonować to do lokalnego repozytorium (po pobraniu TortoiseHg lub preferowanego klienta Mercurial). Następnie mogą wprowadzać modyfikacje, zatwierdzać je, przesuwać do widelca i żądać scalenia z bazowym repozytorium „kodu”, w którym to momencie możemy omówić / przejrzeć żądanie scalenia. To wszystko jest wciąż zbyt wiele kroków i bardziej formalne niż bym chciał.

Widzę, że w Mercurial jest coś takiego jak „regały”, ale nie widzę, jak / jeśli to jest obsługiwane w repozytorium SourceForge. I prawdopodobnie nie ma sposobu na omówienie półkowych zmian, ponieważ są żądania scalania.

Szukam wszelkich sugestii, które ułatwiłyby to. W idealnej sytuacji chciałbym, aby użytkownicy mogli:

Określ dowolną wersję, którą chcieliby zagrać, i wypisz żądaną wersję z kontrolki źródłowej hostowanej, aby użytkownik mógł graćw SourceForge (ponieważ gra nie może być odtwarzana lokalnie ze względu na ograniczenia bezpieczeństwa, przeglądarka Chrome poprawnie stosuje kod javascript uzyskując dostęp do treści obrazu w niezależnych plikach)Pozwól użytkownikowi pobrać żądaną wersję projektu do edycji lokalnej (wersja C # zbudowana z tego samego źródła jest również dostępna lokalnie, lub Internet Explorer najwyraźniej ignoruje ograniczenia bezpieczeństwa, zezwalając na lokalne odtwarzanie w przeglądarce)Zaakceptuj wprowadzone modyfikacje w formie, którą można połączyć z dowolną inną kompatybilną „gałęzią” lub wersją gry, która została przesłana / opublikowana (najlepiej byłoby to bardzo proste - być może użyte po prostu załaduje cały zestaw plików z powrotem na serwer) i tam przeprowadzana jest ekstrakcja porównania i patch / diff)Inni gracze mogą zobaczyć listę dostępnych poprawek i wybrać dowolny zestaw do gry / testowania, a następnie omówić i głosować nad zmianami.

Oczywiście niektóre z tych wymagań są bardzo specyficzne i prawdopodobnie będę musiał napisać kod po stronie serwera, jeśli chcę osiągnąć idealny cel. Ale chcę podążać ścieżką najmniejszego oporu i korzystać z dostępnych technologii, jeśli większość potrzebnej mi funkcji jest już prawie na miejscu. Lub chciałbym zobaczyć, czy mogę podejść bliżej niż opisany wcześniej proces bez pisania kodu serwera. Jakie elementy pomogą mi to zrobić? Czy Mercurial i SourceForge obsługują przechowywanie i udostępnianie kodu półkowego w sposób, w jaki chciałbym? Czy jest coś w tej „kolejce poprawek” (którą widzę, ale nie rozumiem lub jeszcze nie działa), która może pomóc? Czy istnieje sposób na wyodrębnienie pliku poprawki z danego zestawu plików w porównaniu z konkretną wersją w repozytorium (po stronie serwera), bez konieczności pobierania przez użytkownika jakichkolwiek komponentów Mercurial?

questionAnswers(1)

yourAnswerToTheQuestion