![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pewnie większość z was pisząc klasy napotyka na pewien problem.
Część z tych klas ciągle się powtarza i z czasem budujecie taki swój zestaw wielokrotnego użytku. Problem jednak jak go utrzymać, stosować w wielu projektach i zarazem rozwijać. Oczywiście w utrzymaniu pomocny jest svn, ale z drugiej strony wiadomo, że przy każdym projekcie dochodzi coś nowego i coś trzeba w tych klasach poprawić/pozmieniać. I teraz jak tym wszystkim zarządzać? Ja wymyśliłem pewne rozwiązanie i chciałbym skonfrontować je z waszymi doświadczeniami Załóżmy, że mam 3 projekty lib - klasy wspólne do wielokrotnego użytku pro1 - projekt 1 pro2 - projekt 2 Teraz teraz w lib tworze 2 galezie -> dla każdego projektu po jednej i robie ich checkout jako folder do obu projektów. Pracuje sobie spokojnie na obu projektach i tam też rozwijam moje klasy wspólne. Następnie po pewnym czasie robie w lib połączenie danej gałęzi z trunkiem i importuje tam, to co uznam za krok w dobrą stronę, natomiast resztę zmian odrzucam i traktuje jako "personalizację" w danym projekcie. Szczerze mówiąc jest to jedyne wyjście jakie mi przychodzi do głowy i nie wiem czy jest ono dobre? Co o tym myślicie. Na forum pro widziałem podobny temat (już niestety zamknięty) i tam proponowano użycie external - szczerze mówiąc nie mogę się jednak połapać po wstępnym przeczytaniu dokumentacji o co chodzi - może od rana pójdzie lepiej. No nie ważne - będę wdzięczny za każde sugestie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
External jest najlepszym rozwiązaniem.
U nas rozwiązaliśmy to mniej więcej tak: Kod /lib/ /stable/ ./lib/ <---- link do /lib/ ./core/ ./project/ <----- jakiś przykładowy projekt /branches/ ./project1/ ./lib/ <---- link do /lib/ ./core/ <---- link do /stable/core/ ./project/ ./project2/ ./lib/ <---- link do /lib/ ./core/ <---- link do /stable/core/ ./project/ /trunc/ ./lib/ <---- link do /lib/ ./core/ ./project/ <----- jakiś przykładowy projekt /tags/ ./project1/ ./01.01.2007/ ./version1/ Gdzie /lib/ to biblioteki zewnętrzne, ./core/ to pliki "systemowe" tworzonych przez nas projektów a ./project/ to pliki personalizowane na potrzeby każdego projektu. W /tags/ tworzone są natomiast kopie jakichś "stabilnych" etapów projektu, np. związanych z pokazaniem / oddaniem / uruchomieniem go u klienta. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 10:42 |