реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> svn vs git, что лучше?
uriy
сообщение Oct 7 2010, 14:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



svn использую больше года. В настоящее время стоит задача вести совместно проект на ucLinux. Работаю под Debian. Поставил eclipse и subclipse версии 1,6 под него. Пытался сделать checkout с репозитория на свой комп. Никак не получается. Мало того что в проекте очень много файлов, процесс идет очень медленно так еще и eclipse вылетает постоянно. Позднее решил сделать update того что не хватает в проекте с помощью консоли и других GUI под Debian. Оказалось что версии всех svn клиентов и консольного под Debian 1.5 и она не совместима с версией subclipse 1.6.
С git пробовал создать репозиторий и делать туда push (так вроде называется) но там ничего не обновляется.
Стоит ли осваивать git? Будет ли он работать быстрее чем svn. Или нет никакой разницы что использвать.
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 7 2010, 15:40
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



С большими и очень большими репозиториями git работает однозначно много быстрее чем Svn. Я лично уже давно перешел на git на работе и в своих домашних проектах. Мне он очень нравится. Но здесь есть разница не только в скорости работы и прочих ньюансах, а в идеалогии этих систем: Svn - централизованная, Git - распределённая. Для кого-то это имеет значение. Не всегда переход на git бывает лёгким именно по этой причине - git его надо понять.
PS.
push "затакивает" измененные объекты из локольной рабочей копии в удаленный репозиторий. А чтобы новые файлики попали в эту локальную рабочую копию, их туда надо добавить git add, потом сделать git commit. Как я понял вы это хотите сделать. Если-же удаленного репозитория нет, а только рабочая копия - достаточно просто git add и git commit.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Oct 8 2010, 04:04
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Интересно, что такое большой репозиторий ? Посмотрите на этот: http://svn.freebsd.org/base/. Размер около 10ГБ, файлов - не счесть, ревизий более 200 тысяч. И ничего, работает вполне нормально. Поэтому проблема скорее всего в чем-то другом.

На счет того, что выбрать. Как уже сказал neiver, это две разные модели хранения веток разработки. В случае svn, если вам нужно надолго отпочковаться от базовой ветки вы просто создаете еще одну ветку и делаете в ней что хотите, при этом можно дать другим посмотреть на плоды вашего творчества. При этом все хранится на одном сервере, упрощается администрирование и бэкапы. В случае с git, репозиторий можно клонировать и работать с ним на локальной машине, но за хранение и доступ уже отвечаете вы сами.

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

Касательно версий: всегда использовали только официальные ветки/билды и не было никаких проблем. Естественно, для всех операций использовали только rapid-svn, командную строку или ее обертки из оболочек/редакторов.
Go to the top of the page
 
+Quote Post
uriy
сообщение Oct 8 2010, 05:12
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Svn - централизованная, Git - распределённая
В этом я вижу пока только минусы git. Мы выдем проект вдвоем. В случае с svn если возникают проблемы с компиляцией можно сделать update на предыдущую ревизию из репозитория и продолжать работать. А с git если я и коллега что-то попортим в своих исходниках то делать update неоткуда. Или git хранит историю изменений на каждой локальной копии и update делается со своего же компа?
Цитата
Интересно, что такое большой репозиторий ? Посмотрите на этот: http://svn.freebsd.org/base/. Размер около 10ГБ, файлов - не счесть, ревизий более 200 тысяч. И ничего, работает вполне нормально.
У нас исходники весят около 1,5ГБ файлов около 60000. Значит svn с этим должен легко работать.
Цитата
Поэтому проблема скорее всего в чем-то другом.
Похоже в eclipse+subclipse. Вчера для пробы сделал checkout из консоли в другой каталог, завершилась менее чем за час. На checkout из subclipse уже потрачено часов 5 и еще не завершено. Похоже стоит использовать rapid-svn, а в eclipse только редактировать код.
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 8 2010, 09:47
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Да, именно так. Гит обычно хранит всю историю изменений в каждой копии препозитория. Но можно и сделать checkout только последней ревизи если надо. Причем все репозитории и рабочие копии главный рапозиторий(если такой имеется) впринципе равнозначны.
Цитата
. Вчера для пробы сделал checkout из консоли в другой каталог, завершилась менее чем за час.

Это по локальной сети? Или через инернет канал мегабита в четыре?
У меня ~ 1 GB исходников. На работе по 100 мегабитной локальной сети репозиторий клонируется меньше чем за 10 мин. Из дома 4Mbit минут за 40.
Вся служебная информация(читай история изменений) занимает 170 Мб при 1Гб исходников и полутора годовой истории изменений.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Oct 8 2010, 11:26
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(uriy @ Oct 8 2010, 09:12) *
В этом я вижу пока только минусы git.
Нету никаких минусов. Более того, на мой взгляд, у централизованных VCS нет никаких преимуществ перед децентрализованными. Имея копию репо у себя, вы не зависите от наличия соединения с севером. Например, захотелось вам сделать svn log или svn blame, а сервер c репо недоступен. Вот и аюшки.

Цитата
Мы выдем проект вдвоем. В случае с svn если возникают проблемы с компиляцией можно сделать update на предыдущую ревизию из репозитория и продолжать работать. А с git если я и коллега что-то попортим в своих исходниках то делать update неоткуда.
С git можно работать так же, как и с svn: сделать центральный репо, с которым периодически синхронизироваться (git pull/git push).

Разумеется, любое изменение можно откатить. А за git bisect я бы авторам поставил памятник. Более того, работа с ветками в git гораздо более приятная (включая git rebase и git cherry-pick). git merge вообще сказка. Работа с отдельными коммитами тоже на высоте: git rebase -i позволяет изменить порядок коммитов, слить несколько коммитов в один, убрать ненужные.

Итого: имея опыт работы и с git, и c svn, я большого смысла в использованиии svn не вижу.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Oct 9 2010, 04:55
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(uriy @ Oct 8 2010, 09:12) *
А с git если я и коллега что-то попортим в своих исходниках то делать update неоткуда.

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

Для svn есть подобный аналог - svk. Удобно, когда едешь в тьмутараканьбезинтернета.

У обоих систем есть свои преимущества и недостатки. В git мне не нравится структура в виде сотни с лишним разнородных скриптов, предпочитаю более цельные продукты.
Go to the top of the page
 
+Quote Post
:-)
сообщение Oct 9 2010, 08:11
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006



Извините, что влезаю в дискуссию, но подскажите достойную литературу по svn и по git. Мало что знаю про системы контроля версий, а разобраться хочется...
Go to the top of the page
 
+Quote Post
Ko4egap
сообщение Oct 11 2010, 09:32
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434



Цитата(:-) @ Oct 9 2010, 12:11) *
Извините, что влезаю в дискуссию, но подскажите достойную литературу по svn и по git. Мало что знаю про системы контроля версий, а разобраться хочется...


Официальная документация - самая достойная литература
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 11 2010, 12:03
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(halfdoom @ Oct 9 2010, 08:55) *
В git мне не нравится структура в виде сотни с лишним разнородных скриптов, предпочитаю более цельные продукты.

Its a UNIX way.
А чем она эта структура не нравится? Все эти "скрипты" доступны из одной команды "git":
git init
git pull
git push
git rebase
...

А если хочется вида целостного продукта, то можно и графическую морду к нему поставить. Я вот GitExtensions пользуюсь. Удобная штука, рекомендую.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Oct 11 2010, 13:21
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(neiver @ Oct 11 2010, 16:03) *
А чем она эта структура не нравится? Все эти "скрипты" доступны из одной команды "git":

Выбор VCS очень ответственная задача, т.к. сбои в ее работе могут обернуться серьезными последствиями и простоями. Поэтому мне важно качество кода. Посмотрите на количество релизов git - более 160 за 5 лет, для subversion эта цифра в два раза меньше, но за 7 лет.

Ну, и то, что git таскает за собой весь репозиторий для меня является недостатком, т.к. нет возможности извлечь файлы/историю только для подпроекта. Насколько я знаю, это до сих пор не решено в полной мере, т.к. изначально git разрабатывался для монолитных проектов типа ядра Linux.
Go to the top of the page
 
+Quote Post
uriy
сообщение Oct 12 2010, 05:18
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Посмотрите на количество релизов git - более 160 за 5 лет, для subversion эта цифра в два раза меньше, но за 7 лет.
т.е. git сырой и там постоянно исправляют баги?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 12 2010, 07:23
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(uriy @ Oct 12 2010, 09:18) *
т.е. git сырой и там постоянно исправляют баги?

Не надо делать поспешных выводов. Также не надо сравнивать качество разных программ, считая число релизов. Это просто неправильно.
И SVN, и git - хорошие системы. Выбирать надо под задачу. Лично я использую SVN, так как мне нравится концептуальная простота этой системы, а её возможностей вполне хватает. Понадобятся продвинутые фичи из git - стану использовать, а пока мне не хочется забивать голову тем, что мне не нужно.
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 12 2010, 08:43
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(uriy @ Oct 12 2010, 09:18) *
т.е. git сырой и там постоянно исправляют баги?

За два года использования Git ни одного его бага в нашей команде обнанужено не было. Наверное мы неправильно его использовали smile.gif
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Oct 12 2010, 09:50
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(neiver @ Oct 12 2010, 11:43) *
За два года использования Git ни одного его бага в нашей команде обнанужено не было. Наверное мы неправильно его использовали smile.gif

Вы просто на них не нарывались, посмотрите на RelNotes-*. А что касается числа релизов, то попробуйте всех заставить обновлять всех клиентов с такой частотой. Hint: у нас разработчики сидят не только в одном здании, но и на разных континентах. Мы svn уже используем шесть лет, до этого был cvs, а еще раньше (страшно вспомнить) - rcs.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 18:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.015 секунд с 7
ELECTRONIX ©2004-2016