Один репозиторий / несколько проектов без путаницы?

Прочитав последнюю статью Джоэла о Mercurial, я ознакомлю ее с XP как однопользовательской системой контроля версий с одним компьютером.

Однако я хотел бы проверить одну вещь: было бы проще просто создать репозиторий всех крошечных проектов, в которых я, например, храню. C:\VB.Net\, но в результате все изменения, которые я внесу в различные проекты (C:\VB.Net\ProjectA\, C:\VB.Net\ProjectB\ и т. Д.), Будут смешаны в один журнал изменений.

Но если я буду использовать один репозиторий для всех проектов, когда я буду делать различия или просматривать историю изменений, смогу ли я отфильтровать данные, чтобы видеть только изменения, относящиеся к данному проекту? Иначе, является ли создание репозиториев в каждом каталоге проекта единственным решением?

Спасибо.

4 ответа

Я бы оставил один репозиторий для каждого отдельного проекта. Накладные расходы минимальны (только один hg init для каждого каталога исходного кода или одного щелчка правой кнопкой мыши в проводнике), и вы не запутаетесь. В конце концов, почему изменение одной программы должно влиять на историю версий совершенно не связанной?

Конечно, вы можете увидеть историю каждого файла в Repository Explorer, но я думаю, что это противоречит самой концепции управления версиями - смешивать несвязанные вещи в одном репозитории.

Правильная гранулярность для DVCS (т. Е. Репо, где можно клонировать всю историю) - это проект.

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

Если кто-то использует bitbucket, он разрешает использовать только один закрытый репозиторий, поэтому вы можете поместить все свои проекты туда, если хотите, чтобы они были частными. Я хотел бы услышать комментарии об этом сценарии.

Если вы используете один репозиторий и имеете только мелкие проекты:

cd C:\VB.Net\ProjectA\
hg log *.*

В противном случае может потребоваться указать конкретные расширения файлов, чтобы избежать слишком большой рекурсии:

cd C:\VB.Net\ProjectA\
hg log **/*.cpp

Хотя это может быть немного медленным... А теги / ветки могут запутаться, если проекты действительно отдельные.

Примечание: я не думаю, "Привет, мир!" заслуживает своего собственного хранилища только потому, что он может быть "автономным".

Другие вопросы по тегам