11

背景:SVNからバージョン間で変更されたファイルをエクスポートし、リモートサーバーにアップロードする自動リリーススクリプトを作成します。

svn logコマンドは、変更されたファイルプロパティを表示しますが、その詳細な出力を、プロパティの変更に対するコンテンツの変更と区別していないようです。

私はこの出力を間違って読んでいますか、それとも小道具の変更を無視しながらリビジョン間で変更されたファイルのリストを取得する簡単な方法がありますか?

これが私のサンプルコマンドです:

#: svn log "someurl" -r 2210:HEAD -v -q

Output:
------------------------------------------------------------------------
r2211 | author | 2010-02-08 12:36:56 +1300 (Mon, 08 Feb 2010)
Changed paths:
   M /branches/project/release-v1-r-maintenance
   M /branches/project/release-v1-r-maintenance/offroot/
   M /branches/project/release-v1-r-maintenance/offroot/test.config
------------------------------------------------------------------------

上の2つは小道具の変更(mergeinfo、無視など)のみですが、3番目の項目は実際のコンテンツ編集であり、これはルート全体をエクスポートしないようにするために取得したい実際の項目です。

とにかく、svnlogまたは他のコマンドからコンテンツの変更だけを取得/フィルターで除外する方法はありますか?

4

5 に答える 5

4

これは、現在のsvndir内でプロパティが変更されたすべてのリビジョンの詳細ログを取得するために作成したスクリプトです。プロパティの変更が発生したと思われる場所に、適切な開始バージョンと終了バージョンを配置するだけです。それほど高速ではありませんが、機能します。

#!/bin/bash
# Show the verbose log of the revisions, where svn properties 
# inside the current folder where added/removed
startrev=4600
endrev=4620
for i in $(eval echo {$startrev..$endrev})
  do
    svn diff -c $i 2>/dev/null | grep "Property changes on" 1>/dev/null
    if [ $? == 0 ]; then
      echo "Property change in revision $i:"
      svn log -r $i --verbose
    fi
done
于 2011-02-01T11:18:20.107 に答える
3

参考までに、「svn log」にプロパティの変更を無視させる方法にbashスクリプトを投稿しましたか?これは、jeroenhがほのめかしていたことを実装しています...svnログの出力を処理してsvndiffを駆動し、後者の出力をフィルタリングします。

于 2010-08-18T03:02:03.560 に答える
1

唯一の方法は、各改訂のdiff出力を実際に解析することだと思いますが、それはかなり脆弱で、おそらく非常に遅いようです...

これは、diffエントリがプロパティのみが変更されたファイルを検索する方法です。

c:\test\wc>svn diff -c 3

Property changes on: test.txt
___________________________________________________________________
Added: test
   + test

これは、diffエントリが内容とプロパティが変更されたファイルを検索する方法です。

c:\test\wc>svn diff -c 4
Index: test.txt
===================================================================
--- test.txt    (revision 3)
+++ test.txt    (revision 4)
@@ -1 +1,2 @@

+asdfads

Property changes on: test.txt
___________________________________________________________________
Added: someproperty
   + somepropertyvalue
于 2010-02-09T00:15:43.020 に答える
1

この質問に回答したことは知っていますが、誰かが小さなガイドを希望する場合に備えて、svn log / diff (bashスクリプト、xslt、およびoracleデータベーススクリプトを含む)からクエリ可能なデータを取得する方法についてこの投稿を作成しました。これを行うと、ビューに対してあらゆる種類の有用なクエリを実行できますv_svnlog

このパッチの「ホット」ファイル:

select path, count(*) num from v_svnlog
group by path
order by num desc, path asc

著者によるほとんどのテスト

select author, count(*) num from v_svnlog
where path like '%Test%'
group by author
order by num desc

等々...

于 2011-04-01T09:00:02.080 に答える
0

これは機能しますか?

svn log --xml --with-no-revprops
于 2010-02-09T00:08:21.850 に答える