Я потерял свой SVN-репозиторий - PullRequest
7 голосов
/ 08 июля 2010

Мой репозиторий SVN был установлен на сервере, и этот сервер получил вниз У меня есть три рабочие копии, и все они внесли некоторые изменения, а не фиксируют их в базе Что делать в этом случае, пожалуйста, помогите мне

Ответы [ 3 ]

9 голосов
/ 08 июля 2010

Значит ли это, что вы потеряли хранилище?

В этом случае (если у вас нет резервных копий вообще), я думаю, что самое простое, что можно сделать:

  1. Создайте где-нибудь новый репозиторий.
  2. Выберите одну из своих рабочих копий (начните с самой старой, то есть с меньшими изменениями).
  3. Извлеките новый репозиторий в пустую папку на этом компьютере.
  4. Экспорт вашей рабочей копии (не копируйте ее) в пустую папку, полученную на шаге 3. Поскольку вы, вероятно, собираетесь удалить свои старые рабочие копии позже, было бы разумно Также экспортируйте неверсионные файлы (если вы используете Tortoise SVN, в верхней части диалогового окна «Экспорт» есть флажок).
  5. Передайте вам изменения.

Повторите шаги 2. - 5. для всех рабочих копий, которые у вас есть. На шаге 5. вам нужно будет объединить вещи вручную. При необходимости старайтесь добавлять любые неверсированные файлы.

Вы потеряете всю предыдущую историю изменений, но никакие рабочие данные не должны быть потеряны при условии, что у вас есть все рабочие копии.

3 голосов
/ 08 июля 2010

Сделайте исправления в каждой рабочей копии, используя svn diff > a.patch, затем примените к одной рабочей копии исправления из двух других: patch -p0 < a.patch.

В следующий раз используйте несколько DVCS, что-то вроде Git или Mercurial :)

1 голос
/ 08 июля 2010

У вас есть резервная копия хранилища?Если да, загрузите его с svnadmin где-нибудь, а затем зафиксируйте изменения в этом новом месте.Используйте svn switch, чтобы указать свои рабочие копии на новом сервере.

Если нет, значит, вы потеряли историю своего проекта и восстановить ее невозможно.

Все выМожно создать где-нибудь новый репозиторий и передать в него три отдельные копии одну за другой.Возможно, вам придется удалить все каталоги .svn в ваших рабочих копиях, чтобы сделать это.

Используйте DVCS , например Mercurial или Git , чтобыизбегайте подобных ситуаций (и множества других проблем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...