2010-04-28 3 views
1

Я новичок из Fossil (и CVS), пытающийся создать и управлять набором распределенных репозиториев Fossil для проекта Delphi.Управление общими компонентами с помощью Fossil CVS

У меня есть следующее дерево директории на моей машине развития:

Projects 
    Some Project 
    Delphi Components 
     LookupListView 
    Some Client 
     Some Project For Client 
     Some Other Project For Client 
      Source Code 
       Project Resources 
       Project Database 

Я настраиваю Fossil контроля версий для того, чтобы версия и доля Projects \ Some Client \ Some Other Project Для Client \ Исходный код, который содержит источник Delphi 2010 для проекта базы данных.

В этом проекте используются проекты \ Delphi Components \ LookupListView, который является компонентом Delphi. Мне нужен этот код для включения в систему управления версиями для моего проекта. Теоретически я буду включать его в другие репозитории Fossil в будущем.

Если я создаю репозиторий Fossil на исходном коде или на каком-то другом проекте для уровня Client, я не могу добавить код в этот уровень в мой репозиторий. Каков правильный способ справиться с этим? Два решения, которые возникают у меня, - это

1) Создание отдельного репозитория для LookupListView и убедитесь, что все, кто использует репозиторий для проекта, который ссылается на него, «знают», что они также должны получить текущую версию этого проекта как Что ж. Это, похоже, преследует цель получить полную, текущую версию проекта с помощью одной проверки. Проблема возрастает, потому что в этом проекте есть другие общие компоненты.

2) Создание моего репозитория Fossil в каталоге Projects, поэтому я могу проверять файлы из разных подпапок. Мне кажется, что во время добавления добавляется много лишнего ввода пути, а также для наложения моей структуры каталогов (Some Client \ Some Other Project для Client \ Source) на других пользователей репозитория - в этом случае, фактический клиент.

Любые предложения оценены.

ответ

3

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

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

Также у меня есть один репозиторий для каждого из моих проектов. Если в каком-либо проекте используются сторонние элементы управления, я создаю подпапку «components» и делаю символические ссылки (junctions) каждого набора компонентов.

Этот подход имеет некоторые недостатки (когда вы «возвращаетесь» в истории некоторых проектов, компоненты также могут быть изменены. И если многие проекты используют одни и те же компоненты, это может вызвать некоторые проблемы). Но у меня еще не возникло проблем :)

+0

Отключения действительно хорошо работают здесь. Я использую программу с http://technet.microsoft.com/en-us/sysinternals/bb896768, чтобы создать их из пакетного файла, который я использую для настройки каждой среды проекта. – skamradt