8

提供されたブラックリストを除いて、 Subversionを使用してコマンドラインからすべての変更/追加されたファイルをコミットする方法を調査しています。これは可能ですか?

たとえば、コミットしたいファイルが100個あるが、そのリストに散在しているのは、コミットしたくない7つのファイルです。「/path/to/file1.php、/path/to/file2.php、/path/to/file3.phpを除くすべてのファイルをコミットする」などと言う方法はありますか?

たとえば、次のようなことをする必要があります。

svn ci [list all files to commit in here] -m 'my commit message'

しかし、それを行うためのより良い方法はありますか?それに関して文書化されたものは何も見つかりません。

4

3 に答える 3

7

コミット時にオンザフライでファイルを無視するオプションはありません。ただし、実行できるアプローチは2つあります。

  1. チェンジリスト機能を使用します。これは、コミットしたいファイルのフィルターを作成し、それらのみをコミットするのに役立ちます。チェンジリストは開発者のマシンで作成されるため、フィルターは一般的なリポジトリに影響を与えません。たとえば、次を使用してすべてのファイルをチェンジリストに追加できます。

    svn changelist to-commit *

    そして、無視したいものを削除します。

    svn changelist --remove /path/to/file1.php

  2. 編集を開始するとすぐに、作業中のファイルのみsvn addが1つずつ表示されます。svn addリポジトリに編集されていないファイルは、コミット時に無視されます。もちろん、これには、自分のマシンにこれらのファイルを保存する唯一の開発者になるという欠点があります。

于 2012-10-30T17:38:05.660 に答える
5

同様の状況で、変更されたファイルの束から特定のファイルのみをコミットする必要がありました。親とそのすべての子プロジェクト(Maven)から依存関係を更新/削除し、対応する変更をコミットする必要がありました。これが私がSVNチェンジリストを作成するためにしたことです。

svn cl my-changelist $(svn st | grep '^M' | awk '{print $2}' | grep 'pom.xml')

svn commit -m "Updated dependencies" --changelist my-changelist

上記の最初のコマンドは、「my-changelist」という名前の変更リストを作成し、「pom.xml」という名前の変更されたすべてのファイルをリストに追加します。

2番目のコマンドは、チェンジリスト(単一のリビジョン番号に対してリスト内のすべてのファイル)をコミットします。

于 2014-05-23T11:57:28.853 に答える
0

これには、 Subversion svn:ignoreプロパティを使用できます。

于 2012-10-30T16:39:02.183 に答える