2011-09-10 2 views
10

За несчастный случай я совершил дважды, потому что забыл добавить два файла. Можно ли удалить конкретную фиксацию из журнала?Могу ли я удалить фиксацию в Subversion?

screenshot of log

Я хочу удалить совершить № 4.

+2

Возможно, вы захотите прочитать этот вопрос: http://stackoverflow.com/questions/5566327/delete-all-traces-of-a-svn-commit –

ответ

9

Простой ответ «нет», потому что Subversion не знает, как разрешить случай, когда вы добавляете фиксацию, кто-то еще обновляет свою проверку, а затем удаляет фиксацию из истории. Там может быть или не быть сложным ответом на операцию в хранилище Subversion.

1

Почему? Пусть Subversion сохранит историю - вот для чего она предназначена. Заходите рано и часто. Нет необходимости стирать commit # 4.

+1

Поскольку я не добавлял Site.cc и Site.hh (Я забыл это сделать), но сообщение о фиксации говорит, что я это сделал. –

+3

@WTP: Каноническое решение просто фиксирует ninjafix и комментирует его соответствующим образом. Если вам нужна «аккуратная» история с одним фиксатором за один рабочий процесс, Subversion (или Subversion) может оказаться не лучшим инструментом для этого. – millimoose

+0

Если вы сделали чистую проверку проекта, появятся ли эти два файла? Если да, то вы их совершили. Поверьте Subversion. – duffymo

4
  1. AFAICS, вы не удалять r4, но слияния с r5, да?
  2. В общем, история фиксации SVN неизменна, как сказал Sii, - и если у вас нет прав delete/create repo - вы ничего не можете сделать.

Если вы можете удалить текущий репозиторий и создать новый с новой историей, вы можете попробовать:

  • svnadmin dump для получения читаемого человека (чуть-чуть, я должен сказать) хранилище свалок, формат Grok и редактировать свалка, удалить репозиторий, svnadmin load воссоздать репозиторий
  • еще одна идеи есть (вместо редактирования дампа) другой SCM, который имеет мост SVN (Hg + MQ (histedit) + Hg-мерзавец, ф, будут позволяют получать репо и складывать/удалять набор изменений с). Для замены старого хранилища - см ч.2 выше
1

В вашем случае, это просто необходимо изменить комментарий совершить связанный с фиксацией # 4, чтобы отразить фактические изменения, сделанные вами. Вы можете сделать это с помощью Subversion, изменив конфигурацию репозитория SVN. См. Subversion FAQ.