SVN - полностью удалить ревизию с сервера SVN - PullRequest
10 голосов
/ 18 января 2012

Я, к сожалению, выделил одну большую папку в SVN (в ней около 1,4 ГБ и около 10000 файлов, многие из которых являются двоичными файлами). Есть ли возможность вернуться к предыдущей ревизии и заставить сервер SVN забыть, что следующая ревизия была сделана? Например, эта фиксация была ревизией 120. Поэтому я хочу сделать верхнюю ревизию 119 и удалить все файлы и настройки SVN db 120. ревизия.

Я попытался удалить эту папку, поэтому коммит 121 был сделан. А потом я попытался объединить ревизии 121 и 119. Но это не помогло. Версия 120 все еще находится в системе.

Тогда я хотел сделать зеркало SVN-репозитория с помощью svnsync, но нет возможности установить, на какую ревизию я хочу сделать зеркало. Если я не нашел эту опцию. (Я хотел бы установить ревизии от 0 до 119).

Вы знаете, что я могу с этим сделать? Есть ли команда для полного удаления одной ревизии, как это никогда не происходило?

Ответы [ 2 ]

14 голосов
/ 18 января 2012

Вы должны сбросить хранилище, а затем перезагрузить его, пропуская ревизию, которая вам больше не нужна.(в вашем примере r120)

Для этого используйте команду svnadmin dump, а затем команду svnadmin load.

пример:

svnadmin dump c:\svn\my_repo -r0:119 > repo.dump
svnadmin load c:\svn\my_new_repo < repo.dump

В болеесложные сценарии, возможно, вам придется использовать svndumpfilter, но я не думаю, что это необходимо в вашем случае.

0 голосов
/ 18 января 2012

Вы можете сделать любую из этих двух вещей:

  1. Войдите на сервер SVN, удалите ненужные файлы и выйдите из системы.Это создаст еще одну ревизию, но, поскольку она выполняется через интерфейс сервера, вероятность того, что все рухнет, невелика.
  2. Вернитесь к ревизии 119, внесите небольшие изменения и подтвердите.Разрешите все конфликты с помощью accepting yours.
...