web-dev-qa-db-ja.com

SVNコミットメッセージテンプレートとフックを作成して確認するにはどうすればよいですか?

ソース管理にVisualSVNServerとTortoiseSVN(クライアント)を使用しています。すべての開発者に、チェックインノートの一貫した形式を標準化してもらいたいと思います。

たとえば、コミットメッセージをデフォルトで...

あらすじ:

開発者名:(事前入力)

によってレビュー:

[バグID]:

[バグ状態の変更]:

既知の問題点:

影響を受けるファイル:(事前入力)

将来的には、[バグID]と[バグ状態]に情報を提供して、バグ追跡システムの自動更新をトリガーしてもらいたいと思います。また、開発者名と影響を受けるファイルには、svnユーザーとユーザーがコミットしているファイルを事前に入力する必要があります。

あなたが持っているかもしれないリンクやサンプルを送ってください。

25
Justin

Tortoise SVNチェックインテンプレートの作成方法 (最新バージョンに合わせて変更)から取得:

ログテンプレートは、プロジェクトの要件に従ってカスタマイズでき、厳密なログ形式を実装するために使用できます。

これをsvnリポジトリに追加するのは簡単です:

  1. これを適用するSVNフォルダーを選択し、Subversionのプロパティに移動します(TortoiseSVN -> Propertiesを右クリックします)

  2. New -> Advancedという名前のドロップダウンリストからtsvn:logtemplateを選択し、次にProperty nameを選択します。

  3. 上記のテンプレート(または独自のテンプレート)をコンボボックスの下のテキスト領域に追加します。

  4. 現在のフォルダーの下の階層内のすべてのファイルとフォルダーにプロパティを適用する場合は、[再帰]チェックボックスをオンにします。

  5. OKをクリックして、そのプロパティをリストに追加します。

  6. チームの他の全員が同じテンプレートを使用できるように、すべてのフォルダーとファイルをチェックインします。

32
Justin

コマンドラインでこれを行う方法は、ここで説明するSVN_EDITOR環境変数を変更することです。

http://svn.haxx.se/dev/archive-2006-02/0487.shtml

SVN_EDITOR="rm svn-commit.tmp && cp $REPOS/hooks/log.tmpl svn-commit.tmp && vi svn-commit.tmp"
4
purecharger

または、SVN_EDITORをさらに快適にするために(たとえば、SvnBridgeを使用する必要がある場合にTFSワークアイテムに適切にリンクする)、次のスクリプトを〜/ bin/svn_editorとして保存できます。

#!/bin/sh

template_file="${@}"
template_file_new="${template_file}.new"

current_work_item_number_file="${HOME}/tfs_work_item_number_current.txt"
[ -f "${current_work_item_number_file}" ] && work_item=$(cat "${current_work_item_number_file}") || work_item="please fill in!"

# Yes folks, this is the TFS convention (hard, NOT-TO-BE-ALTERED text)
# to properly link to work items via SvnBridge commits!
work_item_prefix_hard_tfs_convention_text="work item: "

work_item_text="${work_item_prefix_hard_tfs_convention_text}${work_item}"

custom_text="${work_item_text}\n\n[this addition above initially placed to ignored content part here,\nto ensure properly abortable empty message by default - please move it to active content as needed]"

sed -e 's/\(will be ignored--\)/\1\n'"${custom_text}"'/' "${template_file}" > "${template_file_new}"

mv -f "${template_file_new}" "${template_file}"

$EDITOR "${@}"

そして単にする

export SVN_EDITOR=~/bin/svn_editor

〜/ .bashrcなどで。 Firefox TFS Webインターフェイスで表示される現在の作業項目ページからでも作業項目番号ファイルを更新し続けるためのボーナスポイント(Firefoxと通信してページタイトルなどを取得する方法があると思います)。または、このスクリプトで永続ワークアイテムファイルに対して最初の初期エディターの実行を開始し、その後カスタマイズされたコミットテンプレートで2番目のエディターの実行を実行させます。

1
JoeRandomUser

私はそれを使用して見つけました:Folder right-click -> Properties -> New... -> Advanced -> Property name: tsvn:logtemplate -> enter a Property value -> OK -> OK.

1
Safa