Przechodzę przez Bitbucket i nie mogę znaleźć żadnych repozytoriów Mercurial, które wyglądają tak, jak podejrzewam, że nasze repozytorium będzie wyglądało, o ile przerzucimy się na Mercurial.Mercurial repozytoriów z wieloma aktywnymi programistami?
Zastanawiam się, czy istnieje przepływ pracy, którego tutaj nie rozważamy?
Chodzi o to, że zrobiłem mały automatyczny test. Mamy 14 osób pracujących nad tym samym projektem, podzielonych na 4 zespoły scrumowe. Aby zasymulować 14 (wybrałem 10, okrągłą liczbę) osób pracujących równolegle na kodzie, używając Mercurial DVCS, pchając do tego samego centralnego repozytorium głównego, napisałem skrypt.
- stworzyłem nowy "master" repozytorium, a następnie klonować go do 10 wirtualnych ludzi
- Potem przesunął 1000 iteracji pętli, wybierając losowo klon i wykonując jedną z następujących czynności:
- 10% czasu, czy ciągnąć od mistrza, łączenia, scalania popełnić, i naciskać
- 90% czasu, zrobić lokalną zmianę i popełnić
Należy pamiętać, że zapewniłem, że nigdy nie doszłoby do konfliktów scalających, po prostu sprawiając, że każda wirtualna osoba będzie pracować nad własnym plikiem.
To symuluje osoby pracujące lokalnie, wykonując 1+ zatwierdzenia przed ciągnięciem, łączeniem i pchaniem (aby uniknąć 2+ głów w repozytorium głównym). Być może ten przepływ pracy jest nieprawidłowy.
Jest to próbka tego, co repozytorium teraz wygląda (zdjęcie + link do repo):
Repozytorium można znaleźć tutaj: http://hg.vkarlsen.no/hgweb.cgi/parallel_test/graph.
To wygląda okropnie niechlujnie, i jak powiedziałem, nie mogę znaleźć żadnych repozytoriów, które mają podobną historię. Mówiąc "niechlujnie", mam na myśli to, że wygląda na to, że starsza historia projektu prawie zawsze ma 10 równoległych gałęzi. Na samej górze zwęża się, ale rozszerza się, gdy ludzie, którzy aktualnie pracują w lokalnym repozytorium, popychają do mistrza.
Mam więc dwa pytania:
- Może ktoś mi pokazać repozytorium, które ma podobną historię? Ponieważ nie mogę go znaleźć, zaczynam się zastanawiać, jakie wnioski mogę z tego wyciągnąć ...
- Czy coś jest nie tak z naszym przepływem pracy (to znaczy z przepływem pracy, który określiłem tutaj)? Czy powinniśmy dokonać ponownej rozbudowy/squasha/transplantacji, przekazać odpowiedzialność za jedną osobę, inne rzeczy, zamiast tego, jak to się stało?
OK, to nie jest daleko od bazy. Zastanawiałem się, czy wszyscy robią patch-maile do centralnego opiekuna, czy coś w tym stylu, ale to repo, z którym się łączycie pokazuje mi to samo. Dobry. Kolejnym przystankiem jest ocena Kiln (od Fogcreek) jako naszej strony internetowej, z jej Electric DAG powinno być łatwo zobaczyć, które zatwierdzenia przyczynia się do tego, które inne zobowiązania, które mogą sprawić, że starsza historia będzie znacznie łatwiejsza w użyciu. –
Nie wiedziałem o elektrycznym DAG. Popatrzy na Kiln więcej. Zobacz również http://stackoverflow.com/questions/3879856/is-there-any-way-to-change-how-graphs-are-represented-in- ric- rial o ulepszaniu wyświetlania wykresów. – Macke
Do przycinania commitów można użyć rozszerzenia pbranch, które ma na celu znacznie więcej: pozwala na utrzymanie, dzielenie, scalanie i publikowanie wielu gałęzi WIP, trochę jak TopGit dla git. Jest dość ciężki, więc prawdopodobnie będzie potrzebował dodatkowych skryptów na wierzchu. –