特定のファイルのリストのみをコミットする方法はありますか(たとえば、SVNがコミットするファイルのリストの1つだけ)。
私は、ターミナルなしでMAC OS Xで作業していますが、UIはありません。
特定のファイルのリストのみをコミットする方法はありますか(たとえば、SVNがコミットするファイルのリストの1つだけ)。
私は、ターミナルなしでMAC OS Xで作業していますが、UIはありません。
回答:
承知しました。ファイルをリストするだけです:
$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png
特定のファイルセットを無視するように指示する方法を知りません。もちろん、コミットしたいファイルがシェルによって簡単に一覧表示される場合は、それを使用できます。
$ svn ci -m "No longer sets printer on fire" printer-driver/*.c
ファイルからコミットするファイルのリストをsvnコマンドに読み取らせることもできます。
$ svn ci -m "Now works" --targets fix4711.txt
svn add
リポジトリにファイルを追加するために使用されます。
チェンジリストを使用します。ファイルを指定するよりも優れている点は、コミットする前に、必要なものがすべて実際に含まれていることを視覚化して確認できることです。
$ svn changelist fix-issue-237 foo.c
Path 'foo.c' is now a member of changelist 'fix-issue-237'.
それが終わったら、svnはあなたのために物事を別々に保ちます。これは、複数の変更をジャグリングするときに役立ちます
$ svn status
A bar.c
A baz.c
--- Changelist 'fix-issue-237':
A foo.c
最後に、変更した内容をコミットするように伝えます。
$ svn commit --changelist fix-issue-237 -m "Issue 237"
svn changelist fix-issue-237 --recursive path/to/directory
基本的に、コミットするファイルをコマンドラインに配置します
svn ci file1 file2 dir1/file3
私の転覆状態のために、私は創造的にならなければなりませんでした。 svn st
示しM
、A
および~
ステータス。私は望んでいたM
とA
そう...
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
このコマンドはsvn st
、M
またはA
で始まるすべての出力行を検索し、スペース区切り文字を使用して切り取り、最後に列8を取得することを示しています。それをtargets.txtにダンプして上書きします。
次に、targets.txtを変更して、ファイルリストをさらに削除します。次に、以下を実行してコミットします。
svn ci -m "My commit message" --targets targets.txt
おそらく最も一般的なユースケースではありませんが、うまくいけば誰かを助けるでしょう。
grep -v '^~'
必要なものをブラックリストに登録することもできます。
unwindとWiencznyで示されているようにファイルを明示的にリストする以外に、変更リストをセットアップしてこれらをチェックインできます。これらにより、同じ作業コピーに対する一連の変更を管理できます。
これらについては、優れたSVNブックのオンライン版で読むことができます。