Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

Управление версионированием проекта...   Найти похожие ветки 

 
Makhanev A.S.   (2005-09-09 11:12) [0]

Есть проект (в широком смысле слова), включающий в себя ряд компонентов и delphi проектов (dprs).
Нужно управлять версионированием, чтобы всегда можно было сделать откат назад.
Пока что это делается криво и неполноценно, т.к. не охота каждый раз переустанавливать компоненты.

Если с delphi-проектами нет проблем (создал другую папку и вперед), с компонентами надо возиться (переустанавливать, пути перепрописывать)

Какие могут быть наиболее удобные решения?


 
Dilmo   (2005-09-09 12:21) [1]

Вообще то для управления версиями существует куча различных софтин таких как Microsoft Visual Source Safe, StarTeam не помню точное название, Tortoise и другие...


 
Makhanev A.S.   (2005-09-09 12:35) [2]


> Dilmo   (09.09.05 12:21) [1]


Я понимаю, меня интересует конкретный опыт.


 
Dilmo   (2005-09-09 12:47) [3]

ну если конкретный опыт то пожалуйста:
Мы пользуемся VSS (Visual Source Safe) есть недостатки, но пока для работы хватает

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

что еще интересует ?


 
Makhanev A.S.   (2005-09-09 12:53) [4]

Т.е. чтобы обновить свой компонент нужно скопировать новые файлы в папку, на которую ссылается Delphi и перебилдить компонент/проект, или каждый раз меняете ссылки из Delphi на новый компонент, удаляя предыдущий и устанавливая новый?


 
Dilmo   (2005-09-09 13:07) [5]

зачем чего то копировать ?
Допустим лежит у Вас проект
C:\Work\Project1
И пара компонент
C:\Work\Component1
C:\Work\Component2

В проекте стоит ссылка на компоненты, в юзесах прописаны нужные файлы, ну или можно bpl использовать, не суть важно..
Ктото другой поправил на своей машине одну из компонент, он заливает эти новые исходники в Source Safe вы их оттуда получаете в качестве последней версии и уже работаете с новой версией... это сложновато объяснить так вот на пальцах, советую поставить какую либо систему и посомтреть как это все работает

про Source Safe можете у меня спросить :)


 
Makhanev A.S.   (2005-09-09 13:31) [6]

Т.е. delphi всегда ссылается на одни и те же папки (environment->libs)? А уже с помощью VSS мы в них выкладываем хоть позапрошлую версию, хоть текущую. И в Delphi остается только перебилдить все это дело - так?


 
Dilmo   (2005-09-09 13:34) [7]

да


 
Makhanev A.S.   (2005-09-09 13:43) [8]

о, теперь ясно.
спасибо за ответы.


 
Dilmo   (2005-09-09 13:52) [9]

в принципе есть еще такая вещь
можно пути прописывать не в Enviroment->Libs
а в Project->Options для конкретного проекта ну и писать относительные пути то есть не C:\Work\Component1\
а ..\Component1
тогда при копирование из одного каталога в другой проблем будет намного меньше, если скопировать всю структуру каталогов


 
Makhanev A.S.   (2005-09-09 14:04) [10]


> Dilmo   (09.09.05 13:52) [9]

Вы имеете в виду поле search path?


 
Dilmo   (2005-09-09 14:05) [11]

да


 
Dilmo   (2005-09-09 14:06) [12]

да, в этом поле прописываются все пути к файлам которые не включены в проект, но используются в uses


 
Makhanev A.S.   (2005-09-09 15:38) [13]

Попутный вопрос:
мы делаем несколько билдов одной версии в зависимости от директив условной компиляции. Неудобство в том, что каждый раз надо лезть в project options, condtitionals... выставлять их там и билдить заново.
попытки изучить интерфейс командной строки делфегого компилятора уперлись в то, что там нужно было указывать все используемые либы. и, если не ошибаюсь, он не хотел компилить либы сторонних разработчиков.

есть ли у вас подобная задача, если есть - как решаете?


 
Makhanev A.S.   (2005-09-10 13:32) [14]

никто не в курсе?


 
Гаврила ©   (2005-09-10 14:05) [15]


> Makhanev A.S.


> мы делаем несколько билдов одной версии в зависимости
> от директив условной компиляции


С коммандной строки.

> в то, что там нужно было указывать все используемые
> либы

нужно не полениться и указать, это один раз делается (bat файл например)

> если не ошибаюсь, он не хотел компилить либы сторонних
> разработчиков.

должен компилить


 
Makhanev A.S.   (2005-09-11 00:55) [16]


> Гаврила ©   (10.09.05 14:05) [15]

можете ваш bat файл на мыло в приват кинуть?


 
Гаврила ©   (2005-09-11 01:07) [17]


> Makhanev A.S.  

Нет. Пути(path) разные, смысла не имеет. Необходимая информация ищется в справке за 20 секунд. Еще 10 минут уходит на подготовку bat


 
Dilmo   (2005-09-12 07:21) [18]

Ни разу не пользовались Project->Options->Conditionals
вот хоть убейте, может и не правильно это, у нас для условной компиляции есть файл... в нем прописываются все DEFINE
и он подключается командой {$INCLUDE "<имя файла>"} во всех юнитах, где необходима эта самая условная компиляция, далее подправляешь этот самый файл так как тебе надо и билдишь
возможно такой подход поможет


 
Наиль ©   (2005-09-12 07:50) [19]

>[18]
Этот подход более чем правильный.
Вместо исправления, лучше использовать двойной Include.
Во всех юнитах прописывается {$INCLUDE "defines.inc"}
А в нём самом одна строчка
{$INCLUDE "Defines1.inc"}
Таким образом, можно сделать Defines1, Defines2 и т.д. и ссылаться на нужный из них.


 
Dilmo   (2005-09-12 08:02) [20]

при большом количестве различных дефайнов двойной инклюд конечно решает проблему


 
Наиль ©   (2005-09-12 09:40) [21]

Так я работаю один, то пользуюсь простым способом версионирования проекта. Для этого использую возможности профелей WinRar. Я указываю папки которые нужно архивировать. К названию архива добавляю номер дня (можно дату) и время. Исключаю из архива dcu, exe и ~-файлы. Сохраняю профиль в режиме автоисполнения на рабочий стол.
Мне этого хватает.
Но при желании можно расширить возможности, добавляя комментарий из файла, настраивая пути разархивирования и автозапуск компиляции распакованных файлов.
У меня архивация происходит по расписанию каждые 3 часа.
Но можно внедрить в проект такой модуль:
Unit SaveProject;
...
initialization
// Создание файла комментария и других полезных файлов
...
// Запуск архивации
ShellExecute(...,"Путь к ярлыку профиля на рабочем столе",...);
end.
Внедрить - означает упомянуть модуль в любом uses.


 
Наиль ©   (2005-09-12 09:53) [22]

Для того, чтобы легче было разбираться с профилями в WinRar можете создать файл 1.reg такого содержания (и запустите его):
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\WinRAR\Profiles\5]
"Name"="Бурение"
"Default"=dword:00000000
"ImmExec"=dword:00000000
"CurDir"="C:\\Program Files\\ICQ\\shared files"
"ExclNames"="*.dcu *.~* *.exe *.db *.mb *.px *.xg* *.yg* "
"StoreNames"=""
"UseRAR"=dword:00000001
"SFXModule"=""
"SFXIcon"=""
"CmtFile"=""
"CmtText"=""
"VolumeSize"="0"
"VolPause"=dword:00000000
"OldVolNames"=dword:00000000
"RecVolNumber"=dword:00000000
"Update"=dword:00000000
"Fresh"=dword:00000000
"SyncFiles"=dword:00000000
"Move"=dword:00000000
"Solid"=dword:00000001
"AV"=dword:00000000
"Test"=dword:00000000
"Recovery"=dword:ffffffff
"EraseDest"=dword:00000000
"AddArcOnly"=dword:00000000
"ClearArc"=dword:00000000
"Lock"=dword:00000001
"Method"=dword:00000005
"DictSizeLZ"=dword:00400000
"Background"=dword:00000001
"Shutdown"=dword:00000000
"Password"=hex:49
"EncryptHeaders"=dword:00000000
"OpenShared"=dword:00000000
"ProcessOwners"=dword:00000000
"SaveStreams"=dword:00000000
"GenerateArcName"=dword:00000001
"VersionControl"=dword:00000000
"GenerateMask"="eee(hh_mm)"
"FileTimeMode"=dword:00000000
"FileDays"=dword:00000000
"FileHours"=dword:00000000
"FileMinutes"=dword:00000000
"FileTimeBefore"=dword:88000000
"FileTimeAfter"=dword:88000000
"ArcTimeOriginal"=dword:00000000
"ArcTimeLatest"=dword:00000000
"mtime"=dword:00000004
"ctime"=dword:00000000
"atime"=dword:00000000
"PathsAbs"=dword:00000000
"PathsNone"=dword:00000000
"SeparateArc"=dword:00000000
"EmailArcTo"=""
"PackDetails"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"ArcName"="C:\\Documents and Settings\\Пользователь\\Мои документы\\CyberLink\\Наиль\\Delphi\\ПОД ЗАКАЗ\\АРХИВЫ\\Бурение.rar"
"FileNames"="\"C:\\Documents and Settings\\Пользователь\\Мои документы\\CyberLink\\Наиль\\Delphi\\ПОД ЗАКАЗ\\Бурение\" \"C:\\Program Files\\Borland\\Delphi7\\MyLib\" "

После этого можете проанализировать его через WinRar



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.083 c
1-1126094591
lmz
2005-09-07 16:03
2005.10.02
Блок вставки из буфера обмена


1-1126129760
312Kbps
2005-09-08 01:49
2005.10.02
SetWallpaper - помогите вставить картинку !!!


5-1101467167
TankMan
2004-11-26 14:06
2005.10.02
Гиде найти редактор компонента для TPageControl?


3-1124388973
Ландграф Павел
2005-08-18 22:16
2005.10.02
AccessApplication как ввести пароль на базу данных


9-1116958134
ins3rt
2005-05-24 22:08
2005.10.02
OpenGL движок