「すべての変更」とは、TortoiseSVNの「コミット」ボタンを意味します。
削除されたファイルを削除し、新しいファイルを追加し、変更をコミットします。
少なくともこれらは私が知っているものですが、他にもあるかもしれません。
(Tortoiseで[すべて]を押して[コミット]を押すだけです。)
RabbitVCSはLinuxで使用できますが、CLIバージョンのcommit
== svn commit
。
Tortoiseのコミットを模倣できる小さなスクリプトまたは何かがありますか?
環境はLinuxでbashプロンプトが表示されます。(SVN1.7.5)
作業ディレクトリのルートに移動します。
_svn add . --force
_
(これにより、作業ディレクトリが再帰的にトラバースされ、バージョン管理されていないことが見つかったすべてのファイルに対して_svn add
_が実行されます。)
次にこれを行います:
svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )
(これは_svn status
_を実行します。statusコマンドは、作業ディレクトリで変更されたすべてのリストを再帰的に提供します。奇妙なsed
コマンドは、「!」で始まるすべての行を検索します(これがsvnstatusの方法です)。削除されたファイルを示します。))
今やる:
_svn commit
_
それは私が本当にこれをすることを勧めるというわけではありません。変更を行うときは、「rmoldfile」ではなく「svnrmoldfile」を使用することをお勧めします。 「svnadd。--force」もそれほど優れていません。テスト中に生成したすべての一時ファイルとオブジェクトファイルをチェックインします。新しいファイルを追加する場合は、「svnaddnewfile」だけを使用することをお勧めします。
私は通常、チェックインの前に「svn status -u」を実行して、作業コピーの変更点を明確に把握します。
Svn rmの部分の答えは次の場所にあります: https://stackoverflow.com/questions/1265122/how-can-i-programmatically-detect-missing-files-in-tar-archive-and-delete -them-f?rq = 1 、これはクレジット http://geryit.com/blog/command-line-Subversion-practices/ 。
このバッチスクリプトを使用してスケジュールします。それはうまく機能しています。
CD "MyPath"
for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /R "^\!"`) do (svn del "%%i %%j")
svn add * --depth=infinity --force
svn commit . -m "My Message"