Usuwanie pakietu jest również formą jego edycji. Gdy próbujemy usunąć pakiet, który jest w stanie checked-out - operacja kończy się wyświetleniem stosownego komunikatu.
W tym przykładzie próba usunięcia pakietu dotyczy Pakiet1.
Wybieramy z menu kontekstowego opcję Delete 'Package1'.
A w rezultacie dostajemy komunikat o treści:
You cannot delete the selected package tree at this time.
The contained package 'Pakiet1', is currently checked-out in this model.
(Only reporting first found checked-out package...)
A zatem nie możemy usunąć tego pakietu, bo jest w stanie checked-out.
Naturalną czynnością jest zatem "wczekowanie" tego pakietu (check-in).
Nie powinniśmy jednak wczekować pakietu nadrzędnego, bo wówczas opcja usuwania pakietu będzie niedostępna.
Rozwiązanie
Aby usunąć pakiet wraz z całą zawartością z modelu opartego o system kontroli wersji (np. SVN lub TFS) pakiet nadrzędny powinien być w stanie checked-out (w przykładzie pakiet o nazwie Widok), a usuwany pakiet w stanie checked-in (w przykładzie pakiet o nazwie Pakiet1). Jeśli usuwany pakiet posiadałby jeszcze podpakiety, wówczas wszystkie one również muszą być w stanie checked-in.
Poprawną sytuację prezentuje poniższy rysunek.
Teraz po wskazaniu pakietu Pakiet1 i wybraniu opcji Delete z menu kontekstowego spowoduje wyświetlenie spodziewanego komunikatu z pytaniem, czy na pewno chcemy usunąć pakiet.
Wybór odpowiedzi Yes sprawi, że pakiet zostanie usunięty z modelu.
Aby inni użytkownicy zobaczyli zmiany w modelu musimy jeszcze "wczekować" (check-in) pakiet nadrzędny (w przykładzie o nazwie Widok).
W repozytorium SVN zostanie jeszcze plik XMI z zawartością usuniętego pakietu. Gdybyśmy chcieli usunąć go również stamtąd, musimy to wykonać ręcznie.
Działa :) A próbowałem obejść ten komunikat bez google'i chyba godzinę.
OdpowiedzUsuń