2010-05-21 11 views
15

W mojej firmie mamy kilka różnych aplikacji internetowych, z których każda ma wspólne biblioteki. Konfiguracja programu Visual Studio wygląda następująco.Jak skonfigurować moje projekty/rozwiązania Visual Studio w Mercurial repozytorium?

 
Website 1 Solution 
    Website 1 
    Shared Library 1 Project 
    Shared Library 2 Project 

Website 2 Solution 
    Website 2 
    Shared Library 1 Project 
    Shared Library 2 Project 

Windows Service Solution 
    Windows Service Project 
    Shared Library 1 Project 
    Shared Library 2 Project 

Shared Library Solution 
    Shared Library 1 Project 
    Shared Library 2 Project 

All Projects Solution 
    Website 1 
    Website 2 
    Windows Service Project 
    Shared Library 1 Project 
    Shared Library 2 Project 

Chcemy zacząć używać Mercurial dla kontroli źródła, ale wciąż nie jestem pewien, że najlepszym sposobem, aby to zrobić.

Z tego, co przeczytałem, powinieneś korzystać z oddzielnego repozytorium dla każdego projektu. Nie ma problemu, ale gdzie się znajdują pliki rozwiązania Visual Studio (.sln)? Czy powinno istnieć oddzielne repozytorium z plikiem .sln?

Idealnie projekty korzystające z bibliotek współdzielonych powinny korzystać z tej samej wersji, a rozwiązanie "Wszystkie rozwiązania projektów" powinno być tworzone bezbłędnie, ale czasami musimy rozgrupować udostępnione biblioteki. Jaki jest najlepszy sposób na zrobienie tego i jak skonfigurowano by repozytoria?

Jak uzyskać kopię roboczą określonego oddziału/tagu rozwiązania Website 1, gdy każdy projekt znajduje się w osobnym repozytorium. Czy muszę wyciągnąć każdą z nich osobno, czy napisać scenariusz, aby zrobić to wszystko naraz? Czy żółw hg może to dla mnie zrobić?

Jakieś inne wskazówki, dzięki którym ten proces jest łatwiejszy?

+0

Czy kiedykolwiek to rozgryzłeś? Jestem również ciekawy. – wtjones

+0

Niestety nie. Zmieniłem pracę, aw mojej nowej firmie używają TFS do kontroli źródła, co jest pod wieloma względami przyjemniejsze, ale ma też swoje własne kłopoty i ograniczenia. –

Odpowiedz

1

Aby to zrobić, użyłbym mercurial subrepositories. Następnie możesz umieścić swoje "wszystkie" rozwiązania w głównych repozytoriach. Reszta twoich projektów może być podsposobieniem tego. Mercurial obsługuje także rekurencyjnie podrepozytory.

Niestety TortoiseHg wymienia tylko rudimentary support for subrepositories, więc być może będziesz musiał dokonać pewnych wyborów dotyczących tego, jak chcesz je skonfigurować.

Jeśli podrepositores są zbyt dużym obciążeniem, powinieneś być w porządku, umieszczając wszystko w jednym repozytorium. Jeśli chodzi o Mercurial, to nie obchodzi go, czy podzieliłeś rzeczy w repozytoriach, czy nie. Jedynym ograniczeniem jest twoja sytuacja. Jeśli projekty okażą się tak duże lub zbyt częste, że zarządzanie repozytorium jest zbyt dużym obciążeniem, na przykład.

Albo podziel wszystko na osobne repozytoria i skopiuj je. To zależy wyłącznie od Ciebie.

Powiązane problemy