Сколько репозиториев я должен использовать, чтобы мои скрипты находились под контролем версий? - PullRequest
1 голос
/ 25 марта 2010

Я в основном пишу небольшие программы для себя, но в последнее время я начинаю кодировать для своих коллег в моей команде. С этой целью я начал использовать репозиторий Mercurial для поддержания своего кода в какой-либо форме контроля версий (в частности, Tortoise-Hg в Windows). У меня есть много небольших скриптов, каждый в своем собственном каталоге, все в одном репозитории. Однако, читая Учебник Джоэла по ртути , я попытался клонировать каталог для одного из моих больших сценариев, чтобы создать «стабильную» версию, и обнаружил, что не могу этого сделать, поскольку сам каталог не является хранилищем.

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

Вкратце, я храню все свои (не связанные) скрипты в одном репозитории или я должен создать репозиторий для каждого? Или какой-то неизвестный третий вариант?

Ответы [ 4 ]

1 голос
/ 26 марта 2010

Используйте репозиторий для каждого проекта и для каждого логического блока мини-проектов.

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

1 голос
/ 25 марта 2010

Используйте отдельные репо для всего, что вы можете использовать независимо в какой-то момент. В будущем очень легко комбинировать репо, и гораздо сложнее их разделить. Функция subrepos (например, svn externals) даже позволяет вам сделать зонтичное репо, включающее все небольшие репо, если вы все еще хотите клонировать его одной командой.

1 голос
/ 26 марта 2010

В принципе отдельные репозитории звучат великолепно. Но я не уверен, что этот подход масштабируется. Только в моей директории ~/bin я написал более тысячи скриптов. Все они хранятся в одном хранилище. Эти сценарии имеют размер маленький : средняя длина составляет 150 строк, но это вводит в заблуждение & ndash; только около 15% сценариев превышают 100 строк.

Я не вижу варианта использования их в отдельных репозиториях. Если я хочу поделиться с другими разработчиками, я обычно просто отправляю исходный код. Они не сильно меняются: половина сценариев не была изменена с июня 2005 года, и только 5% были изменены за последние шесть месяцев. Поэтому большая часть кода достаточно стабильна, исправлений ошибок не так много, а история не интересна.

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

0 голосов
/ 25 марта 2010

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

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

...