Gdy model jest poddany kontroli wersji, wówczas jednak mamy ograniczone możliwości, bo możemy stworzyć kopię repozytorium w postaci pliku EAP lub testowej bazy danych - korzystając z funkcjonalności Project Transfer, ale co z tego, skoro i tak kopia repozytorium jest nadal "spięta" z tym samym systemem kontroli wersji.
Co zrobić zatem, gdy potrzebujemy przekazać klientowi kopię naszego modelu albo wykonać jakieś testy w modelu bez obaw o przypadkowe "uszkodzenie" zawartości modelu wykorzystywanego przez zespół?
Powinniśmy mieć możliwość łatwego "odpięcia" modelu z systemu kontroli wersji.
W menu kontekstowym po wskazaniu pakietu: Package Control --> Configure... możemy sprawdzić stan kontroli wersji wybranego pakietu (patrz poniższy rysunek) i odłączyć ten pakiet z systemu kontroli wersji odznaczając checkbox Control Package.
Po usunięciu pakietu z systemu kontroli wersji, zawartość tego okna jest wyświetlana w następujący sposób:
Tylko co z tego, jeśli:
- Nie można tego zrobić za jednym zamachem dla całej gałęzi - zaznaczenie opcji na tym ekranie Include sub-packages - nic nie daje. Pakiety podrzędne nadal pozostają w takim stanie, jak przedtem.
- Nie można tego zrobić na wybranym podrzędnym pakiecie, bez względu na to, czy gałąź jest w stanie "check-in" czy "check-out", trzeba zaczynać od roota. EA wyświetla w takim wypadku uparcie komunikat "Cannot remove a package from version control unless it is checked in."
- Należałoby to wykonać dla każdego pojedynczego pakietu - w sytuacji, gdy mamy w modelu kilkaset wersjonowanych pakietów - zadanie takie mogłoby nas przerosnąć.
EnAr Spy for Enterprise Architect
Pierwszym sposobem jest wykorzystanie darmowego dodatku do EA, czyli narzędzia EnAr Spy. Narzędzie to można pobrać stąd: blog.lieberlieber.com/2011/03/01/free-tool-enar-spy-for-enterprise-architect. Po wybraniu odpowiedniej opcji z menu (patrz rysunek poniżej) za jednym zamachem usuwana jest konfiguracja dla wszystkich pakietów w modelu.Oprócz funkcjonalności usuwania konfiguracji kontroli wersji dodatek posiada również inne możliwości, jak chociażby ułatwia wykonywanie dowolnych zapytań SQL na bazie EA.
Własne zapytanie SQL
Drugi sposób to własnoręczne wykonanie zapytania SQL, które realizuje to zadanie.Informacja o tym, że pakiet jest kontrolowany przechowywana jest w bazie danych repozytorium (w przypadku pracy na pliku EAP mamy również do czynienia z bazą danych w formacie MS Access, czyli domyślnie silnik MS JET 3.5). A konkretnie w tabeli t_package decydują o tym następujące atrybuty:
- IsControlled = 1
- XMLPatch = <nazwa pliku XML>, np. 'ea4\4D99E948BFE6.xml'
- PackageFlags='VCCFG=<UniqueID>;', gdzie UniqueID to nazwa konfiguracji kontroli wersji.
UPDATE t_package SET IsControlled = 0, XMLPath = NULL WHERE IsControlled = -1
oraz dla innych baz danych (np. MySQL lub Oracle):
UPDATE t_package SET IsControlled = 0, XMLPath = NULL WHERE IsControlled = 1
Wprawdzie w kolumnie PackageFlags zostanie nadal informacja o nazwie konfiguracji (VCCFG=<UniqueID>;), ale nie stanowi to problemu w działaniu Enterprise Architecta.
Tak naprawdę działanie dodatku EnAr Spy sprowadza się właśnie do wykonania wyżej wymienionego polecenia SQL, z tym że działa ono poprawnie w przypadku plików EAP, a w przypadku innych repozytoriów (np. MySQL lub Oracle) zwraca zero zmodyfikowanych rekordów.
Brak komentarzy:
Prześlij komentarz