2

私は通常、コーディング関連のほとんどすべてに VIM を使用しています。

Subversion が VIM を開いて、実行時にコミット メッセージを編集できるように、環境を構成しsvn commitました。コミット メッセージ (例: ) を保存せずに VIM を閉じる:qa!と、破棄され、コミット操作が中止されます。

VIM を保存して閉じると、コミット操作が開始されます。

コミットが失敗した場合、svn- ** .tmp のようなファイル名で /tmp/ に保存されているように見える SVN コミット メッセージがいくつかあります。

コミット メッセージを VIM に書き込んでいるときに、コミット メッセージのファイル名が svn-commit.1.tmp になっているように見えます。次の SVN コミットのために、このメッセージを回復できるようにしたいと考えています。通常の使用例は次のとおりです。

  1. 私はコミットしようとします。VIM でメッセージの書き込みを完了する
  2. コミットが失敗する
  3. 問題を解決します (例: svn update)
  4. svn commitここで、VIM にプリロードされた前のメッセージを使用して再試行します。

ご協力ありがとうございました。

4

3 に答える 3

2

-Fこのオプションは、ファイルを使用してログ メッセージを作成する svn commit でいつでも使用できます。

svn でコミットするたびに、最初にログ ファイルを作成します。

vim log_file

次に、次を使用してコミットします。

svn commit -F log_file --username blah

これは常に私にとってうまくいきました。

于 2012-06-06T20:42:23.090 に答える
1

vimセッションでは、古いログファイルの内容を読み取るだけです。これにより、必要に応じて古いメッセージを適応させることができ、ワークフローを大幅に変更することはありません。

svn commit 

(vimセッションを開きます)

:r /tmp/svn-**.tmp

もう1つの解決策は、-mフラグを使用してコマンドラインからコミットを実行することです。これには通常、関連するシェルのコマンド履歴の最後の(失敗した)コミットがあります。

svn commit -m "Here is my message"

(コミットは失敗し、あなたはそれを解決します)

(上矢印を数回押して、コミットを再実行します)

于 2012-06-06T20:51:56.490 に答える
1

あなたはこのようなことを試すことができます: svn commit -F /tmp/svn-1.tmp あなたはそこでもっと読むことができます: http://svnbook.red-bean.com/en/1.0/re06.html

于 2012-06-06T20:42:23.267 に答える