Когда правильно создавать новый репозиторий из HEAD? - PullRequest
3 голосов
/ 29 июля 2011

Я создал хранилище в августе прошлого года, пользуюсь им уже год. Я до 900 коммитов. Я начинаю задумываться, стоит ли мне заново создавать новый репозиторий.

Это не то, чем я бы занимался каждый год.

Я был очень новичком в Subversion в прошлом году, и я сделал много ошибок ....

Большая часть этих ошибок связана с загрузкой файлов, которые не должны были загружаться. Как видео файлы и тому подобное. Сделать мой репозиторий ОЧЕНЬ ОЧЕНЬ большим.

Кроме того, я ничего не знал о слияниях и нарушил отслеживание, не слившись должным образом.

Итак, я думаю, что я должен начать новый .....

Возьми мой HEAD и начни снова.

Теперь вот некоторые случайные мозговые штурмы, связанные с этим.

  • Я все еще могу сохранить старый репо и просто установить его только для чтения.
  • Могу ли я вести историю в новом репо, но не данные?
  • Если я начну сначала, это как чековая книжка? Могу ли я заказать новый репо, чтобы начать с какого-то числа?

1 Ответ

1 голос
/ 30 июля 2011

Если там есть история, которая бесполезна для вас и просто тратит место, тогда создание нового репо - хорошая идея. Есть много способов приблизиться к этому, в зависимости от того, сколько SVN вы знаете, но простой способ - это проверить более старую ревизию, которую вы хотите использовать в качестве отправной точки, а затем создать новую репо из этой, проверить следующую ревизию, совершить и повторить.

Конечно, вам нужно написать несколько инструментов, чтобы помочь с этим. Когда вы проверяете эту старую ревизию, появляется много скрытых каталогов .svn, содержащих метаданные. Поэтому не делайте svn checkout <url>, вместо этого svn export <url>. Он будет экспортировать ваши файлы, кроме каталогов метаданных .svn. Используйте это, чтобы создать новый репо.

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

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

Вероятно, вы могли бы сделать все это только с помощью сценариев оболочки bash, но если у вас есть навыки работы с языком сценариев, таким как Python и т. Д., То вам может показаться, что это проще, чем bash.

Не забудьте собрать сообщение журнала для каждой ревизии и добавить его при фиксации в новом репо. Большинство команд SVN используют опцию -r, поэтому вы можете сделать что-то вроде svn log -r 334, чтобы получить сообщение журнала только для версии 334.

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