2009-03-12 8 views
4

私はコミットしたいすべてのファイルに手を差し伸べる必要がありますが、その間に差分を再度確認してください。今仕事で私はsvnを使用しなければならず、私は事故を起こしています。 Subversionがgitのように動作するようにする方法はありますか?次のコミットに含めるべきすべてのファイルを明示的に伝える必要がありますか?Subversion:明示的にコミットするファイルをステージングしますか?

答えて

10

代わりに、git-svnブリッジを使用することができます。なぜなら、そうできない理由がない限りです。誰もあなたが実際にGitを使っていることを知る必要はありません。こうすることで、Subversionを実際に使っているときにGitのすべての利点を得ることができます。

6

コミットするファイルのみをリストしたチェンジセットを作成し、チェンジセットをコミットすることができます。チェンジセットを削除した後にチェンジセットを削除しても、チェンジセットなしでコミットしない場合は、それがうまくいくと思います。 TortoiseSVNなどのグラフィカルクライアントを使用する方が簡単な解決策ですが、同様の機能を持つすべてのプラットフォームには他のものがあります。これは、ログインメッセージの入力を求めるときにコミットするファイルの一覧を表示します。そして、「Commit」を見直さずにクリックすれば、それは何をするのかを教えてくれなかったからではありません:)

+0

+1、私はこの機能について知らなかったが、実際にはサブバージョンでは「チェンジリスト」と呼ばれている。 – richq

+0

ああ、うんざり...私はメモリからの書き込みではなく、ドキュメントを調べるべきであると知っていましたが、私は怠け者になりました。ごめんなさい。 – rmeador

+0

良い提案、ありがとう:)私はGUIがこれを扱うことができるはずですが、実際には、デフォルトですべてのファイルにコミットされていない(opt-out)ものは見つけられていません。私はgit-svnと一緒に行くつもりだと思う。なぜなら私はgit-guiに最も親しいからだ。 –

0

私は通常、EmacsのようなIDEからコミットします。コミット。

+1

そしてどうしていますか? – PythonNut

7

、コマンドライン上のファイル

SVNは-mはあなたが行動をコミット明示的にファイルを強制したい場合は、ロリーの答えに従うために、フォルダ/ FILE1.C

1

「私のコミットメッセージを」コミットあなたの指定コミットメッセージ以外の少なくとも1つの引数があることを確認し、そうでない場合はエラーを返すバッチまたはシェルスクリプトを書くことができます。それは少なくともあなたにファイル名を明示的に記入するように通知するでしょう。

私はいつもsvn statとdiffを実行していますので、statは通常、私が欲しくないことがあることを思い出させます。ただちにチェックインしてください。

0

Subversionは、デフォルトで必要な方法で動作します。 が追加されました。、または、またはが変更されました。がステージングされ、コミットするファイルを指定するcommitコマンドを使用するまでコミットされません。あなたがコマンドラインを使用していて、他のパラメータなしで "svn commit"を実行しているのであれば、あなたの問題が何であるかを知ることができます。その場合、他人が提案したチェンジセット機能を使用し、 - すべての変更を一目で把握し、どの変更がどの変更に反映され、どの変更が適用されないかを判断します。

また、部分的なコミットだけを行うのは悪い習慣であり、共有ブランチにいる場合は、最も一般的な方法の1つであるため、自分が行っていることを非常に意識しているときにのみ行うべきだということを付け加えます。同じコミットに含まれていない、予期せず相互に関係する変更をビルドすることを中断する。

私が別にコミットしたい変更がある場合は、他の人にやりたいことは、その時点でコミットしたくない変更のパッチまたはパッチのセットを作成して元に戻すことです私の作業コピーからのそれらの同じファイル。作業コピーには私がコミットしようとしている変更だけがあるので、手動テストまたは単体テストのいずれかを実行し、これらのパスのすべてが自己コードレビューとコミットを行うときに、再構築して正確性を検証します。私はこの方法が特に複雑な変更を行っているときに大きなグループとやりとりする最も安全な方法だと思います。このプロセスは、svnがクライアント側のシェルビング機能をサポートして、チェンジセットに似た名前の一時ストアに変更を1つのコマンドで追加する方が簡単になりました。

また、TortoiseSVNを使用すると、任意のコミットに入るチェンジセットとチェリーピッキングファイルを管理する方がずっと簡単です。 Windowsの場合は、その理由でチェックアウトすることを強くお勧めします。