Отправляет email-рассылки с помощью сервиса Sendsay

Есть проблема. Раскочегарил CVS для ведения проекта. Все было хорошо,
пока не встал вопрос о том, чтобы начать вести ветки. Как ни кручу,
все получается криво и очень неудобно.

Может кто-нибудь уже проходил это и протоптал тропинку? Может кто
знает, как подразумевалось грамотно работать с ветками в CVS? Или
может где есть дока по тому, какая идеология закладывалась в CVS в
плане веток? В стандартном руководстве не нашел ничего, кроме описания
функций - но это не совсем то.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8856; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/179927



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 11:12:12 +0400 (#179927)

 

Ответы:

Win32)

On Mon, 28 Jun 2004 11:12:12 +0400
<vabv***@m*****.ru> wrote:

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

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

Ответить   Alexander Artemenko Mon, 28 Jun 2004 11:30:14 +0400 (#179936)

 

Alexander Artemenko wrote:

получается,

в

Пожалуйста... пришлите мне...
satur***@m*****.ru

С наилучшими пожеланиями, saturas...

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8861; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/179981



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 14:40:21 +0600 (#179981)

 

системой.

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

в

надо

получается,

в в

баги,

Как вариант. Надо будет прикинуть, где здесь могут быть грабли.

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

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

Мне не нужны файлы из основного ствола, если он нестабилен.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8866; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/180024



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 13:20:20 +0400 (#180024)

 

системой.

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

mailto:vabv***@m*****.ru

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8868; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/180028



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 13:33:37 +0400 (#180028)

 

On Понедельник 28 Июнь 2004 11:12, vabv***@m*****.ru wrote:

Я работаю. Только не замечал особых проблем или неудобств.

Ответить   "Sergey B. Khvatov" Mon, 28 Jun 2004 11:38:27 +0400 (#179941)

 

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

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

Но я не могу сформулировать на данный момент никакой более-менее
логичной схемы для незамудренного OpenSource-ом разработчика.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8864; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/180013



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 13:10:00 +0400 (#180013)

 

On Понедельник 28 Июнь 2004 13:10, vabv***@m*****.ru wrote:

Вы определитесь, чего вам непонятно - ветки или метки.

По-моему концепция - проще некуда. Версии НА ДАННЫЙ МОМЕНТ - это
ветки. Метки - это механизм отката в прошлое. Захватывать файлы
вовсе не обязательно. Чем меньше вы углубляетесь во внутренности
CVS, тем лучше всё работает :-)

Может быть вы пытаетесь комбинировать файлы из различных веток или
с разными метками/временами? Тогда у вас действительно будут
проблемы.

Ответить   "Sergey B. Khvatov" Mon, 28 Jun 2004 13:49:18 +0400 (#180046)

 

С метаками мне все более-менее понятно. А вот с ветками :-(

Правильно ли я понимаю, что как только мы решаем начать делать патчи
для заданного релиза (условно, несколько-месячной давности), то должны
все до единого объекты, бывшие в этом релизе (помеченные как релиз)
пометить липкой меткой новой ветки, и после этого работать с данной
веткой постоянно обновляя по имени липкой метки ветки?
(прошу прощения за наворот, как-то проще не получилось)

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

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8871; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/180063



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 14:16:04 +0400 (#180063)

 

On Понедельник 28 Июнь 2004 14:16, vabv***@m*****.ru wrote:

В workspace хранится информация о том, что вы закачали, и все
изменения будут делаться с этой веткой. Более того, попытки
работать с другой веткой будут пресечены.

Сколько же у вас релизов? У нас в нашем полуторалетнем проекте их
всего 5, и ветвь есть только от предпоследнего :-)

Ответить   "Sergey B. Khvatov" Mon, 28 Jun 2004 14:37:57 +0400 (#180076)

 

Проверил. В каталоге, выбранном с одной меткой, часть файлов получил
по другой метке. Свободно могу их менять и сохранять. Однако, это
всего лишь эксперимент, не факт, что мне захочется так поступать
впредь.

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

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

Кроме этого, если действительно надо все до единого объекты релиза
сразу переносить во вновь образованную ветвь, то сильно интересует
вопрос: как выделить, какие из файлов, реально изменились в ветви,
а какие так, за компанию, лежат. Я понимаю, есть команда cvs status,
но это же неудобно.

Ответить   Mon, 28 Jun 2004 15:15:01 +0400 (#180105)

 

Win32)

On Mon, 28 Jun 2004 15:15:01 +0400
<vabv***@m*****.ru> wrote:

В WinCVS для этого есть специальные скрипты, кажется на Питоне. Наверное их и
отдельно можно использовать.

Ответить   Alexander Artemenko Mon, 28 Jun 2004 16:41:27 +0400 (#180178)

 

On Понедельник 28 Июнь 2004 16:41, Alexander Artemenko wrote:

Проще на номер версии посмотреть :-)

Ответить   "Sergey B. Khvatov" Mon, 28 Jun 2004 16:58:49 +0400 (#180200)

 

Win32)

On Mon, 28 Jun 2004 16:58:49 +0400
"Sergey B. Khvatov" <xbat***@t*****.ru> wrote:

Если в проекте несколько сотен файлов в разных директориях? :-)

Ответить   Alexander Artemenko Mon, 28 Jun 2004 17:05:36 +0400 (#180208)

 

Резюме по теме.

Значит получается так?

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

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

Существуют две стратегии ведения веток:
1. Ствол содержит самую стабильную версию, а в ветках содержиться
сырой код, который пока стремно проводить по версии. Когда приходит
время эти изменения переносятся в ствол.
2. Ствол содержит самый нестабильный код, но время от времени, когда
он сравнительно доделан, все его файлы переносятся в ветку, в
которой только накладываются патчи. Ствол же продолжает корежится.

Процесс переноса изменений из ветки в ствол для программ на C можно
делать средствами CVS, с бинарниками (или текстовыми "случайно-
меняющимися" файлами) приходится работать вручную, или даже на этапе
разработки проводить каждое изменение сразу и в ствол, и во все активные
ветки.

Когда мы хотим получить полные изменения по ветке, то должны
воспользоваться сторонними скриптами (если не пользуемся WinCVS или
LinCVS).

Все правильно указано? Может есть какой-то другой опыт? Может какие
добавления?

Ответить   Wed, 30 Jun 2004 10:45:43 +0400 (#181438)

 

Здравствуйте vabvab,

Monday, June 28, 2004, 11:12:12 AM, вы написали:

ничего сложного нет. Командные ключи не помню, но в LinCVS или WinCVS
это делается из меню Create branch. Потом, при апдейтах и комитах
указываете из какой ветки тащить исходники и все. Веток может быть
много, потом можно делать слияние. Доки здесь
http://www.linux.org.ru/books/GNU/cvs_ru/
там все подробно.
однако, если только начинаете проект - то лучше subversion - там
доступ по хттп, если ходите через прокси или сидите за файрволлом- меньше проблем.
Потом лучше
можно настроить права доступа к проектам и файлам в них. в цвс все
ограничивается системными правами доступа к файлам, что не так гибко.
ветки я лично использовал для того, чтобы направлять проект по
каким-то другим путям, не меняя при этом основного дерева, например
доступ к БД через ODBC или напрямую клиентскими библиотеками. Или один
и тот же клиент ходит к серверу через корбу или по самописному
протоколу поверх TCP. чтобы кучу условных директив не плодить, делаем
новую ветку - там все отлаживаем, старая при этом может жить или
умереть, это как вы захотите.
В рабочей копии храните одну ветку, а не из разных веток файлы, иначе
бардак будет, потом сложно разобраться, что где.

Ответить   Evgeny Stepanov Mon, 28 Jun 2004 11:52:42 +0400 (#179962)

 

проблем.
Спасибо. У меня уже есть такая докумментация в настольном
использовании, за неимением лучшего (она предполагает, что я и сам
знаю технологию работы с проектом, и поэтому концентрируется только на
средствах).

Я тоже начинаю тяготеть к тому, чтобы каждая ветка была в отдельном
месте.

А что у вас лежит в основном стволе? Все таки это не совсем обычная
ветка.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8867; Возраст листа: 338; Участников: 1197
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/180027



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 28 Jun 2004 13:32:28 +0400 (#180027)

 

Здравствуйте vabvab,

Monday, June 28, 2004, 1:32:28 PM, вы написали:

в основном стволе либо совсем старая базовая версия, либо последняя
стабильная версия, а ветках всякие эксперименты.

Ответить   Evgeny Stepanov Mon, 28 Jun 2004 14:10:12 +0400 (#180062)