Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.005 c
1-1126613170
vishnia
2005-09-13 16:06
2005.10.02
Текст на исп.,французском, польском языках в элементах управления


1-1126128451
Германн
2005-09-08 01:27
2005.10.02
Вывод текста вертикально


1-1126254560
Николай1
2005-09-09 12:29
2005.10.02
Создание отчётов для БД при помощи HTML


1-1126085246
YuriP
2005-09-07 13:27
2005.10.02
Экспорт в mht из html


1-1126537952
WonderfulDay
2005-09-12 19:12
2005.10.02
Hbitmap vs Tbitmap





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский