2016-03-22 14 views
0

SVNでコミットされているファイルの著者名を取得しようとしました。私は、コードがpre-commitフックで書かれるべきであることを知っています。SVNでコミットされているファイルの著者名を取得

以下のコマンドは、コミットされたファイルの詳細だけを取得するために使用され、コミットされているファイルは取得しません。

  1. SVN情報 "REPOS_PATH"
  2. svnlookの作者 "REPOS_PATH"

私もコミットされているファイルのリビジョン番号を取得することはできません。リビジョン番号を取得できる場合は、著者名を取得できます。

したがって、コミットされているファイルの著者名またはリビジョン番号を取得する方法はありますか?

答えて

0

私はコードをpre-commitで書く代わりに、start-commitフックにコードを書いています。ここでは、次のように4つの引数を得ることができます。

[1] REPOS-PATH (the path to this repository) 
    [2] USER   (the authenticated user attempting to commit) 
    [3] CAPABILITIES (a colon-separated list of capabilities reported 
        by the client; see note below) 
    [4] TXN-NAME  (the name of the commit txn just created 

最後に、私はこの単純な答えを得ました。

1

まず、SVNBook | Implementing Repository Hooksとお読みください。このセクションでは、すべての質問に答える必要があります。それを注意深く読んでください。

フックスクリプトでは、svnlook authorコマンドを使用する必要があります。プリコミット・フック・スクリプトは、トランザクションID(TXN-NAME)を%2パラメーターとして、リポジトリー・パスを%1パラメーターとして渡します。したがって、コミットしようとしているトランザクションの作者名をキャッチするには、コマンドsvnlook author "%1" --transaction %2を使用します。

Read SVNBook!

編集:

あなたはは、「それはすべての例外を示していないし、任意の出力を与えていない」、トランザクションがの過程で生成されたからといって、これは完全に予想されていることを言いますコミットが受け入れられて正常に完了すると、Subversionはこのトランザクションに基づいて新しいリビジョンを生成します。指定したコマンドサンプルは、フックスクリプトで調整して使用する必要があります。

コマンドをテストしたい場合は、--transactionの代わりに--revisionを使用してください。たとえば、コマンドsvnlook author <REPOS-PATH> --revision REVNUMを実行します。 REVNUM =リポジトリ内のリビジョン番号。

+0

上記のコマンドは機能しません。 –

+0

@ KathirSubramaniamなぜそれが機能していないのかを調査する必要があります。 – bahrep

+0

例外を表示せず、出力もしていません。だから、私は根本的な原因を調べることができません。 –

関連する問題