2011-12-27 16 views
13

私はこのように、SVNにいくつかのファイルを編集した:今SVN:コミット時に変更されたファイルを無視する方法は?

$svn st 
M a 
M b 
... 

、私はsvnのために私の変更をコミットしたい、何らかの理由で、私はファイルbをコミットしたくない、任意の簡単な方法がありますか変更されたファイルを無視するコマンドb


最後に、私は@yzucker Solution 1、cp、revertとcommitを使用します。チェンジリストが重すぎて、ありがとうございます。

答えて

7

悲しいことに、多くのファイルをコミットすると、問題は無視されます。

溶液1:コピー、戻しコミット

$cp b /tmp/ 
$svn revert b 
$svn commit -m 'commit message' 
$mv /tmp/b ./ 

解決策2:コピーは、第二のアプローチは、あなたが導入以来あまり好ましい

$cp b /tmp/ 
$svn commit -m 'commit message' 
$svn merge -c -{new revision} b 
$svn commit b -m 'revert message for b' 
$cp /tmp/b ./b 

B付託、Bの効果を逆転、コミットsvnの壊れたコード。

+1

これはSubversion自身の機能でなければなりません。ファイルがコミットされないようにするフラグ( '-X'を呼ぶ)が必要です。 – mliebelt

3

ファイルを1つだけ除外し、変更されたすべてのファイルを含めるという選択肢はないと思います。あなたの例では、コミットするファイルだけを含めることができます。

svn co a -m "Only commit a" 

これは、bを除外します。最後に例を示した0​​を参照してください。

別のオプションはchangelistsを使用することができ、それは、より重いです...

+1

私はこの目的のためにチェンジリストを使用しています(コマンドラインではありません)。 –

+0

明示的に除外するファイルを定義するチェンジリストがある場合、それはオプションになる可能性があります。しかし、多くの場合、(チェンジリストにはなく)多くのファイルが変更されており、コミットするのは1つだけではないだけです。 – mliebelt

2

ファイルbが既にリポジトリに追加されている場合、もうそれを無視することはできません。

svn propset svn:ignore b . 

最終ドットは現在のフォルダを意味します:あなたはこのようにプロパティを無視し、このファイルを削除してコミットし、再作成および設定する必要があります。

あなただけのこのコミットでファイルを無視したい場合は、明示的で自分の名前を入力するには、コマンド

svn co a c d 

どこacdをコミットコミットしたいファイルがあります。この短いセッション例に示すよう

+0

最後のコマンドは 'svn ci a c d'ですか?これは解決策です、ありがとうございます。 – fannheyward

15

あなたは新しいSubverionクライアントのChangelist機能を使用することができますWindows上で

$ svn st 
M  a 
M  b 

$ svn cl task1 a 
$ svn cl task2 b 

$ svn st 
--- Changelist 'task1': 
M  a 
--- Changelist 'task2': 
M  b 

$ svn ci --cl task1 -m "checking in only task 1 stuff" 
Sending  a 
Committed revision 11. 
+0

svnバージョンとは何ですか? –

2

を使用すると、GUIクライアントTortoiseSVNを使用して、ちょうどのみ必要なチェックボックスを選択することができます。

関連する問題