2010-03-19 3 views
5

Прочитав последнюю статью Джоуэла о Mercurial, я даю ей шанс на XP как однопользовательскую систему управления с одним компьютером.Один репозиторий/несколько проектов без путаницы?

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

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

спасибо.

ответ

5

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

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

+0

Спасибо, ребята. Поэтому я просто продолжу работу и создаю репо в каждом проекте sub-dir. – Gulbahar

4

Правильная зернистость для DVCS (т. Е. Репо, где все история может быть клонирована) является проектом.

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

0

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

0

Если вы идете с одного хранилища, и только мелкие проекты:

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

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

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

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

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

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