Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно организовать хранилище VCS? Нужна структура для модульных проектов 
:(
    Опции темы
ZVano
  Дата 3.6.2010, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Нужно организовать хранилище для исходников Delphi. 
Система контроля версий Subversion, GIT, Mercurial (возможно, другая). 

Под исходниками подразумевается: 
1. Оболочка системы. Она динамически расширяет функционал за счет модулей. 
2. Модули-плагины. Содержат формы, шаблоны отчетов и т.п. 
3. Проекты. Включают в себя оболочку и модули-плагины. 
Т.е.: 
проект1(v1.3) = Модуль1(v1.1) + Модуль2(v2.0) 
проект1(v1.5) = Модуль1(v1.1) + Модуль2(v2.1) + Модуль3(v1.0) 
Проект2(v1.0) = Модуль2(2.5) + Модуль4(v5.1) 
...и т.д. 

Каждый проект имеет несколько версий (поддерживается последние 3 версии). 
Каждый модуль имеет несколько версий. 

Как лучше всего организовать эту байду? Задача не новая, наверняка уже решена тысячу и один раз(иногда, через шахереЗаду).


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
maxim1000
Дата 3.6.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 3
Всего: 110



обычно для продукта создают три директории trunk, branches и tags
в данном случае, насколько я понял, предполагается возможность тасовать разные версии разных модулей, так что удобнее было бы им дать отдельные наборы этих директорий

получается:
root
-module1
--trunk
--branches
--tags
-module2
...

оболочку тоже можно представить в виде модуля в данной схеме

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


--------------------
qqq
PM WWW   Вверх
ZVano
Дата 4.6.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Цитата("maxim1000")

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

Совершенно верно.

В данный момент у нас такая структура
Код

root
[font=courier]
root
|>branches
|....Не используем
|>tags
|....Не используем
\>trunc
..|>shell
..|.\>bin
..|.|>src
..|>modules
..|.|>module1
..|.|.\>bin
..|.|.|>src
..|.|.|>menu
..|.|>module2
..|.|.\>bin
..|.|.|>src
..|.|.|>menu
..|....И т.д. по-модулям 
..|>projects
....|>project1
....|.|>bin
....|..|>Shell.exe
....|..|>menu
....|..|.|>module1 - залинкована svn:externals ../../../modules/module1/menu module1
....|..|.\>module2 - залинкована svn:externals ../../../modules/module2/menu module2
....|..|>BinModules
....|..|.|>module1 - залинкована svn:externals ../../../modules/module1/bin module1
....|..|.\>module2 - залинкована svn:externals ../../../modules/module2/bin module2
....|.|>src
....|..|>project1.groupproj - объединяет module1 и module2
....|..|>module1 - залинкована svn:externals ../../../modules/module1/src module1
....|..|>module2 - залинкована svn:externals ../../../modules/module2/src module2
....|>project2
....|.|>bin
....|..|>Shell.exe
....|..|>menu
....|..|.|>module1 - залинкована svn:externals ../../../modules/module1/menu module1
....|..|.\>module3 - залинкована svn:externals ../../../modules/module3/menu module3
....|..|>BinModules
....|..|.|>module1 - залинкована svn:externals ../../../modules/module1/bin module1
....|..|.\>module3 - залинкована svn:externals ../../../modules/module3/bin module3
....|.|>src
....|..|>project2.groupproj - объединяет module1 и module3
....|..|>module1 - залинкована svn:externals ../../../modules/module1/src module1
....|..|>module3 - залинкована svn:externals ../../../modules/module3/src module3
[/font]


При работе выгружаем "trunc\projects\projectXXX" и работаем с ним. Модули подгружаются автоматически.
Но тут есть ОГРОМНЫЙ недостаток - svn:externals выгружает последнюю модификацию модуля. И от этого нужно как-то избавиться.

И вот теперь еще нужно вести несколько версий одного проекта. Как это организовать я ХЗ smile  smile   smile

PS: хотелось бы перескочить с Subversion на GIT, но не знаю можно ли на нем реализовать нужную структуру.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
maxim1000
Дата 4.6.2010, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 3
Всего: 110



Цитата(ZVano @  4.6.2010,  10:22 Найти цитируемый пост)
|>branches
|....Не используем

branches и tags у вас не используются потому, что не там располагаются smile
если дать каждому проекту branches и tags, тогда и пригодятся
в частности, для этого:

Цитата(ZVano @  4.6.2010,  10:22 Найти цитируемый пост)
И вот теперь еще нужно вести несколько версий одного проекта.


что касается svn:externals: чем дальше, тем больше убеждаюсь, что svn:externals на head-ревизию приносит больше проблем, чем пользы...

если я правильно понял ситуацию, то стоит сделать для каждого модуля не только его trunk/branches/tags, но и какое-то удобное место для разработки
например, в trunk добавить svn:externals на фиксированные ревизии оболочки и тех модулей, которые нужны для комфортной разработки текущего модуля

Это сообщение отредактировал(а) maxim1000 - 4.6.2010, 12:50


--------------------
qqq
PM WWW   Вверх
ZVano
Дата 4.6.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Цитата(maxim1000 @ 4.6.2010,  12:47)
1.
branches и tags у вас не используются потому, что не там располагаются smile
если дать каждому проекту branches и tags, тогда и пригодятся
...
2.
если я правильно понял ситуацию, 
3.
то стоит сделать для каждого модуля не только его trunk/branches/tags, но и какое-то удобное место для разработки
например, в trunk добавить svn:externals на фиксированные ревизии оболочки и тех модулей, которые нужны для комфортной разработки текущего модуля

2. Все верно.
1,3. Спасибо за разъяснение. Тепрь картина начинает вырисовываться. 
Попробую обмозговать и реализовать структуру.
Если получится обещаю выложить каркас в ветку. Другим точно пригодится.

PS: дополнения приветствуются. Может подключатся другие участники форума знакомые с GIT или Mercurial.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
bilbobagginz
Дата 15.6.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 4
Всего: 317



Цитата(ZVano @  4.6.2010,  12:57 Найти цитируемый пост)
Если получится обещаю выложить каркас в ветку. Другим точно пригодится.

озаглавь это чем-то вроде "для тех, кто не читает документацию" ;-)



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
ZVano
Дата 11.11.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Вобщем, я забил на эту тему т.к. сменил работу и теперь это не нужно.
Как думаете, закрывать тему? Вопрос не решен, но и не требует решения.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
bilbobagginz
Дата 11.11.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 4
Всего: 317



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



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
arilou

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание на то, что новые темы, касающиеся новых вопросов, создаются кнопкой "Новая тема", а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих темах, будут удалены.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, arilou.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | УП: Инструменты | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.