Hooter
|
|
« : 06-04-2006 13:09 » |
|
Уже несколько раз встречал высказывания, что SVN лучше CVS. Кто-нибудь может объяснить, чем именно?
|
|
|
Записан
|
|
|
|
Hoha
Гость
|
|
« Ответ #1 : 06-04-2006 14:17 » |
|
http://en.wikipedia.org/wiki/Subversion_(software) - Atomic commits. Interrupted commit operations do not cause repository inconsistency or corruption. - Renamed/copied/removed files retain full revision history. - Native support for binary files, with space-efficient binary-diff storage. - Directories are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history. - Constant time branching and tagging. - Optimized repository accesses. This reduces unnecessary network traffic to the repository host.
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #2 : 07-04-2006 04:59 » |
|
Спасибо. Тогда вопрос: насколько я знаю, в CVS номер ревизии имеет каждый файл, а в SVN - номер ревизии относится ко всему репозиторию. Так ли это? Для меня это несколько неудобно. Можно ли это отключить в SVN?
|
|
|
Записан
|
|
|
|
Hoha
Гость
|
|
« Ответ #3 : 07-04-2006 05:34 » |
|
Отключить нельзя, так задумано. Скажи, чем неудобно - наверняка решение есть.
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #4 : 07-04-2006 05:53 » |
|
Например, структура проекта следующая (проет содержит следующие модули): project module1 module2 module4 module3 module5
Если проект достаточно хорошо спроектирован, то каждый модуль можно использовать отдельно от остальных с какими-то доугими продуктами... При внесении изменений в один из модулей можно изменять версию только одного модуля, а не всего проекта в целом. В SVN номер ревизии меняется у всего проекта. Для меня это неудобно.
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #5 : 07-04-2006 06:47 » |
|
Еще, например, в CVS есть механизм, который позволяет просмотреть, кто и какие файлы редактирует. В SVN, похоже, такой возможности нет? Видимо, из-за вот этого: - Optimized repository accesses. This reduces unnecessary network traffic to the repository host.
|
|
|
Записан
|
|
|
|
Hoha
Гость
|
|
« Ответ #6 : 07-04-2006 08:19 » |
|
Если модули начинают повторно использоватся - их стоит вывести из репозитория в отдельный проект.
Насчет правки файлов не все мне понятно, но видится так:
1) если тебе все равно, что там с файлом, то и смотреть не стоит, правильно? 2) если изменения в этом файле сильно повлияют на архитектуру системы (интерфейсы библиотек и пр.) - стоит создать временный бранч и вообще это тема для общения с командой. 3) если ты не уверен, что ваши изменения получится слить, т.е. нужен эксклюзивный доступ - ставишь блокировку. Пока ты ее не снимешь - никто свои изменения закоммитить не сможет. Текущие блокировки по желанию можно посмотреть.
Это все ИМХО, конечно.
|
|
|
Записан
|
|
|
|
Igel
|
|
« Ответ #7 : 07-04-2006 17:33 » |
|
Еще, например, в CVS есть механизм, который позволяет просмотреть, кто и какие файлы редактирует.
Что-то не припомню. Откуда сервер знает кто и какие файлы редактирует, когда работа идет с локальной копией?
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #8 : 07-04-2006 18:34 » |
|
Igel, Я так думаю, ты не можеш брать на редактирование сразу все файлы. Береш только те, которые разрешены. И при этом выставляеш статус ToDo файла.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Hoha
Гость
|
|
« Ответ #9 : 07-04-2006 18:44 » |
|
Igel, думаю, имеется в виду watch с последующими edit-unedit.
|
|
|
Записан
|
|
|
|
Igel
|
|
« Ответ #10 : 08-04-2006 15:26 » |
|
Finch, Hoha, че вы грузите, я и так с трудом разобрался в системе веток, релизов и пр... Но взять все файлы можно в любом случае, скорее всего. По крайней мере заблокировать как-то получение не удалось. Вот когда ложишь, тогда да - могут возникнуть проблемы. Вопрос может быть еще в том, что можно посмотреть историю, кто какие версии брал!
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
Hooter
|
|
« Ответ #11 : 10-04-2006 05:06 » |
|
Еще, например, в CVS есть механизм, который позволяет просмотреть, кто и какие файлы редактирует.
Что-то не припомню. Откуда сервер знает кто и какие файлы редактирует, когда работа идет с локальной копией? Набираешь в консоли cvs editors и получаешь список редактируемых файлов и пользователей, которые эти файлы реадактируют. Чтобы серевер узнал о том, что файлы редактируются, нужно, чтобы пользователь сообщил ему об этом - набрал cvs edit <filename>.
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #12 : 10-04-2006 05:10 » |
|
Igel, думаю, имеется в виду watch с последующими edit-unedit.
Можно watch, а можно на локальной машине пользователя прописать переменную окружения CVSREAD. Смысл тот же, только не надо для каждого модуля запускать cvs watch.
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #13 : 10-04-2006 05:43 » |
|
Если модули начинают повторно использоватся - их стоит вывести из репозитория в отдельный проект.
Имхо, есть разница между "один репозиторий для всех проектов" (cvs) и "каждый проект в отдельном репозитории" (svn). Hoha, думаю, что всё дело в привычке (я имею в виду преимущества и недостатки svn и cvs). Возможно, уже стоит переползать на использование svn... Но пока это еще не очевидно.
|
|
« Последнее редактирование: 10-04-2006 07:19 от Hooter »
|
Записан
|
|
|
|
Hoha
Гость
|
|
« Ответ #14 : 10-04-2006 08:23 » |
|
Конечно, я и не агитирую .
|
|
|
Записан
|
|
|
|
Hooter
|
|
« Ответ #15 : 10-04-2006 08:51 » |
|
Просто я сам для себя еще не могу решить, стОит на svn переходить или нет
|
|
|
Записан
|
|
|
|
|