1

これまでのところ、Tortoise SVN を使用してバージョン管理下のフォルダーをコミットおよび更新してきました。コミットするときは、GUI ダイアログで「すべて」をチェックして、削除と追加がコミットされるようにします。

現在、バージョン管理下にあるフォルダーがますます増えており、それらすべてをコミットおよび更新するためのバッチ ファイルが必要です。

これまでのところ、コマンドラインを試してみたところ、次のことがわかりました。

svn add . --force
svn commit -m"Adding missing files"

これにより、新しいファイルが追加されますが、削除は反映されません。

バッチファイルについて教えてください。それは私の仕事をずっと簡単にしますが、私はSVN /バッチファイルに慣れていないので、自分でこれを行うことはできません...

コマンドライン拡張機能を使用して、Win7x64 と Tortoise SVN 1.7.12 を使用しています。

ありがとうございました!

4

2 に答える 2

7

gammayとこの入力を使用して何かを考え出したと思います:

cd "C:\Users\User\Desktop"
for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /r "^\?"`) do svn add "%%i %%j"
for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /r "^\!"`) do svn delete "%%i %%j"
svn commit -m "Commit via Batch"

cd "C:\Users\User\Desktop"
svn update

そして、さまざまなパスを繰り返します!

ありがとうございました :)

于 2013-07-11T20:29:16.167 に答える
0

まず、どのsvnコマンドラインツールを使用していますか? 「svn」コマンドには CollabNet を使用できます。

次に、ファイルを削除するには、svn から既存のファイルをチェックアウトし、svn delete を使用してから svn commit を使用する必要があります。

あなたの質問は明確ではありません - これで質問の答えが得られない場合は、さらに詳細を入力してください。


質問者の要件に答えるために編集されました(以下のコメントで): OK。必要なのは、フォルダー内の新しいファイルを見つけてそれらをSVNに自動的に追加し、フォルダー内の削除されたファイルを見つけてSVNからも削除するスクリプトです。望ましくないファイルが追加/削除される可能性があるため、これは危険です。

それでも、このスクリプトを先に進めたい場合は、スクリプトでできることは次のとおりです。

  • 見つからない (削除された) ファイルと不明な (追加予定の) ファイルを表示する svn status を実行します。
!    FileA [Missing - deleted]
?    FileD [Unknown - to be added]
  • 出力を解析して ! ファイルを作成し、これらのファイルに対して svn delete を実行します
svn delete FileA
  • 出力を解析して ? ファイルを作成し、これらのファイルに対して svn add を実行します
svn add FileD
  • svn commit
    • これにより、上記の削除および追加されたファイルと変更がコミットされます。
    • 変更をコミットしたくない場合は、追加/削除された個々のファイルをコミットします
于 2013-05-22T11:17:16.277 に答える