Tylko co zrobić? Program Enterprise Architect uparcie zwraca nam informację, że pakiet ten jest zablokowany do edycji wyświetlając komunikat o treści: The selected package cannot be checked-out at this time. The associated XMI package file is already checked-out.
Od strony systemowej informacja o blokadzie (check-out) przechowywana jest aż w dwóch miejscach niezależnie:
- w repozytorium (baza danych lub plik EAP) w tabeli t_package,
- w repozytorium SVN w postaci atrybutu lock - to jest miejsce referencyjne.
Bez konieczności aktualizowania całej zawartości repozytorium możemy ustalić aktualny stan blokady poprzez wywołanie z menu kontekstowego (poprzez naciśnięcie prawego przycisku myszy na wybranym pakiecie) funkcji Package Control --> Re-synch Status With VC Provider.
Wynikiem wywołania tej funkcji będzie ewentualna aktualizacja blokady w repozytorium i wyświetlenie informacji w oknie Output. W przypadku, gdy nie udało się zdjąć blokady (brak różnic), wówczas wynik operacji wygląda następująco:
Resynchronizing status of the selected version controlled package, with its Version Control Provider.Jeśli nie mamy wiedzy o tym, kto jest autorem założonej blokady możemy wywołać funkcję File Properties również z menu kontekstowego wybranego pakietu: Package Control --> File Properties.... Otrzymujemy wówczas szczegółowe informacje o skojarzonym z pakietem pliku w systemie kontroli wersji.
Package: 'XXXX' - no change.
Version control status synchronization completed.
-- Double-click a package entry above to select that package in the Project Browser.
W takim przypadku konieczna jest operacja zdjęcia blokady w repozytorium systemu kontroli wersji. Jeśli korzystamy z SVN najprościej jest to wykonać przy użyciu programu TortoiseSVN.
Na dysku lokalnym odnajdujemy miejsce, gdzie znajduje się lokalna kopia repozytorium SVN, w programie TortoiseSVN wywołujemy okno Repo-Browser, jak na poniższym rysunku.
Blokadę zdejmujemy korzystając z funkcji Break lock wywołanej z menu kontekstowego na tym pakiecie.
W takim sam sposób należy zdjąć blokady pojedynczo dla wszystkich innych zablokowanych pakietów.
Po wykonaniu tej operacji jednak Enterprise Architect jeszcze nie będzie tego świadomy. Ale na szczęście każda próba check-out na pakiecie powoduje najpierw sprawdzenie w SVN, czy dla wybranego pakietu istnieje blokada. Nie jest zatem konieczne ponowne wykonanie funkcji Package Control --> Re-synch Status With VC Provider.
Dzięki, przydało się:)
OdpowiedzUsuń