時にオーバーレイアイコンより詳しい、ファイル・ディレクトリに関する情報が欲しいことがあるでしょう。そういったとき Subversion が提供するすべての情報をエクスプローラのプロパティダイアログから取得することができます。単にファイルやディレクトリを選択し、コンテキストメニューの → を選択してください。(注: エクスプローラが提供する通常のプロパティメニューで、TortoiseSVN のサブメニュー内のものではありません!) Subversion 管理下にあるファイル・フォルダの属性ダイアログボックスには、TortoiseSVN が追加した新しい属性ページがあります。ここで、選択したファイル・フォルダに関連する情報を、すべて見ることができます。
Windows のプロパティダイアログから、Subversion の属性を確認・設定できますが、さらに → や → からの TortoiseSVN の状態リストでも確認できます。
自分で定義した属性の他、Subversion で特別な意味のある属性も追加できます。これは svn: で始まります。svn:externals も、そのような属性です。参照プロジェクト項 で外部参照の説明をしていますのでご覧ください。
Subversion は、ファイル自身にファイル名やリビジョン情報を埋め込む CVS 風キーワード展開をサポートしています。現在キーワードは以下のものをサポートしています。
最後のコミット日時。作業コピーを更新したときの情報を元にしています。もっと新しい情報を、リポジトリにチェックしにいくようなことはありません。
最後のコミットを行ったリビジョン。
最後のコミットを行った作者
このファイルのリポジトリでのフル URL。
前述の 4 つのキーワードの組み合わせたもの。
以上のキーワードの使用法については、Subversion book の svn:keywords section で、キーワードの説明とその有効化・利用法の説明をしています。 (訳注 日本語では http://subversion.bluegate.org/doc/book.html で読めます)
Subversion の属性に関する詳細情報は、Special Properties をご覧ください。
新しい属性をセットするには、まず 追加... をクリックしてください。必要な属性名をコンボボックスから選択・入力し、下のテキストボックスに値を入力してください。無視リストのような複数の値を持つ属性は、複数行で入力してください。 をクリックして、この属性をリストに追加してください。
一度にたくさんの項目に対して属性を設定する場合は、エクスプローラでファイル/フォルダを選択し、 → を選択してください。
現在のフォルダ以下にある すべての ファイルやフォルダに対して属性を適用する場合、再帰 チェックボックスをチェックしてください。
svn:needs-lock のようないくつかの属性は、ファイルにしか適用できず、フォルダのドロップダウンリストには属性名が表示されません。その階層内すべてのファイルにそういった属性を適用できますが、属性名は自分で入力しなければなりません。
既存の属性を編集する場合、属性の一覧から編集する属性を選択し、 をクリックしてください。
既存の属性を削除したい場合、属性の一覧から削除する属性を選択し、 をクリックしてください。
svn:externals 属性は、同じリポジトリからでも完全に異なるリポジトリからでも他のプロジェクトを取得するのに使用できます。詳細は 参照プロジェクト項 をご覧ください。
しばしば、何度も同じ属性のセット (例: bugtraq:logregex) を適用していることに気付くでしょう。あるプロジェクトから別のプロジェクトへ、属性を簡単にコピーするのに、エクスポート・インポート機能を利用できます。
すでに属性をセットしているファイル・フォルダで、 → を使用し、エクスポートしたい属性を選択して をクリックしてください。属性の名前と値を保存するファイル名を入力することになります。
属性を適用したいフォルダで、 → とし、 をクリックしてください。インポートするファイルを指定することになりますので、先ほど保存したエクスポートファイルを指定してください。属性をそのフォルダに、再帰的ではなく追加します。
属性をツリーに対し再帰的に追加する場合、前述の手順の後、属性ダイアログで属性を選び、 をクリックしてください。属性を再帰的に適用する チェックボックスをチェックの後、 をクリックしてください。
インポートファイルはバイナリで TortoiseSVN 専用です。インポートやエクスポートでの属性の受け渡し専用で、このファイルを編集する必要はありません。
TortoiseSVN は、ファイルを使用することでバイナリの属性値を扱えます。バイナリ属性値を読むには、ファイルに してください。バイナリ値をセットするには、十六進エディタや他の適切なツールを利用して必要な内容を持つファイルを作成し、そのファイルから としてください。
バイナリ属性はあまり使用されませんが、いくつかのアプリケーションでは便利です。例えば、巨大な画像ファイルを格納している場合や、アプリケーションが読み込むファイルが巨大な場合、プレビューを素早く得るのに、属性にサムネイルを格納しておきたいでしょう。
You can configure Subversion and TortoiseSVN to set properties automatically on files and folders when they are added to the repository. There are two ways of doing this.
You can edit the subversion configuration file to enable this feature on your client. The General page of TortoiseSVN's settings dialog has an edit button to take you there directly. The config file is a simple text file which controls some of subversion's workings. You need to change two things: firstly in the section headed miscellany uncomment the line enable-auto-props = yes. Secondly you need to edit the section below to define which properties you want added to which file types. This method is a standard subversion feature and works with any subversion client. However it has to be defined on each client individually - there is no way to propagate these settings from the repository.
An alternative method is to set the tsvn:autoprops property on folders, as described in the next section. This method only works for TortoiseSVN clients, but it does get propagated to all working copies on update.
Whichever method you choose, you should note that auto-props are only applied to files at the time they are added to the repository. Auto-props will never change the properties of files which are already versioned.
If you want to be absolutely sure that new files have the correct properties applied, you should set up a repository pre-commit hook to reject commits where the required properties are not set.
Subversion の属性はバージョン管理されます。属性を変更したり追加した後には、変更をコミットする必要があります。
他のユーザが同じ属性を変更したなどして、コミット時に競合が発生した場合、Subversion は .prej ファイルを生成します。競合を解消した後にこのファイルを削除してください。
TortoiseSVN は自身が持つ特殊な属性をいくつか持っています。これは tsvn: で始まります。
tsvn:logminsize はコミット時に入力するログメッセージの長さの最小値を設定します。ここで指定した長さより短いメッセージを入力するとコミットできません。この機能はコミットごとに適切に説明するメッセージを入力するのを忘れないようにするのに便利です。この属性が設定されていなかったり、値が 0 の場合、ログメッセージが空でも良くなります。
tsvn:lockmsgminsize はロックメッセージの長さの最小値を設定します。ここで指定した長さより短いメッセージを入力するとロックできません。この機能はロックするごとに適切に説明するメッセージを入力するのを忘れないようにするのに便利です。この属性が設定されていなかったり、値が 0 の場合、ロックメッセージが空でも良くなります。
tsvn:logwidthmarker はログのフォーマットとして、行の最大長 (通常 80 文字) をそろえる必要があるプロジェクトで使用します。この属性が 0 以外に設定されていると、ログメッセージ入力ダイアログで以下のことが起きます。入力したテキストが長すぎないかどうかを確認できるように、最大長を示すマーカを配置し、表示時のワードラップが無効になります。注: この機能はログメッセージに固定長フォントを選択していないと、正しく動作しません。
tsvn:logtemplate はログメッセージを整形するルールを持つプロジェクトで使用します。この属性は複数行の文字列を保持しており、コミットを開始するとコミットメッセージボックスにそれが挿入されます。これにより必要な情報を持つコミットメッセージを編集できます。注: tsvn:logminsize も使用している場合、テンプレートより長い値を必ずセットするか、そうでなければ保護機構を失うかのどちらかとなります。
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.
ローカルの autoprops と tsvn:autoprops が競合する場合は、プロジェクトごとに指定されている、プロジェクト設定を優先します。
コミットダイアログでは、変更したファイルをファイルごとに状態 (追加、変更、etc.) 込みで張り付けるオプションがあります。tsvn:logfilelistenglish は状態を英語で挿入するか、各国後で挿入するかを定義できます。この属性がセットされていなければ、デフォルトでは true となります。
TortoiseSVN は OpenOffice や Mozilla で使われるスペルチェッカモジュールを使用できます。スペルチェッカをインストールしている場合、この属性でどのスペルチェッカを使用するか決定します。つまり、どの言語でこのプロジェクトのログメッセージを書くかということでもあります。tsvn:projectlanguage では、ログメッセージ入力時にスペルチェックエンジンがどの言語でチェックを行うかを設定します。あなたの言語の値は MSDN: Language Identifiers で確認できます。
この値を 10 進数や頭に 0xを頭に付けた 16 進数で入力できます。たとえば、英語 (アメリカ) は0x0409 や 1033 を入力してください。
tsvn:logsummary 属性は、ログメッセージのサマリとしてログダイアログに表示する、ログメッセージの一部を抽出するのに使用します。
tsvn:logsummary 属性の値は、正規表現グループを含む正規表現文字列を、1 行で表したものでなければなりません。そのグループにマッチするものであれば、なんでもサマリとして扱います。
例: \[SUMMARY\]:\s+(.*) は、ログメッセージ中の 「[SUMMARY]」 以降をすべてサマリとして扱います。
新しい属性を加える際に、コンボボックスから選択するか、任意の属性名を入力できます。プロジェクトでカスタム属性を使用し、その属性をコンボボックスに表示する (属性名の入力ミスを防ぐ) 場合、tsvn:userfileproperties や tsvn:userdirproperties でカスタム属性を作成できます。この属性はフォルダに適用してください。そのフォルダ以下でファイルを作成すると、定義した属性名ごとにカスタム属性を表示します。
tsvn: 属性のいくつかは true/false 値をとります。TortoiseSVN は yes を true と同義に、no を false と同義に解釈します。
TortoiseSVN はいくつかのバグ追跡ツールと統合できます。このとき bugtraq: で始まるプロジェクト属性を使用します。詳細情報は バグ追跡システム / 課題追跡システムとの統合項 をご覧ください。
TortoiseSVN は、webviewer: で始まるプロジェクト属性を使用して、いくつかの Web ベースリポジトリブラウザとも統合できます。詳細は Web ベースリポジトリビューアとの統合項 をご覧ください。
以上の 特殊なプロジェクト属性は、動作するシステムの フォルダ に設定しなければなりません。ファイルやフォルダをコミットする際に、属性はフォルダから読み込まれます。属性が見つからない場合、TortoiseSVN はフォルダツリーを上位階層に向かって検索します。これはバージョン管理外フォルダに到達するか、ツリーのルート (例: C:\) に到達するまで行います。各ユーザが trunk/ からチェックアウトしていて、サブフォルダからチェックアウトしていないことが確認できるのであれば、trunk/ にその属性を設定するだけで十分です。確認できない場合、各サブフォルダに対し再帰的に属性を設定しなければなりません。プロジェクト階層の深い場所の属性設定は、高い階層 (trunk/ に近い場所) の設定を上書きします。
プロジェクト属性 だけ ですが、再帰チェックボックスを使って階層の全サブフォルダに属性をセットできます。このとき全ファイルが対象になるわけではありません。
TortoiseSVN で新しいサブフォルダを作成する際、親フォルダに設定されているプロジェクト属性は、新しいサブフォルダに自動的に追加されます。
TortoiseSVN のプロジェクト属性は非常に便利ですが、TortoiseSVN でしか動作せず、またいくつかは TortoiseSVN の新しいバージョンでしか動作しません。プロジェクトのメンバが様々な Subversion のクライアントを使用している場合や、古い TortoiseSVN しか持てない場合、プロジェクトポリシーを強制するのに、リポジトリフックを使用することになるでしょう。プロジェクト属性は、ポリシー実装の補助にしかならず、強制することはできません。