Страница 1 из 2

Контроль версий

Добавлено: 02 янв 2006, 02:06
Victor Gr.
Привет.

Вопрос: два разработчика работают над сайтом (php+apache+mysql) на разных не связанных машинах.

Итоговая версия размещается через ftp на сервер.

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

Как такие вещи вообще решаются?

Добавлено: 02 янв 2006, 02:31
mend0za
такие вещи решаются через version control system

Примеры - cvs (самая известная), subversion, gnu arch, monotone

Добавлено: 02 янв 2006, 03:33
Victor Gr.
Спасибо!
Про CVS конечно многое слышал, но к себе не применял. Установлю...

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

Как такие конфликты разрешаются?

Добавлено: 02 янв 2006, 11:20
exe
Victor Gr.,

Это именно то для чего cvs и используется. Все описано в доках по cvs.

Добавлено: 02 янв 2006, 21:47
Victor Gr.
Большое спасибо!

Нашёл доки по CVS. Интересно, одного только не пойму пока.

А чем отличаются централизованные системы (CVS, Subversion) от децентрализированных? (Gnu Arch).

В моём случае, сервером CVS выступает sf.net.
Могу ли я проводить разработку в оффлайне, а потом разом закачивать все изменения? или нужно постоянно быть в онлайне, чтобы делать cvs commit и т. п.?

Добавлено: 02 янв 2006, 23:36
exe
Для всех комманд (почти) тебе нужен доступ к серверу :-(
Реплики как то не предусмотрены.

ps. Бери белсел, он спит пока данные не идут.
Проснется при выполнении cvs, заплатишь за 12 sec :-)

Добавлено: 02 янв 2006, 23:45
Victor Gr.
exe, ОК, а есть системы контроля версий, у которых не нужен доступ к серверу?

У меня ADSL, через домашнюю сеть. И дело просто в нестабильности всей этой сети.

Не хочется так сильно от этого зависеть.

Добавлено: 03 янв 2006, 00:24
mend0za
да, в CVS можно работать в оффлайне

иначе само понятие рабочей копии было бы бессмысленно

делаешь изменения, потом коннектишся для commit

Добавлено: 03 янв 2006, 00:55
Victor Gr.
Ну, commit...

К примеру, у меня сегодня в To Do 3 пункта.

Я испрвляю первый, делаю commit -m "Оптимизированы расчеты"
Второй commit -m "Добавлено сохранение"
Третий commit -m "Исправлены ошибки".

Нельзя сделать так, чтоб потом одним махом закачать на сервер?

А чем отличаются централизованные системы (CVS, Subversion) от децентрализированных? (Gnu Arch).

Добавлено: 03 янв 2006, 00:57
mend0za
сделать только 1 коммит с коментом из трёх пунктов, что за проблема :)

Добавлено: 03 янв 2006, 01:46
X-Stranger
Советую вместо CVS использовать Subversion

Добавлено: 03 янв 2006, 02:58
Victor Gr.
X-Stranger, да, вижу, что лучше по всем параметрам. Но где найти его публичные серверы? Ведь sf.net - ТОЛЬКО cvs? или нет?

mend0za, :))) Как-то, я не догадался )... Серьёзно, спасибо )

Добавлено: 03 янв 2006, 16:53
mend0za
2 Victor Gr.: sf.net, savannah.gnu.org, gna.org - у всех имхо есть и альтернативные CVS варианты

Добавлено: 14 май 2006, 10:03
Debugger
Victor Gr.,
Sourceforge.net - есть и CVS и SVN, на выбор

Добавлено: 14 май 2006, 16:13
Victor Gr.
Ну, гэта толькі нядаўна sf.net пачаў падтрымліваць SVN. І гэта добра.

А ў мяне яшчэ пытанне наконт...
Напрыклад, я маю ў сябе на лакальным кампе сэрвер svn куды раблю commit-ы.

І таксама маю рахунак на sf.net, напрыклад.

Магчыма неяк сінхранізаваць пасля мой лакальны рэпазітарый з аддаленым?