3

Subversion Working Copy G:\csmdepot\Buildsにさまざまなファイルがあり、無視されるものとそうでないものがあります(Tortoiseでファイルを無視しました):

  • \Build_1.wimは無視されました
  • \Build_2.wimは無視されました
  • \WimID.xml (無視されない)

コマンドラインからやりたいことをすべて自動化するために、次のことを試しました(vbscriptでバッチファイルを作成して実行しています):

fso.MoveFile "G:\csmdepot\Builds\WimID.xml", "G:\WimID.xml"

--- バッチファイル起動

G:
cd G:\csmdepot\Builds\
svn commit WimID.xml -m "Commit that WimID.xml is away"
svn propset svn:ignore WimID.xml .

バッチファイル終了 ---

fso.MoveFile "G:\WimID.xml", "G:\csmdepot\Builds\WimID.xml"

...しかし、フォルダー G:\csmdepot\Builds に戻ると、無視されたすべてのファイルはバージョン管理されていないとマークされ、svn:ignore プロパティの唯一の値は WimID.xml ですが、このファイルもバージョン管理されています。手動でコミットすると、少なくとも WimID.xml は無視されます。

古いものを 削除せずに svn:ignore プロパティの値に WimID.xml を追加するにはどうすればよい ですか? また、svn commit ステートメントの何が問題になっていますか?

編集: fso.MoveFile ステートメントは機能しています。私のsvnコマンドで何かをしなければなりません。

4

2 に答える 2

3

お気づきのように、使用svn propset svn:ignoreすると、以前に svn:ignore プロパティに設定されていたものはすべてオーバーライドされます。

残念ながら、これに関する簡単で直接的な追加コマンドはありません。here で説明されているように、機能する追加が必要な場合は、何らかのバッチ/シェルスクリプトを実行して修正する必要があります。

ただし、たまにこれを行いたい場合は、他のソリューションでも行うことができます。

  1. ファイル内のすべての必要なパターンを使用して無視セット全体を指定し (これをignoredFilesと呼びます)、次に使用しますsvn propset svn:ignore -F ignoredFiles .
  2. このコマンドを使用して複数の行にファイルを追加するには、ファイル名の間で Enter キーを押し、引数全体を引用符で囲みますが、これは特定のオペレーティング システム/シェルでのみ機能する場合があります。次のようなもの: svn propset svn:ignore ‘Build_1.wim [enter] Build_2.wim [enter] WimID.xml’ . [enter](ブログ投稿のコメントから取得)
  3. 代わりに propedit を使用してください。svn propedit svn:ignore .ただし、これにはコマンドライン svn を使用したセットアップが少し必要です。詳細については、を参照svn help propeditしてください。
于 2013-11-08T13:32:58.340 に答える