1
$svn diff > patchfile

すてきなパッチファイルを作成します。ただし、Windows で TortoiseSVN を使用して、一部のファイルを「コミット時に無視」として設定しました。つまり、バージョン管理下にあるが、コミット時に選択されません。

TortoiseSVN は.svn/entries、このファイルのカスタム エントリを介してこれを処理しているようです。これは通常の SVN プロパティではないことに注意してください (つまり、svn propget を介して取得することはできません)。

私の問題は、コマンド ライン経由で (Cygwin の bash および SVN ポート経由で) パッチ ファイルを作成したいということですが、このパッチ ファイルには、この「ignore-on-commit」フラグを持つファイルを含めるべきではありません。

これを行う方法を知っている人はい.svn/entriesますか?

4

3 に答える 3

2

どうやらそれは特別なchangelist entryです。コマンドラインからファイルを無視する方法については、特に簡単な方法があるようには見えません。

于 2010-01-13T13:11:04.547 に答える
1

ファイルの「svn info」で変更リストを確認できます。そして、「svn changelist」を介して変更リストを設定/リセットします

$ svn help cl
changelist (cl): Associate (or dissociate) changelist CLNAME with the named files.
usage: 1. changelist CLNAME TARGET...
       2. changelist --remove TARGET...

Valid options:
  -q [--quiet]             : print nothing, or only summary information
  -R [--recursive]         : descend recursively, same as --depth=infinity
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                            'immediates', or 'infinity')
  --remove                 : remove changelist association
  --targets ARG            : pass contents of file ARG as additional args
  --changelist ARG         : operate only on members of changelist ARG
                             [aliases: --cl]
于 2010-01-13T16:01:25.280 に答える
1

私もこの問題を抱えていたので、必要に応じて簡単なコマンドチェーンを開発しました。

svn st | grep -A 1000 'コミット時に無視' | grep -v 'コミット時に無視' | sed 's/^.* //g' | xargs svn 差分 | gvim -

(変更リスト 'ignore-on-commit' の外部で変更されたファイルが 1000 未満であると仮定します)

このコマンドを使用すると、変更リスト 'ignore-on-commit' の外部で変更されたファイルが差分され、'ignore-on-commit' 内のファイル変更は含まれません。

于 2012-03-26T06:42:44.983 に答える