Aktualnie pracuję nad projektem ASP.NET z wieloma programistami używającymi Subversion do dystrybucji kodu, ale w tej chwili jest to całkiem szczerze pomieszane. Osoba, która utworzyła repozytorium Subversion, zawiera pliki konfiguracyjne specyficzne dla swojego komputera, katalogów bin \ * i innych podobnych rzeczy.Najlepsze praktyki dotyczące przechowywania witryny sieci Web ASP.NET w Subversion?
Ja, jako gość, który musi sprawdzić to repozytorium i uruchomić go na moim komputerze, jestem bardzo sfrustrowany tym, ponieważ zajęło mi trochę czasu, aby posortować to wszystko, aby skompilować w ogóle. Teraz myślę o napisaniu dokumentu dotyczącego wytycznych Subversion, który wyślę do lidera technicznego w mojej firmie, abyśmy mogli ujednolicić proces i uniknąć tego rodzaju problemów.
Czego szukam, to wprowadzenie do wytycznych. Oto początek dla nich i mam nadzieję, że możemy zrobić z tego coś dobrego:
Struktura plików powinna być skonfigurowana tak, aby biblioteki innych firm były sprawdzane poza katalogami wyjściowymi kompilacji (ponieważ nie będą one dostępne). zawarte w repozytorium.) Nazwa tego katalogu powinna być "Biblioteki".
W Subversion nie należy umieszczać żadnych plików specyficznych dla maszyny. Dlatego sprawdzany jest tylko szablon Web.config, który jest dostosowywany przez programistów do ich maszyny. To zachowanie jest domyślnie zawarte w programie Visual Studio 2010, a poszczególne pliki konfiguracyjne (
Web.Local.config
) automatycznie stosują szablon (Web.config
). Lokalny plik konfiguracyjny nadal nie powinien być uwzględniony w Subversion, o ile dotyczy konkretnego komputera.Pliki rozwiązania i projektu nie mogą zawierać żadnych ścieżek bezwzględnych.
Należy skonfigurować listę ignorowania. Zacznij od:
' *.user obj '
przykładu struktury plików na stronie internetowej ASP.NET 2.0 z klasy biblioteki określonej na stronie internetowej oraz biblioteki innych firm:
' /trunk/ Libraries/ ThirdParty.dll MyClassLibrary/ bin/ [Ignore] obj/ [Ignore] Properties/ AssemblyInfo.cs SomeClass.cs MyClassLibrary.csproj - Holds references to third-party libraries. For example: ../Libraries/ThirdParty.dll MyWebApplication/ bin/ ThirdParty.dll [Ignore; copied by build process] ThirdParty.dll.refresh - Contains "../Libraries/ThirdParty.dll" Default.aspx Default.aspx.cs Web.config [Ignore] Web.config.template MySolution.sln - Holds list of projects. - Has reference information for projects. '
alternatywa do stosowania
Web.config.template
zadaniem będzie należy dołączyć plikLocal.config
zWeb.config
, ale może to być mniej elastyczne.Podczas korzystania z projektu aplikacji sieci Web zamiast projektu witryny sieci Web odniesienia będą przechowywane w pliku projektu zamiast w plikach .refresh, więc bin/folder zostanie zignorowany.
Czy ktoś może zobaczyć błędy w powyższych sugestiach? Czy czegoś brakuje? Czy ktoś ma sugestie dotyczące listy ignorowanych? Właśnie zacząłem z kilkoma wpisami na teraz.
przez 2,0 internecie zewnętrznych projektów odniesienia montażu są określane przez/bin/samego katalogu , więc potrzebuję (AFAIK) plików .refresh, które znajdują się w katalogu/bin /. Możliwe, że SVN zignoruje bin/*. Dll, więc nie powinno to stanowić problemu. Moim zamiarem było nigdy nie uwzględniać danych wyjściowych kompilacji w SVN, dlatego właśnie te wytyczne mają zapobiegać. Właściwie to napisałem swoje wytyczne, by najpierw zaimportować plik "Local.config", ale ponieważ w pliku konfiguracyjnym jest tak wiele sekcji, pomyślałem, że może lepiej mieć kopię pliku, który może być skonfigurowany przez programistę . – Blixt
Ahhh - Zapomniałem tych projektów 2.0 "strony internetowej" bez pliku projektu. Nigdy ich nie lubiłem. Ale masz wybór (aplikacja internetowa została ponownie wprowadzona do VS2005 SP1). Jeśli utworzysz "stronę internetową", nie masz żadnego pliku projektu, a katalog bin stanie się twoją referencją, lub możesz utworzyć "aplikację internetową", gdzie odniesienia są zdefiniowane przez plik projektu, i możesz wtedy zignorować cały bin teczka. Ale nie mam dużego doświadczenia z umieszczaniem projektu "strony internetowej" w svn. – Pete
Pete, możesz umieścić również ciągi połączeń w oddzielnym pliku konfiguracyjnym (chyba, że nadal używasz .NET 1.1). Po prostu użyj ' '. –