Subversion:明示的にコミットするファイルをステージングしますか?

StackOverflow https://stackoverflow.com/questions/638834

  •  11-07-2019
  •  | 
  •  

質問

私は、コミットしたいすべてのファイルに触れなければならないgitの方法に非常に慣れており、その間、diffを再確認しました。今仕事で私はsvnを使用する必要があり、偶然のものをコミットし続けます。次のコミットに含める必要があるすべてのファイルを明示的に指定する必要があるという点で、Subversionをgitのように動作させる方法はありますか?

役に立ちましたか?

解決

別の方法は、できない理由について理由がない限り、職場でgit-svnブリッジを使用することです。実際にGitを使用していることを知っておく必要があります。これにより、実際にSubversionを使用しているときにGitのすべての利点が得られます。

他のヒント

コマンドラインでファイルを指定します

svn commit -m"マイコミットメッセージ" folder / file1.c

コミットするファイルのみをリストするチェンジセットを作成してから、チェンジセットをコミットできます。チェンジセットを使い終わったときにチェンジセットを削除することに熱心であり、チェンジセットなしでコミットしない場合、それはあなたにとってうまくいくと思います。より簡単な解決策は、グラフィカルクライアント(TortoiseSVNなど)を使用することです(ただし、同様の機能を備えたすべてのプラットフォームには他のものがあります)。次に、[コミット]をクリックすると、それらをレビューせずに、それが何をするのかをあなたに教えなかったからではありません:)

明示的なファイルコミット動作を強制する場合、Roryの答えに従うには、コミットメッセージ以外の引数が少なくとも1つあることを確認するバッチまたはシェルスクリプトを記述し、そうしないとエラーを返します。 't。これにより、少なくともファイル名を明示的に入力することを思い出させることができます。

とにかくコミットする前に常にsvn statとdiffを実行するので、通常はまだチェックインしたくないものがあるかもしれないことを思い出させます。

通常は、EmacsなどのIDEからコミットします。Emacsでは、コミットするファイルのセットを手動で選択できます。

Subversionは、デフォルトで希望どおりに機能します。 追加削除、または変更のアイテムを追加し、コミットするコマンドを使用するまでコミットしないコミットしたい。コマンドラインを使用して" svn commit"を実行している場合他のパラメータなしで、あなたはあなたの問題が何であるかを見ることができます。その場合、私は他の人が提案した変更セット機能を使用し、また、すべての変更を一目で見てどの決定をするかを自己コードレビュー時間としてコミット時間を使用しますで、そうではありません。

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

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

また、 TortoiseSVN を使用すると、非常に簡単になります。特定のコミットに入る変更セットとチェリーピッキングファイルを管理します。 Windowsを使用している場合は、その理由でチェックアウトすることを強くお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top