Если у вас есть папки с веткой, тегами и багажниками даже для небольших проектов?


7

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

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

Мысли об этом?

  0

@KingNestor, отредактировал ваш заголовок, чтобы немного улучшить то, что вы просите. Хороший вопрос, хотя! 22 фев. 092009-02-22 06:33:24

19

Чтобы ответить на вопрос в своем названии напрямую: нет, вам не обязательно. Репозитории SVN могут быть организованы в любую структуру папок, которую вы выберете.

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

+1

Конечно, в SVN легко перемещать каталоги после факта. Итак, если вы не введете их сейчас и решите, что они вам понадобятся позже, это действительно не особо важно. 14 май. 092009-05-14 20:42:22


2

Они конвенции, так что им больно их добавлять. Если ваш проект доходит до того момента, когда вам это нужно, то с самого начала гораздо проще иметь их на месте, чем пытаться добавить их после факта.


6

Я использую каталоги ветвей/тегов/ствол в Subversion даже для тривиальных проектов. Это почти нулевая стоимость и стоит того, чтобы она была согласованной. Я всегда знаю, как мой проект будет выложен, если мне когда-нибудь понадобится сделать чек.


0

В моем репозитории SVN у меня есть одна директория trunk/branch/tag. Я помещал все свои проекты в багажник и организовывал свои ветви и тег-каталоги отдельно в зависимости от проектов, которые фактически достигают состояния с меткой. Конвенция может предлагать использовать каталог ветвей/тегов/соединительных линий для каждого проекта, однако это может быть непрактичным, если вы не ожидаете, что будете помечать и разветвлять.

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


0

Обычно (или, вполне очевидно), ветвление/маркировка чрезвычайно полезны в командах, где многие кодеры будут работать с источником одновременно. Каждый кодер работает в своей собственной ветке, поэтому нет риска сэкономить на чужой работе.

Как один человек армейского разработчик, я еще нашел разветвление/мечения полезно, когда:

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

  2. Если у меня есть несколько отдельных компонентов, может быть полезно пометить каждое из них именем, обозначающим номер версии проекта, и поместить их в папку тегов, названную после проекта. Это поможет сохранить вкладки, если вы хотите вернуться к версии 1.0.5.10, и вам нужно знать, что изменилось в компоненте Foo. Заметки фиксации могут быть недостаточно информативными.


0

По моему опыту организация 'trunk/branch/tag' является довольно хорошо используемым макетом для управления исходным кодом. Я видел, что он реализован в нескольких разных организациях, используя различные инструменты (ClearCase, SVN, CVS, чтобы назвать несколько). Установки ClearCase, с которыми я работаю в настоящее время, несколько сложнее (свернуто?), Но, вообще говоря, следовали очень похожей схеме.

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

Для личных проектов я считаю, что маркировка является ценным средством сохранения окончательных, неизменных релизов. Филиалы обычно зарезервированы для экспериментальных тангенсов, поэтому я не буду уничтожать самую последнюю (стабильную) версию моего кода до того, как реальность начнется.