3

GUIプログラムを使用してSVNリポジトリと対話します。10個の異なるファイルをコミットしようとすることがよくありますが、誤って1つだけを選択してコミットします。次に、他のすべての変更を使用して別のコミットを行う必要があります。

これらの2つの「重複した」コミットを1つのコミットにマージして、追跡プログラムで1つのメッセージを表示する方法はありますか?

それはかなり些細なことですが、それが可能かどうか興味があります。

4

3 に答える 3

2

「重複した」コミットのようには聞こえません。

2つのコミットで別々にコミットする10個のファイルがあるようです(私が正しく理解している場合)。

最初のファイルを「コミット解除」できるかどうかはわかりませんが、別のコミットを実行して、誤ってコミットする前の状態にリポジトリを「戻す」ことができます。これにより、同じリビジョンの10個のファイルすべてをコミットできます。

GUI/IDEでそれを行う方法がわかりません。

コマンドラインから、次のように実行できます。

  • リビジョン5000のファイルAを誤ってコミットしました

  • コミットを元に戻すパッチを作成します。

    svn diff -r 5000:4999> revert.patch

  • パッチを適用します。

    パッチ-p0<revert.patch

  • これで、リポジトリは偶発的なコミット前の場所になります

  • これで、10個のファイルすべてを一緒にコミットできます

これを行うには、おそらく多くの方法があります(簡単な方法もあります)。この答えは反対票を投じられると確信しています!

于 2012-05-02T18:15:45.820 に答える
0

一般に、リビジョン管理システムの考え方は、以前のコミットに戻って変更することはできないということです。これにより、リビジョン管理システムにあるものが実際に持っていたものであることが保証できなくなるため、多くの価値が失われます。時間。

Subversionの場合、リポジトリをダンプし、ダンプを編集してから再度復元するために使用できます...しかし、それは限界的な価値のあるものにとっては多くの作業です。svnadminワークフローに適したフロントエンドを取得するか、最初から不正なコミットを行わないようにするコミットフックを追加するのが、より良いアイデアのように思えます。

于 2012-05-02T18:15:46.750 に答える
0

私の知る限り、Subversionにはそのための直接的なサポートはありません(たとえば、gitとは対照的です)。ただし、変更を元に戻し、新しいコミットを行うことはできます。ここで参照できます: http ://svnbook.red-bean.com/en/1.2/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo

または、たとえば亀のようなGUIを使用している場合は、次の短い記事がおもしろいと思うかもしれません。

http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html

于 2012-05-02T18:16:28.397 に答える