2011-12-14 9 views
7

Nie można znaleźć odpowiedniego polecenia do zastosowania etykiety do plików, które są w moim bieżącym widoku. Próbowałem następujące polecenie:Cleartool: Jak zastosować etykietę do plików, które są tylko w moim bieżącym widoku?

cleartool mklabel -r TEST_LABEL /vob/test/a 

Jednak problemem jest to, że ta komenda będzie stosować „Test_Label” etykiety do wszystkich plików w katalogach „vob/test/a” niezależnie od tego, czy pliki są w moim aktualnym widoku.
Czy jest jakieś polecenie, aby zastosować etykietę tylko do plików wymienionych w moim bieżącym widoku?

Odpowiedz

1

W mklabel documentation państwa członkowskiego, a do jakiej wersji jest oznakowane:

Procesy całe poddrzewo każdego pname który jest elementem katalogu (w tym samym pname). Łącza symboliczne VOB nie są wykonywane podczas rekurencyjnego zejścia do poddrzewa.

Jednym z przykładów jest mowa o:

Dołączyć tę etykietę do wersji bieżącego katalogu wybranym przez Państwa zdaniemoraz do aktualnie wybranej wersji każdego elementu i poniżej bieżącego katalogu .


Teraz, jeśli chcesz być naprawdę pewny wersji faktycznie oznakowanych, jednym z rozwiązań jest użycie find polecenia, w połączeniu z mklabel:

cleartool find . -cview -exec "cleartool mklabel TEST_LABEL \"%CLEARCASE_XPN%\"" 

Jeśli miał ta etykieta została już zastosowana do nieprawidłowej wersji i chcesz ją przenieść:

cleartool find . -cview -exec "cleartool mklabel -replace TEST_LABEL \"%CLEARCASE_XPN%\"" 

W ten sposób, można najpierw lista wersje zaangażowany:

cleartool find . -cview -print 

a następnie, jeśli zgadzasz się z wyjściem, zastosować mklabel przez dyrektywy -exec.

raportach OP user1096966 dzięki czemu praca z cleartool ls, aby mieć pewność, aby wybrać tylko elementy widoczne w bieżącym widoku:

cleartool ls -r -vis 

IS nie '-exec' dyrektywie, a więc rurę mogą być zaangażowane, jak w (nie testowane, ale masz pomysł):

cleartool ls -r -vis -s -nxn | xargs cleartool mklabel -replace TEST_LABEL 
+0

Witam, dziękuję za odpowiedź, ale chciałabym ply (mklabel) i nie twórz (mklbtype) nowej etykiety. – user1096966

+0

@ user1096966: odpowiedź zaktualizowana i naprawiona – VonC

+0

Właśnie wypróbowałem "cleartool find. -cview -print", ale wynik nie jest tym, czego chcę. Dane wyjściowe wyświetlały inny katalog, który nie jest widoczny w moim bieżącym widoku. Dzięki za pomoc, postaram się najpierw uzyskać poprawny wynik. – user1096966

0

doco jest bardzo jasne, co jest oznaczone, w rzeczywistości pierwszy examp le pokazane w dokumencie stwierdza, że ​​dokładnie ... bieżące obiekty widoku są domyślnie oznaczone & aktualnie wybranych wersji (tj. jeśli w twoim widoku oznacz go etykietą, w przeciwnym razie nie.)

....wyciąg poniżej z dokumentu poniżej (uwaga: kontekst i polecenie, a nazwa p do wyboru typu etykiety jest ostatnim parametrem ... pozostawionym pustym poniżej, ponieważ rezyduje w działającym repozytorium) ...

Przykład: • Utwórz typ etykiety o nazwie REL6. Dołącz tę etykietę do wersji katalogu bieżącego wybranego przez twój widok i do aktualnie wybranej wersji każdego elementu w bieżącym katalogu i pod nim. cmd-context> mklbtype -nc REL6

Pozdrowienia

Jim2

4
cleartool mklabel -r(ecurse) LABEL_NAME <directory name> 

Komenda ta będzie miała zastosowanie do wszystkich plików LABEL_NAME w folderze i dołu widoku, można po prostu przejść do i wpisz następujące polecenie, aby utworzyć i zastosować etykietę:

> cd /vob/test/a 
> cleartool mklbtype –nc TEST_LABEL 
> cleartool mklabel -r TEST_LABEL .