web-dev-qa-db-ja.com

Subversionでコミットを削除できますか?

2つのファイルを追加するのを忘れたため、事故ごとに2回コミットしました。ログから特定のコミットを削除できますか?

screenshot of log

コミット№4を削除したい。

12
user142019

簡単な答えは「いいえ」です。コミットを追加したときにSubversionがケースを解決する方法を知らないため、他の誰かがチェックアウトを更新してから、履歴からコミットを削除します。 Subversionストレージの手術を含む複雑な答えがある場合とない場合があります。

11
millimoose
  1. AFAICS、あなたは削除しない r4を持っていますが、マージ r5と一緒です、そうですか?
  2. 一般に、Siiが言ったように、SVNのコミット履歴は不変であり、リポジトリの削除/作成の権限がない場合は、何もできません。

現在のリポジトリを削除して、新しい履歴で新しいリポジトリを作成できる場合は、次のことを試すことができます。

  • svnadmin dump人間が読める形式(かろうじて言わなければならない)のリポジトリダンプ、grok形式、編集ダンプ、リポジトリの削除、svnadmin loadリポジトリを再作成します
  • 別のアイデアは、(ダンプを編集する代わりに)SVNへのブリッジを持つ別のSCMです(hg + MQ(histedit)+ hg-git、つまり、リポジトリを取得し、チェンジセットを折りたたむ/削除することができます)。古いリポジトリの置き換えについては、上記のp.2を参照してください
5
Lazy Badger

あなたの場合、実際に行った変更を反映するために、コミット#4に関連付けられたコミットコメントを変更する必要があります。 SVNリポジトリー構成を変更することにより、Subversionでそれを行うことができます。 Subversion FAQ を参照してください。

1
sakra

どうして? Subversionに履歴を保持させましょう-それが目的です。早めに頻繁にチェックインしてください。コミット#4を消去する必要はありません。

0
duffymo