2009-02-02 3 views
5

Репозиторий подрывной деятельности на работе был настроен без особого планирования относительно его структуры. Там в настоящее время нет явных тегов, ствол или ветви сконфигурированные, хотя некоторые пометка метаданных присутствует за счет использования Subclipse: тегиКаковы долгосрочные последствия реорганизации репозитория подрывной деятельности

В настоящее время хранилище в формате:

/CoreCodeA

/CoreCodeB

/Project1

/Проект2

Недавно новый разработчик начал "версии 2" нашего внутреннего применения, которые он поместил под другую папку:

/новый/NewCoreA

/новый/NewCoreB

/новый/Project3

/новые/проекта4

Эти проекты все имеют зависимости от различных частей кода ядра и от аналогичных проектов (например, несколько проектов могут зависеть от одной и той же темы). Эти зависимости указаны в содержимом некоторых текстовых файлов свойств проекта.

Я играл с использованием команды svndumpfilter, передавая результат через sed и реорганизуя его в два отдельных хранилища («старый» и «новый»). Достаточно легко сделать, и теперь у меня есть два разных репозитория с настройкой соединительных линий, тегов и ветвей (информация о тегах подзапроса может быть переписана позднее).

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

Я думаю, что мой выбор для каждого репозитория:

  1. Марк хранилище с «предварительной реструктуризацией» меткой, реорганизовать хранилище, как я хочу, тег «после реструктуризации
    • . Хорошо: не сломается исторический строит
    • Bad: Эффективно разъединяет будущая работа с прошлой работы, нет простой возможности сделать xx1 патч релизы
  2. Restructure всего репозиторий, нарушая предыдущие сборки
    • Хорошо: непрерывность Истории коды поддерживается
    • Bad: Предыдущий строит сломаны, будет, безусловно, потребует x.x.1 патч-релизы, если когда-либо необходимо снова
  3. Restructure весь репозиторий и редактировать файлы проекта собственности на каждом этапе
    • Хорошо Преемственность кода поддерживается и проекты должны строить
    • Bad: Редактирование фактического содержания файлы гораздо более хрупкий, чем просто изменение метаданных относительно их расположения

первых два варианта легко Ин что делать, но мне хотелось бы, чтобы какой-то реальный мир был 20-20 назад от других разработчиков о том, что они сделали в подобной ситуации, и что пошло не так или неправильно.

ответ

4

Расположение репозитория (изменение) больше о вашей организации развития, чем о чем-либо техническом. Не зная, каков объем кода, количество необходимых изменений кода после реструктуризации и количество людей, работающих над кодом, довольно сложно рекомендовать что-либо конкретное, но я бы начал с того, что все затронутые люди на борту с этим и посвящая 1-2 дня капитальному ремонту репо - замораживание кода, допускаются только исправления, позволяющие создавать код. В конце концов, все будут намного счастливее. Попытка сделать это под прикрытием, возможно, оставит вас с разработчиком-изгоев, который все еще делает свои ветви в каком-то темном углу вашего SVN-сервера.

И я бы не стал так беспокоиться о доступе к макету исторического кода. Вы всегда можете пометить текущий макет под что-то вроде/oldlayoutdonottouchthiswoutoutrealneed и оставить его там для исправления старых версий. Для таких трюков SVN - отличный инструмент.

P.S. Я никогда не использовал подзаголовок, но похоже, что теги подзаголовков сильно отличаются от тегов SVN по-книгам. Кажется, что они больше похожи на теги CVS. Убедитесь, что у вас нет путаницы.

1

Я бы не стал трогать историю. Тогда это было плохо, и вам придется заплатить цену, если вы захотите вернуться туда снова.

Конечно, вы можете «знать», что часто будете вспоминать прошлое, тогда было бы разумно добраться до № 3 и поместить все репо через его шаги с новыми выпусками .1 всех важных моментов.

0

Есть ли способ получить файлы свойств сборки для отражения относительных путей, а не жестко заданных путей?

Предполагая, что ваша задача состоит в организации основных папок в тегах, ветвях и соединительных линиях, я думаю, что вложенные папки/файлы (по крайней мере до некоторой степени) сохранят их относительные местоположения?

Если бы я тебя, я хотел бы рассмотреть фиксируя мои файлы свойства, чтобы стать более универсальными и не зависят от абсолютных путей ..

Надеется, что это помогает .. Ура!

Смежные вопросы