Manuals

Ustawienia projektu

Atrybuty Subversion

Rysunek 4.37. Strona atrybutu Subversion

Strona atrybutu Subversion


Możecie czytać i ustawiać atrybuty Subversion w oknie właściwości systemu Windows, ale także w TortoiseSVNAtrybuty i na listach stanu TortoiseSVN z menu kontekstowegoWłaściwości.

Możecie dodać własne atrybuty, lub pewne atrybuty o specjalnym znaczeniu w Subversion. Zaczynają się one od svn:. svn:externals jest takim atrybutem; zobaczcie jak obsługiwać zewnętrzne w „Elementy zewnętrzne”.

svn:keywords

Subversion obsługuje CVSopodobne rozwinięcia słów kluczowych, które można wykorzystać do umieszczenia nazwy pliku pliku i informacji o wersji w samym pliku. Obsługiwane są obecnie słowa kluczowe:

$Date$

Data ostatniego znanego zatwierdzenia. Pochodzi ona z informacji uzyskanych podczas uaktualniania kopii roboczej. Nie jest sprawdzane repozytorium, aby znaleźć późniejsze zmiany.

$Revision$

Wersja ostatniego znanego zatwierdzenia.

$Author$

Autor wykonujący ostatnie znane zatwierdzenie.

$HeadURL$

Pełny adres URL tego pliku w repozytorium.

$Id$

Skompresowane połączenie czterech poprzednich słów kluczowych.

Aby dowiedzieć się, jak używać tych słów kluczowych, spójrzcie na svn:keywords section w księdze Subversion, która daje pełny opis tych słów kluczowych oraz jak je włączyć i używać.

By dowiedzieć się więcej o atrybutach w Subversion przejdźcie do Atrybuty Specjalne.

Dodawanie i edytowanie atrybutów

Rysunek 4.38. Dodawanie atrybutów

Dodawanie atrybutów


Aby dodać nowy atrybut, kliknijcie na Nowy.... Wybierzcie odpowiednią nazwę atrybutu z menu, a następnie uzupełnijcie wymagane informacje w określonym oknie dialogowym atrybutu. Te specyficzne okna dialogowe atrybutów są opisane bardziej szczegółowo w „Edytory atrybutów”.

Aby dodać atrybut, który nie ma własnego okna dialogowego, wybierzcie Zaawansowane z menu Nowy.... Następnie wybierzcie istniejący atrybut z listy rozwijanej lub wprowadźcie własną nazwę atrybutu.

Jeśli chcecie zastosować atrybut do wielu elementów naraz, wybierzcie pliki/foldery w eksploratorze, a następnie wybierzcie menu kontekstoweatrybuty.

Jeśli chcecie zastosować właściwość do każdego pliku i folderu w hierarchii poniżej bieżącego folderu, zaznaczcie pole wyboru Rekursywne.

Jeśli chcecie edytować istniejący atrybut, zaznaczcie atrybut na liście istniejących atrybutów, a następnie kliknijcie Edytuj....

Jeśli chcecie usunąć istniejący atrybut, zaznaczcie go na liście istniejących atrybutów, a następnie kliknijcie Usuń.

Atrybut svn:externals może być wykorzystany do podciągnięcia elementów w innych projektach z tego samego lub innego repozytorium. Aby uzyskać więcej informacji, przeczytajcie „Elementy zewnętrzne”.

Edycja atrybutów w wersji HEAD

Ponieważ atrybuty są wersjonowane, nie można edytować atrybutów poprzednich wersji. Jeśli spojrzeć na atrybuty w oknie dialogowym dziennika, lub z wersji nie-HEAD w przeglądarce repozytorium, pojawi się lista właściwości i wartości, ale nie pola edycji.

Eksport i import atrybutów

Często okazuje się, że stosuje się ten sam zestaw właściwości wielokrotnie, na przykład bugtraq:logregex. Aby uprościć proces kopiowania właściwości z jednego projektu do drugiego, można użyć funkcji Eksport/Import.

Z pliku lub folderu, gdzie atrybuty są już ustawione, użyjcie TortoiseSVNatrybuty, wybierzcie atrybuty, które chcecie wyeksportować i kliknijcie Eksport.... Zostaniecie poproszeni o nazwę pliku, w którym nazwy atrybutów i wartości zostaną zapisane.

Na folderze(ach), gdzie chcecie zastosować te atrybuty, należy użyć TortoiseSVNatrybuty i kliknąć Importuj.... Zostaniecie poproszeni o nazwę pliku źródłowego, więc przejdźcie do miejsca zapisania pliku wcześniej wyeksportowanego i wybierzcie go. Atrybuty zostaną dodane do folderów nierekurencyjnie.

Jeśli chcecie dodać właściwości do drzewa rekurencyjnie, wykonajcie czynności opisane powyżej, a następnie w oknie atrybutów wybierzcie każdy atrybut po kolei, kliknijcie na Edytuj..., zaznaczcie pole wyboru Zastosuj atrybut rekursywnie i kliknijcie na OK.

Format pliku importu jest binarny i przeznaczony jedynie dla TortoiseSVN. Jego jedynym celem jest przeniesienie atrybutów za pomocą importu i eksportu, nie ma zatem potrzeby, aby edytować te pliki.

Atrybuty binarne

TortoiseSVN może obsługiwać binarne wartości atrybutów przy użyciu plików. Aby odczytać binarne wartości atrybutów, Zapisz... do pliku. Aby ustawić wartość binarną, należy użyć edytora szesnastkowego lub innego właściwego narzędzia do tworzenia pliku którego treści wymagasz, a następnie Załaduj... z tego pliku.

Chociaż atrybuty binarne nie są często stosowane, mogą być przydatne w niektórych zastosowaniach. Na przykład do przechowywania ogromnych plików graficznych lub jeśli aplikacja służąca do załadowania pliku jest ogromna, więc może chcecie przechowywać miniaturę jako właściwość, dzięki czemu można uzyskać szybko podgląd.

Automatyczne ustawienie atrybutu

Możecie skonfigurować Subversion i TortoiseSVN by ustawiać automatycznie atrybuty plików i folderów, gdy są one dodawane do repozytorium. Istnieją dwa sposoby na zrobienie tego.

Możecie edytować plik konfiguracyjny Subversion by włączyć tą funkcję klienta. Strona Ogólne w oknie ustawień TortoiseSVN ma przycisk prowadzący tam bezpośrednio. Plik konfiguracyjny to prosty plik tekstowy kontrolujący pewne działania Subversion. Powinniście zmienić dwie rzeczy: po pierwsze w sekcji z nagłówkiem miscellany usuńcie komentarz z linii enable-auto-props = yes. po drugie powinniście poprawić sekcjęponiżejby określić, które właściwości chcecie dodać do poszczególnych typów plików. Ta metoda to standardowa funkcja Subversion i działa na każdym kliencie Subversion. Musi być jednak zdefiniowana na każdym kliencie osobno - nie ma sposobu by rozpropagować te ustawienia z repozytorium.

Alternatywną metodą jest ustawienie atrybutu tsvn:autoprops na folderach, jak opisano w następnej sekcji. Ta metoda działa tylko dla klientów TortoiseSVN, ale rozsyłany jest do wszystkich kopii roboczych podczas aktualizacji.

W Subversion 1.8 można również ustawić atrybut svn:auto-props na folderze głównym. Wartość atrybutu jest automatycznie dziedziczona przez wszystkie elementy podrzędne.

Niezależnie od wybranej metody, należy pamiętać, że auto-props są stosowane tylko do plików w czasie, gdy te są dodawane do kopii roboczej. Auto-props nigdy nie zmieni właściwości plików, które są już wersjonowane.

Jeśli chcecie mieć pewność, że nowe pliki mają ustawione odpowiednie atrybuty, należy skonfigurować w repozytorium przechwycenie pre-commit do odrzucenia zatwierdzeń gdzie wymagane atrybuty nie są ustawione.

Atrybuty zatwierdzenia

Atrybuty Subversion są wersjonowane. Po zmianie lub dodaniu atrybutu musicie zatwierdzić swoje zmiany.

Konflikty atrybutów

Jeśli występuje konflikt w czasie zatwierdzenia zmian, ponieważ inny użytkownik zmienił ten sam atrybut, Subversion generuje plik .prej. Należy usunąć ten plik po rozwiązaniu konfliktu.

Atrybuty projektu TortoiseSVN

TortoiseSVN ma kilka specjalnych atrybutów, a ich nazwy zaczynają się od tsvn:.

  • tsvn:logminsize ustawia minimalną długość opisu zmiany podczas zatwierdzenia. Jeśli wprowadzicie krótszy opis niż podano tutaj, zatwierdzenie zostaje zablokowane. Ta funkcja jest bardzo przydatna dla przypomnienia o wprowadzeniu właściwego opisowego komunikatu dla każdego zatwierdzenia. Jeśli ten atrybut nie jest ustawiony, lub jego wartość wynosi zero, puste opisy zmian są dozwolone.

    tsvn:lockmsgminsize ustawia minimalną długość komunikatu blokady. Jeśli wprowadzicie krótszy opis niż podano tutaj, blokada zostaje zablokowana. Ta funkcja jest bardzo przydatna dla przypomnienia o wprowadzeniu właściwego opisowego komunikatu dla każdej blokady. Jeśli ten atrybut nie jest ustawiony, lub jego wartość wynosi zero, puste komunikaty blokady są dozwolone.

  • tsvn:logwidthmarker jest używany w projektach, które wymagają opisów zmian sformatowanych z pewną maksymalną szerokością (zwykle 80 znaków) przed znakiem nowej linii. Ustawienie tej właściwości na różną od zera będzie robić 2 rzeczy w oknie dialogowym dziennika: umieszcza znacznik, aby wskazać maksymalną szerokość oraz wyłącza zawijanie podczas wyświetlania, dzięki czemu można sprawdzić, czy wpisany tekst nie jest zbyt długi. Uwaga: funkcja ta będzie działała poprawnie tylko jeżeli używacie czcionki o stałej szerokości do wprowadzania opisów zmian.

  • tsvn:logtemplate jest używany w projektach, w których stosuje się zasady formatowania wiadomości dziennika. Atrybut zawiera wieloliniowy tekst, który zostanie wstawiony w pole opisu zmiany wyświetlane podczas uruchamiania zatwierdzenia. Następnie można edytować go uzupełniając wymagane informacje. Uwaga: jeśli używacie także tsvn:logminsize, należy ustawić długość większą niż szablon lub stracicie mechanizm ochrony.

    Istnieją także szablony związane z akcjami, które można używać zamiast tsvn:logtemplate. Szablony związane z akcjami są używane jeśli zostaną ustawione, zaś tsvn:logtemplate będzie używany gdy żaden szablon związany z akcją nie został ustawiony.

    Lista szablonów związanych z akcjami:

    • tsvn:logtemplatecommit jest używany dla wszystkich zatwierdzeń z kopii roboczej.

    • tsvn:logtemplatebranch jest używany podczas tworzenia gałęzi/etykiety, lub gdy kopiujesz plik lub folder bezpośrednio w przeglądarce repozytorium.

    • tsvn:logtemplateimport jest używany do importów.

    • tsvn:logtemplatedelete jest używany gdy usuwa się element bezpośrednio w przeglądarce repozytorium.

    • tsvn:logtemplatemove jest używany podczas zmiany nazwy lub przenoszenia elementów w przeglądarce repozytorium.

    • tsvn:logtemplatemkdir jest używany podczas tworzenia folderów w przeglądarce repozytorium.

    • tsvn:logtemplatepropset jest używany podczas modyfikowania atrybutów w przeglądarce repozytorium.

    • tsvn:logtemplatelock jest używany gdy wprowadzamy blokadę.

  • Subversion allows you to set autoprops which will be applied to newly added or imported files, based on the file extension. This depends on every client having set appropriate autoprops in their Subversion configuration file. tsvn:autoprops can be set on folders and these will be merged with the user's local autoprops when importing or adding files. The format is the same as for Subversion autoprops, e.g. *.sh = svn:eol-style=native;svn:executable sets two properties on files with the .sh extension.

    Jeśli istnieje konflikt między lokalnymi autoatrybutami i tsvn:autoprops, ustawienia projektu mają pierwszeństwo, ponieważ są one specyficzne dla tego projektu.

    W Subversion 1.8, powinno się użyć atrybutu svn:auto-props zamiast tsvn:autoprops ponieważ ma taką samą funkcjonalność, jednak działa ze wszystkimi klientami svn a nie jest specyficzny dla TortoiseSVN.

  • W oknie zatwierdzenia macie możliwość, aby wkleić listę zmienionych plików, w tym stan każdego pliku (dodane, zmienione, itp.). tsvn:logfilelistenglish określa, czy status jest wprowadzony w języku angielskim lub w wersji zlokalizowanej. Jeśli właściwość nie jest ustawiona, domyślnie jest to true.

  • TortoiseSVN can use a spell checker. On Windows 10, the spell checker of the OS is used. On earlier Windows versions, it can use spell checker modules which are also used by OpenOffice and Mozilla. If you have those installed this property will determine which spell checker to use, i.e. in which language the log messages for your project should be written. tsvn:projectlanguage sets the language module the spell checking engine should use when you enter a log message. You can find the values for your language on this page: MSDN: Language Identifiers.

    Możecie wprowadzić tę wartość w postaci dziesiętnej, lub w systemie szesnastkowym poprzedzone ciągiem 0x. Na przykład angielski (US) można wprowadzić jako 0x0409 lub 1033.

  • Atrybut tsvn:logsummary jest używany by wyodrębnić część opisu zmiany, która jest następnie wyświetlana w oknie dziennika jako podsumowanie opisu zmiany.

    Wartość atrybutu tsvn:logsummary musi być ustawiona jako jednoliniowy łańcuch regeks, który zawiera jedną grupę regeks. Cokolwiek pasuje do wyników tej grupy jest używane jako podsumowanie.

    Przykład: \[SUMMARY\]:\s+(.*) Będzie obejmować wszystko po [SUMMARY] w opisie zmiany i używa tego jako podsumowania.

  • Atrybut tsvn:logrevregex określa wyrażenie regularne, które pasuje do odniesień do zmian w opisie zmiany. Jest ono używane w oknie dziennika by zmienić takie odniesienia na linki, które po kliknięciu będzie albo przewijać do wskazanej wersji (jeśli wersja jest już wyświetlana w oknie logowania, lub jeśli jest ona dostępna w buforze dziennika) lub otworzyć nowe okno dziennika pokazujące tą wersję.

    Wyrażenie regularne musi pasować do całego odniesienia, nie tylko numeru wersji. Numer wersji jest wyodrębniany automatycznie z pasującego ciągu odniesienia.

    Jeśli ten atrybut nie jest ustawiony, używane jest domyślne wyrażenie regularne do połączenia odniesień do wersji.

  • Istnieje kilka atrybutów służących do konfiguracji skryptów przechwytujących po stronie klienta. Każdy atrybut dotyczy jednego specyficznego rodzaju skryptu.

    Dostępne atrybuty/skrypty przechwytujące to

    • tsvn:startcommithook
    • tsvn:precommithook
    • tsvn:postcommithook
    • tsvn:startupdatehook
    • tsvn:preupdatehook
    • tsvn:postupdatehook
    • tsvn:prelockhook
    • tsvn:postlockhook

    Parametry są takie same jak przy skonfigurowaniu skryptu przechwytującego w oknie ustawień. Zobacz „Skrypty przechwytujące po stronie klienta” by poznać szczegóły.

    Jako że nie każdy użytkownik pobiera do takiego samgo położenia , możecie skonfigurować skrypt/narzędzie, które wykonuje się na kopii roboczej wskazując URL w repozytorium, używając do tego %REPOROOT%jako część adresu URL do kattlaogu głównego repozytorium. Na przykład, jeśli wasz skrypt przechwytujący znajduje się w kopii roboczej pod nazwą contrib/hook-scripts/client-side/checkyear.js, możesz wskazać ścieżkę do niego jako %REPOROOT%/trunk/contrib/hook-scripts/client-side/checkyear.js. W ten sposób nawet jeśli przeniesiecie repozytorium na inny serwer, nie musicie dostosowywać atrybutów skryptu.

    Zamiast %REPOROOT% możecie również wskazać %REPOROOT+%. Znak + jest używany by dodać dowolnie zagłębioną ścieżkę folderów konieczną do wyszukania skryptu. Jest to przydatne gdy chcemy wskazać ten skrypt tak, by po ewentualnym utworzeniu gałęzi sktypt został również znaleziony pomimo że url kopii roboczej jest inny. Korzystając z przykładu powyżej, należałoby wskazać ścieżkę do skryptu %REPOROOT+%/contrib/hook-scripts/client-side/checkyear.js.

    Poniższy zrzut ekranu pokazuje, jak w TortoiseSVN jest skonfigurowany skrypt wykonujący sprawdzenie bieżący rok praw autorskich w nagłówkach pliku źródłowego.

    Rysunek 4.39. Okno dialogowe atrybutów skryptów przechwytujących

    Okno dialogowe atrybutów skryptów przechwytujących


  • Jeśli chcecie dodać nowy atrybut, można wybrać jeden z listy menu rozwijalnego lub wpisać dowolną nazwę atrybutu jaką chcecie. Jeśli projekt korzysta z niektórych niestandardowych atrybutów i chcecie, żeby te atrybuty pojawiły się na liście w menu rozwijalnym (aby uniknąć literówek przy wpisywaniu nazwy atrybutu), można utworzyć listę niestandardowych atrybutów za pomocą tsvn:userfileproperties i tsvn:userdirproperties. Zastosujcie te atrybuty w folderze. Gdy przechodzicie do edycji właściwości każdego elementu podrzędnego, niestandardowe atrybuty pojawią się na liście predefiniowanych nazw atrybutów.

    Można również określić, czy niestandardowe okno dialogowe służy do dodawania/edycji atrybutu. TortoiseSVN oferuje cztery różne okna dialogowe, w zależności od rodzaju atrybutu.

    bool

    Jeśli wasz atrybut może przyjmować tylko dwa stany, np.. prawda i fałsz, możecie ustawić wasz atrybut jako typu bool.

    Rysunek 4.40. Dialog atrybutu typu logicznego zdefiniowanego przez użytkownika

    Dialog atrybutu typu logicznego zdefiniowanego przez użytkownika


    Zdefiniuj atrybut w poniższy sposób:

    nazwaatrybutu=bool;tekstEtykiety(WARTOSCTAK;WARTOSCNIE;TekstPolaWyboru)

    tekstEtykiety to tekst pokazywany w dialogu nad polem wyboru gdzie możesz wyjaśnić cel i sposób użycia atrybutu. Inne parametry powinny wyjaśniać się same.

    state

    Jeśli atrybut może przyjmować jeden z wielu możliwych stanów, np. tak, nie, może, możecie zdefiniować atrybut jako typu state

    Rysunek 4.41. Dialog atrybutu typu enumeracyjnego zdefiniowanego przez użytkownika

    Dialog atrybutu typu enumeracyjnego zdefiniowanego przez użytkownika
    Dialog atrybutu typu enumeracyjnego zdefiniowanego przez użytkownika
    Dialog atrybutu typu enumeracyjnego zdefiniowanego przez użytkownika


    w ten sposób:

    nazwaatrybutu=state;tekstEtykiety(WARTDOM;WART1;TEKST1;WART2;TEKST2;WART3;TEKST3;...)

    Parametry są takie same jak w atrybutach bool, wraz z WARTDOM określającą wartość domyślną wykorzystywaną, gdy atrybut nie jest ustawiony lub ma wartość spoza dozwolonego zbioru.

    Dla trzech lub mniej wartości, dialog wyświetla odpowiednią liczbę przycisków opcji. Jeśli zdefiniowano więcej wartości, wykorzystuje się listę rozwijalną, z której użytkownik może wybrać wymagany stan.

    singleline

    Dla atrybutów tekstowych mieszczących się w jednym wierszu, użyjcie typu atrybutu singleline:

    Rysunek 4.42. Okno atrybutów jednoliniowych typów użytkownika

    Okno atrybutów jednoliniowych typów użytkownika


    nazwaatrybutu=singleline;tekstetykiety(wyrreg)

    wyrreg określa wyrażenie regularne używane do sprawdzenia poprawności (dopasowanie) tekstu wprowadzonego przez użytkownika. Jeśli tekst nie pasuje do wyrreg, wyświetlony zostanie komunikat o błędzie a atrybut nie zostaje ustawiony.

    multiline

    Dla atrybutów tekstowych mieszczących się w wielu wierszach, użyjcie typu atrybutu multiline:

    Rysunek 4.43. Okno atrybutów wieloliniowych typów użytkownika

    Okno atrybutów wieloliniowych typów użytkownika


    nazwaatrybutu=multiline;tekstetykiety(wyrreg)

    wyrreg określa wyrażenie regularne używane do sprawdzenia poprawności (dopasowanie) tekstu wprowadzonego przez użytkownika. Nie zapomnijcie o wpisaniu znaku nowej linii (\n) w wyrażeniu regularnym!

    Zrzuty ekranu powyżej zostały wykonane dla następujących tsvn:userdirproperties

    my:boolprop=bool; To atrybut typu logicznego. Zaznacza się go lub odznacza. (true;false;własny atrybut logiczny)
    my:stateprop1=state;To atrybut enumeracyjny. Wybiera się jeden z dwóch stanów. (true;true;wartość prawdy;false;wartość fałszu)
    my:stateprop2=state;To atrybut enumeracyjny. Wybiera się jeden z trzech stanów.(maybe;true;odpowiedź jest poprawna;false;ospowiedź jest zła;maybe;nie odpowiedziano)
    my:stateprop3=state;Wskaż dzień by ustawić atrybut.(1;1;Poniedziałek;2;Wtorek;3;Środa;4;Czwartek;5;Piątek;6;Sobota;7;Niedziela)
    my:singlelineprop=singleline;wprowadź krótki komentarz(.*)
    my:multilineprop=multiline;skopiuj i wklej tutaj cały rozdział(.*)
    

TortoiseSVN można zintegrować z niektórymi narzędziami śledzenia błędów. Używa się do tego celu atrybutów projektu, które zaczynają się od bugtraq:. Czytajcie „Integracja z systemami śledzenia błędów / śledzenia problemów” dla dokładniejszych informacji.

Można go również zintegrować z niektórymi internetowymi przeglądarkami repozytoriów za pomocą atrybutów projektu, które zaczynają się od webviewer:. Przeczytajcie „Integracja z internetowymi przeglądarkami repozytoriów” dla uzyskania dalszych informacji.

Ustawienie właściwości projektu dla folderów

Te szczególne właściwości projektu muszą być ustawione na folderach aby system działał. Podczas korzystania z polecenia TortoiseSVN, które wykorzystuje te atrybuty, są one odczytywane z katalogu, na który kliknięto. Jeżeli atrybuty nie występują tam, TortoiseSVN będzie przeszukiwać poprzez drzewo folderów, aby je znaleźć, aż napotka na niewersjonowany folder lub korzeń drzewa (np. C:\). Jeśli możecie być pewni, że każdy użytkownik pobiera tylko np. z trunk/ a nie z jakiegoś podfolderu, to wystarczy ustawić atrybuty na trunk/. Jeśli nie możemy być pewni, należy ustawić atrybuty rekurencyjnie dla każdego podkatalogu. Jeśli ustawiacie ten same atrybuty, ale używacie różnych wartości na różnych głębokościach w hierarchii projektu to będziecie mieli różne wyniki w zależności od miejsca gdzie klikniecie w strukturze folderów.

Tylko do atrybutów projektu, czyli tsvn:, bugtraq: i webviewer: można użyć pola wyboru Rekursywne, aby ustawić atrybut do wszystkich podkatalogów w hierarchii, bez jednoczesnego ustawienia na wszystkich plikach.

Przy dodawaniu nowych podfolderów do kopii roboczej za pomocą TortoiseSVN, wszelkie atrybuty projektu obecne w folderze nadrzędnym będą również automatycznie dodawane do nowego folderu podrzędnego.

Ograniczenia użycia przeglądarki repozytorium

Wczytywanie atrybutów zdalnie jest powolną operacją, więc niektóre funkcje opisane powyżej nie będą działać w przeglądarce repozytorium tak, jak w kopii roboczej.

  • Kiedy dodajecie obiekt za pomocą przeglądarki repo, tylko standardowe atrybuty svn: oferowane są na liście predefiniowanych. Wszelkie inne nazwy właściwości muszą zostać wprowadzone ręcznie.

  • Atrybutów nie można ustawić ani usunąć rekurencyjnie za pomocą przeglądarki repo.

  • Atrybuty projektu nie będą propagowane automatycznie, gdy folder podrzędny jest dodawany za pomocą przeglądarki repo.

  • tsvn:autoprops nie ustawi atrybutów na plikach, które są dodawane za pomocą przeglądarki repo.

Ostrzeżenie

Chociaż atrybuty projektu TortoiseSVN są bardzo przydatne, jednak działają tylko z TortoiseSVN, a niektóre będą działać tylko w nowszych wersjach TortoiseSVN. Jeśli ludzie pracujący nad projektem wykorzystują różne klienty Subversion, ewentualnie mają stare wersje TortoiseSVN, możecie użyć przechwyceń repozytorium by egzekwować politykę projektu. atrybuty projektu mogą przyczynić się do realizacji polityki, nie mogą jej egzekwować.

Edytory atrybutów

Niektóre atrybuty muszą używać zbioru określonych wartości lub być sformatowane w szczególny sposób, aby można je było wykorzystać do automatyzacji. Do uzyskania poprawnego formatowania TortoiseSVN pokazuje okna dialogowe edycji szczególnych atrybutów wyświetlające dozwolone wartości, lub dzieli atrybut na jego poszczególne składniki.

Zawartość zewnętrzna

Rysunek 4.44. Strona atrybutu svn:externals

Strona atrybutu svn:externals


Atrybut svn:externals może być stosowany by wyciągnąć w innych projektach zawartość z tego samego lub zupełnie innego repozytorium sposób opisany w „Elementy zewnętrzne”.

Należy zdefiniować nazwę podfolderu, jako który zostanie pobrany folder sernętrzny, oraz adres URL elementu zewnętrznego w Subversion. Można pobrać zewnętrzny w swojej wersji HEAD, co spowoduje, że gdy element zewnętrzny zmieni się w repozytorium, wasza kopia robocza odczyta te zmiany podczas aktualizacji. Jednakże, jeśli trzeba by zewnętrzny wskazywał na szczególny stały punkt, możecie wskazać by użyto określonej wersji. W tym przypadku można również wskazać tą samą wersję jako wersję wieszakową. Jeśli element zewnętrzny zmieni nazwę w przyszłości, Subversion nie będzie w stanie zaktualizować tego elementu w waszej kopii roboczej. Przez wskazanie wersji wieszakowej wskazujecie Subversion by odnaleźć element mający tą samą nazwę wersji wieszakowej zamiast HEAD.

Przycisk Znajdź wersję HEAD pobiera wersję HEAD z każdego URL zewnętrznego i pokazuje tą wersję HEAD w prawej kolumnie. Popoznaniu wersji HEAD, prosty prawoklik na zewnętrznym daje wyświetla polecenie do zawieszenia wybranych zewnętrznych na ich wybranej wersji HEAD. W przypadku, gdy wersja HEAD nie jest jeszcze znana, polecenie spod prawokliku pobierze najpierw wersję HEAD.

Słowa kluczowe SVN

Rysunek 4.45. Strona atrybutu svn:keywords

Strona atrybutu svn:keywords


Wskażcie słowa kluczowe, które chcielibyście rozwinąć w pliku.

Typ EOL

Rysunek 4.46. Strona atrybutu svn:eol-style

Strona atrybutu svn:eol-style


Wybierzcie typ znaku końca linii, który chcecie używać, a TortoiseSVN użyje poprawnej wartości atrybutu.

Integracja ze śledzeniem problemów

Rysunek 4.47. Strona atrybutu tsvn:bugtraq

Strona atrybutu tsvn:bugtraq


Rozmiary opisu zmian

Rysunek 4.48. Strona atrybutu rozmiarów opisu zmian

Strona atrybutu rozmiarów opisu zmian


Te 3 atrybuty sterują formatowaniem komunikatów dziennika. Pierwsze 2 blokują OK w oknach zatwierdzenia oraz blokady dopóki komunikaty nie osiągną minimalnej długości. Pozycja granicy pokazuje znacznik na kolumnie określonej szerokości służący za wskazźnik w projektach posiadających ograniczenia długości komunikatu. Ustawienie wartości zero usuwa atrybut.

Język projektu

Rysunek 4.49. Strona atrybutu języka

Strona atrybutu języka


Wybierzcie język, w którym sprawdzane będą komunikaty dziennika w oknie zatwierdzenia. Pole wyboru na liście plików zaczyna działać po wciśnięciu prawego przycisku myszy w panelu komunikatu dziennika i wybraniu Wklej listę plików. Domyślnie status Subversion zostanie pokazany w waszym lokalnym języku. Gdy to pole wyboru jest zaznaczone, status zawsze podawany jest po angielsku, dla projektów wymagających komunikatów dziennika tylko po angielsku.

Typ MIME

Rysunek 4.50. Strona atrybutu svn:mime-type

Strona atrybutu svn:mime-type


svn:needs-lock

Rysunek 4.51. Strona atrybutu svn:needs-lock

Strona atrybutu svn:needs-lock


Ten atrybut steruje po prostu czy plik zostanie pobrany z atrybutem tylko do odczytu, jeśli nie ma na nim blokady w kopii roboczej.

svn:executable

Rysunek 4.52. Strona atrybutu svn:executable

Strona atrybutu svn:executable


Ten atrybut określa, czy plik otrzyma status wykonywalny po pobraniu na Unix/Linux. Nie ma on wpływu na system Windows.

Szablony komunikatów dziennika scaleń

Gdy wersje są scalane do kopii roboczej, TortoiseSVN generuje komunikat dziennika ze wszystkich scalonych wersji. Są one dostępne przez przycisk Ostatnie komunikatyw oknie dialogowym zatwierdzenia.

Możecie dostosować tworzony komunikat korzystając z następujących atrybutów:

Rysunek 4.53. Okno atrybutu szablonów komunikatów dziennika scaleń

Okno atrybutu szablonów komunikatów dziennika scaleń


tsvn:mergelogtemplatetitle, tsvn:mergelogtemplatereversetitle

Ten atrybut określa pierwszą część generowanegokomunikatu. Użyte mogą być następujące słowa kluczowe:

{revisions}

Lista rozdzielonych przecinkami wersji, np. 3, 5, 6, 7

{revisionsr}

Podobnie jak {revisions}, jednak z każdą wersją poprzedzoną przez r, np., r3, r5, r6, r7

{revrange}

Lista rozdzielonych przecinkami wersji, zgrupowanych w przedziały jeśli to możliwe, np. 3, 5-7

{mergeurl}

URL źródłowy scalenia, tj skąd pochodzą scalane wersje.

Domyślna wartość ciągu znaków to Merged revision(s) {revrange} from {mergeurl}: ze znakiem nowej linii na końcu.

tsvn:mergelogtemplatemsg

Ten atrybut wskazuje jak powinien wyglądać tekst dla każdej scalonej wersji. Można wykorzystać następujące słowa kluczowe:

{msg}

Komunikat dziennika scalonej wersji, jaki został wpisany.

{msgoneline}

Posobnie jak {msg}, ale wszystkie znaki końca linii zastąpione są przez spacje, zatem cały komunikat pojawia się w jednej linii.

{author}

Autor scalonej wersji.

{rev}

Sama scalona wersja.

{bugids}

Identyfikatory błędów scalonej wersji, jeśli są.

tsvn:mergelogtemplatemsgtitlebottom

Ten atrybut wskazuje pozycję tytułu określonego w tsvn:mergelogtemplatetitle lub tsvn:mergelogtemplatereversetitle. Jeśli atrybut ustawiono na yes lub true, tytuł jest dopisywany u dołu zamiast u góry.

Ważne

Działa to tylko wtedy, gdy scalone rewizje są już w pamięci podręcznej dziennika. Jeśli zablokowano pamięć podręczną lub nie wyświetlono dziennika przed scaleniem, wygenerowany komunikat nie będzie zawierać żadnych informacji o scalonych wersjach.

TortoiseSVN homepage