Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 15:53

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 01 ноя 2011, 14:13 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
но по всем файлам он обязательно проходит, помечая их новым тегом-бранчем - как cvs. что ест-но не масштабируется, особенно по сети. особенно если репозиторий активно всеми используется.
вот я не очень догоняю смысл "масштабируется". что это значит? бранчи делаются относительно быстро и переключаются тоже быстро.
bzzz писал(а):
потому что после того как закоммитил какое-то изменение, сделать с этим конкретным коммитом ничего нельзя уже. нельзя несколько коммитов поменять местами, нельзя их объединить, нельзя откатить как его и не было.
вот в этом, возможно, есть смысл, хотя сильно отсутствие этого не мешало.
bzzz писал(а):
внутри не копируется все подряд, но как минимум создаются hardlink'и для всего ... заполняя fs "мелочью"
боюсь, ничего подобного не делается. делаются ссылки для всех файлов на конкретную ревизию, это даже не файлы в fs.
bzzz писал(а):
в то время как git checkout -b newbranch oldbranch создает фактически один файл. и дальше будет отслеживать изменения на уровне отдельных файлов.
а вы в курсе, сколько фактически файлов (в fs) создается в свн при создании бранча?;) правильно, ровно один и совсем маленький! так что многие ваши доводы просто надуманны, хотя плюсы у гита несомненно есть.

но и минус (для меня) тоже есть: таскаешь за собой всю версию репозитория, она тупо больше весит...

еще меня всегда интересовал вопрос: а есть какие-то средства, мониторящие изменение файловой системы и сохраняющей изменения в репозиторий автоматом? примерно как это делает дропбокс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 01 ноя 2011, 14:47 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
bzzz писал(а):
но по всем файлам он обязательно проходит, помечая их новым тегом-бранчем - как cvs. что ест-но не масштабируется, особенно по сети. особенно если репозиторий активно всеми используется.
вот я не очень догоняю смысл "масштабируется". что это значит? бранчи делаются относительно быстро и переключаются тоже быстро.


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

Ink писал(а):
bzzz писал(а):
внутри не копируется все подряд, но как минимум создаются hardlink'и для всего ... заполняя fs "мелочью"
боюсь, ничего подобного не делается. делаются ссылки для всех файлов на конкретную ревизию, это даже не файлы в fs


а ссылки бесплатные что-ли?

Ink писал(а):
bzzz писал(а):
в то время как git checkout -b newbranch oldbranch создает фактически один файл. и дальше будет отслеживать изменения на уровне отдельных файлов.
а вы в курсе, сколько фактически файлов (в fs) создается в свн при создании бранча?;) правильно, ровно один и совсем маленький! так что многие ваши доводы просто надуманны, хотя плюсы у гита несомненно есть.


ага, один файл и целая куча ссылок ... у меня не доводы надуманные, а факты - мы использовали cvs раньше (svn - это просто слегка улучшенный cvs, дизайн там тот же), а теперь у нас git. раньше создать бранч/сделать тэг - это мучение для всех было, с момента перехода на гит ни одной жалобы нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 01 ноя 2011, 16:01 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
когда с репозиторием начинает работать несколько человек плотно - это "относительно" превращается в "невыносимо".
думаю, это ни о чем - сравнивать большущий проект с 100500 разрабов и хобби-подобные проекты. я ни слова против не скажу, когда агитируют за гит для серьезных проектов.
bzzz писал(а):
а ссылки бесплатные что-ли?
у вас свн нету?;) вы бы поставили и поглядели, как это выглядит. а в гите как оно реализовано? все бесплатно, да?;)
bzzz писал(а):
ага, один файл и целая куча ссылок
вот и ага. я нашел в репозитории один из бранчей - текстовый файлик 800+ БАЙТ. файлов в проекте сотни, общий размер - сотни мегабайт.
bzzz писал(а):
у меня не доводы надуманные, а факты - мы использовали cvs раньше (svn - это просто слегка улучшенный cvs, дизайн там тот же)
если бы я был знаком с цвс - посмотрели бы:) но я не знаком, я могу сказать только как это работает у нас в свн - вот это факты, а не домыслы, что свн - это улучшенный цвс и там все совсем плохо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 01 ноя 2011, 17:21 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
вот и ага. я нашел в репозитории один из бранчей - текстовый файлик 800+ БАЙТ. файлов в проекте сотни, общий размер - сотни мегабайт.


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

про сотни мегабайт я не понял ... у нас сейчас файлов типа *.[ch] - 1034 штук, при этом общий их размер - 25351035 байт (24 мб), что дает порядка 24кб на файл в среднем. если у вас сотни файлов, а размер сотни мегабайт, то размер файла средний несколько сотен килобайт? на каких наркотиках сидите?

lnk писал(а):
bzzz писал(а):
у меня не доводы надуманные, а факты - мы использовали cvs раньше (svn - это просто слегка улучшенный cvs, дизайн там тот же)
если бы я был знаком с цвс - посмотрели бы:) но я не знаком, я могу сказать только как это работает у нас в свн - вот это факты, а не домыслы, что свн - это улучшенный цвс и там все совсем плохо.


ок, сколько в вашей репе бранчей и тегов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 02:55 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
святая наивность ... ссылки на каждый файл бесплатные? хранятся на бумаге?
давайте вы поставите свн и убедитесь, ок? я вам привел ФАКТ, из реальной репы. потом мы вместе оценим платность ссылок. и вы забыли рассказать, как это бесплатно сделано в гит;)
bzzz писал(а):
если у вас сотни файлов, а размер сотни мегабайт, то размер файла средний несколько сотен килобайт?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 08:29 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
bzzz писал(а):
святая наивность ... ссылки на каждый файл бесплатные? хранятся на бумаге?
давайте вы поставите свн и убедитесь, ок? я вам привел ФАКТ, из реальной репы. потом мы вместе оценим платность ссылок. и вы забыли рассказать, как это бесплатно сделано в гит;)


это называется COW - copy on write, почитайте про zfs, например. в git создается только один файл и никаких ссылок больше. в svn создаются ссылки на каждый файл. все равно непонятно?

Ink писал(а):
bzzz писал(а):
если у вас сотни файлов, а размер сотни мегабайт, то размер файла средний несколько сотен килобайт?

вообще-то, именно так.
bzzz писал(а):
на каких наркотиках сидите?
на особых, проверенных временем. вас еще больше удивит, что это ассемблерные исходники.


сотни мегабайт на ассемблере? это какие-то особо тяжелые наркотики.

Ink писал(а):
bzzz писал(а):
ок, сколько в вашей репе бранчей и тегов?
их не много, но при чем здесь это? мы не наш рабочий репозиторий обсуждаем, а технологию. я вам привел пример, что такие объемы бранчатся в свн быстро, а на диске появляется один небольшой файлик.


при том, что:
1) "технология" не может нормально работать с большим кол-вом бранчей и тагов: кол-во ссылок (которые вы ошибочно считаете бесплатными) - O(tags*files), сравните это с O(tags) в git
2) "технология" ограничивает разработчика во многих вещах: 1) кол-ва бранчей 2) необходимостью мучать ***один*** сервер по любому чиху 3) невозможностью управлять коммитами 4) проч.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 13:48 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
это называется COW - copy on write, почитайте про zfs, например. в git создается только один файл и никаких ссылок больше. в svn создаются ссылки на каждый файл. все равно непонятно?
что такое copy-on-write я представляю, вы мне покажите, где создается куча ссылок на файлы в свн, а? поставьте и проверьте, вместо того чтобы рассказывать о некой абстрактной "технологии". ПОКАЖИТЕ уже! я вам говорю, что нихрена подобного НЕТ, я это проверил!
bzzz писал(а):
сотни мегабайт на ассемблере? это какие-то особо тяжелые наркотики.
да, это так.
bzzz писал(а):
2) "технология" ограничивает разработчика во многих вещах: 1) кол-ва бранчей 2) необходимостью мучать ***один*** сервер по любому чиху 3) невозможностью управлять коммитами 4) проч.

1) хз
2) зависит от стиля работы, если нам надо постоянно все держать in sync, иначе и быть не может. и еще хз сколько надо человек, чтобы коммиты мешали друг другу... не было у нас такого никогда. а еще в этом есть свой организационный минус: у нас иногда некоторые забывают коммитить в одну-то центральную репу, а там вообще запутаются, блин:))))
3) с этим я согласился уже, можно больше это не повторять.

bzzz писал(а):
с другой стороны, если у вас сотни мегабайт ассемблерного кода, то какая-то мелочь типа неудобства работы с бранчами вас точно не должна беспокоить.
я тоже думал об этом:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 14:13 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
bzzz писал(а):
это называется COW - copy on write, почитайте про zfs, например. в git создается только один файл и никаких ссылок больше. в svn создаются ссылки на каждый файл. все равно непонятно?
uчто такое copy-on-write я представляю, вы мне покажите, где создается куча ссылок на файлы в свн, а? поставьте и проверьте, вместо того чтобы рассказывать о некой абстрактной "технологии". ПОКАЖИТЕ уже! я вам говорю, что нихрена подобного НЕТ, я это проверил!


показываю: http://svnbook.red-bean.com/en/1.1/ch04s02.html гуголу я верю больше чем людям с сотнями мегабайт ассемблерного кода ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 14:44 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
Цитата:
Cheap Copies

Subversion's repository has a special design. When you copy a directory, you don't need to worry about the repository growing huge—Subversion doesn't actually duplicate any data. Instead, it creates a new directory entry that points to an existing tree. If you're a Unix user, this is the same concept as a hard-link. From there, the copy is said to be “lazy”. That is, if you commit a change to one file within the copied directory, then only that file changes—the rest of the files continue to exist as links to the original files in the original directory.

This is why you'll often hear Subversion users talk about “cheap copies”. It doesn't matter how large the directory is—it takes a very tiny, constant amount of time to make a copy of it. In fact, this feature is the basis of how commits work in Subversion: each revision is a “cheap copy” of the previous revision, with a few items lazily changed within. (To read more about this, visit Subversion's website and read about the “bubble up” method in Subversion's design documents.)

Of course, these internal mechanics of copying and sharing data are hidden from the user, who simply sees copies of trees. The main point here is that copies are cheap, both in time and space. Make branches as often as you want.

с выделенными частями вам проще будет разобраться? я понимаю, гит начинает смотреться менее круто, чем вы думали раньше, что для слепого фанатика (естественно) не допустимо, но что поделать. не верите мне, я же предлагаю - поставьте сами свн и проверьте! и покажите что я не прав, на деле:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 16:29 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
Цитата:

с выделенными частями вам проще будет разобраться? я понимаю, гит начинает смотреться менее круто, чем вы думали раньше, что для слепого фанатика (естественно) не допустимо, но что поделать. не верите мне, я же предлагаю - поставьте сами свн и проверьте! и покажите что я не прав, на деле:)


"the rest of the files continue to exist as links to the original files in the original directory" - это означает, что для каждого файла в этом новом каталоге создается hardlink. man hardlink. "слепой фанатик" хотя бы знает что такое hardlink. а вы похоже верите, что hardlink'и нигде не хранятся.

ну а git, сам по себе, для svn в принципе не по зубам. просто потому что svn централизованный. git diff у меня работает в любом месте, безотносительно подключения к какому-то там серверу, дома я сижу или в самолете. одно это делает svn полностью бессмысленным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 17:35 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
это означает, что для каждого файла в этом новом каталоге создается hardlink.
:)))))))) да вы буквоед, лень включить мозги что ли? я специально для вас выделил слово concept, его не зря там написали. я прекрасно знаю и о хард и о сим-линках. свн это не использует! и никаких новых каталогов в буквальном смысле не создается.
bzzz писал(а):
а вы похоже верите, что hardlink'и нигде не хранятся.
верите во что-то здесь вы - а я взял и проверил. вы меня фанатично убеждаете в том, что сами не видели - это смешно:)
bzzz писал(а):
одно это делает svn полностью бессмысленным.
для вас;) но не для всех. про распределенность давно все понятно уже, это специфичная фича. отчасти я и с свн могу такое проделать: возьму с собой в самолет весь репозиторий. если я один работаю - никакого дискомфорта я не почувствую:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 18:09 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
bzzz писал(а):
одно это делает svn полностью бессмысленным.
для вас;) но не для всех. про распределенность давно все понятно уже, это специфичная фича. отчасти я и с свн могу такое проделать: возьму с собой в самолет весь репозиторий. если я один работаю - никакого дискомфорта я не почувствую:)


здорово, предлагаю так и делать ;) куда там мне с моим "фанатизмом" ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 18:54 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 575
Откуда: Томск
Не удержался решил проверить какие изменения происходят в репе, при создании ветки.
Для теста использовал 314 файлов.
гит отслеживал изменения в репе свн, а свн в свою очередь изменения в репе гит :)
Результат: гит и свн при создании ветки создали по два файла, пару десятков байт.
Попробовал создать по пять веток, результат один и тот же.
Особой разницы в различии по скорости не заметил, кроме того что свн чуть дольше первоначальный коммит делал.
--
Ещё пару слов в сторону гита, изначально мне очень понравилось использовать гит
именно дома и для себя одгого, в связи с тем что:
1) репа хранится в той же директории где и проект
2) репа это только одна директория в корешке проекта
3) после окончания работы над проектом, я делаю архив, тем самым получаю один файл с проектом и полной историей работы над ним. Если понадобилось вернуться к проекту, достаточно распаковать в любое место и продолжить работу как с самим проектом так и с гит.
Последнее время использую гит почти ко всему где хочется иметь историю работы, например для отслеживания версий схем и печатных плат :)

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 19:43 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
Zheleznjakov писал(а):
в связи с тем что:
1) ...
2) ...
3) ...
вот за такие подробности спасибо, это куда ценнее, чем слушать фанатиков с непонятными аргументами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 02 ноя 2011, 21:13 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
Zheleznjakov писал(а):
в связи с тем что:
1) ...
2) ...
3) ...
вот за такие подробности спасибо, это куда ценнее, чем слушать фанатиков с непонятными аргументами.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 03 ноя 2011, 00:17 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
осталось попробовать каждый день, уходя с работы, копировать несколько сот мегабайт на флешку, чтобы дома иметь возможность поглядеть diff, например.
вот же заладил-то:))) из дома я захожу через rdp и делаю все, что надо, если вообще надо из дома работать. и вот как раз нам никакого смысла нет сидеть в изоляции и что-то сохранять в свою репу, кому от этого какой профит-то? никто этого не увидит, не почувствует. а если что-то пофиксил/доделал/переделал/получил результаты - надо чтобы все имели к ним доступ. случаи разные бывают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 03 ноя 2011, 00:40 
Старожил

Зарегистрирован: 25 фев 2011, 21:24
Сообщения: 264
Ink писал(а):
bzzz писал(а):
осталось попробовать каждый день, уходя с работы, копировать несколько сот мегабайт на флешку, чтобы дома иметь возможность поглядеть diff, например.
вот же заладил-то:))) из дома я захожу через rdp и делаю все, что надо, если вообще надо из дома работать. и вот как раз нам никакого смысла нет сидеть в изоляции и что-то сохранять в свою репу, кому от этого какой профит-то? никто этого не увидит, не почувствует. а если что-то пофиксил/доделал/переделал/получил результаты - надо чтобы все имели к ним доступ. случаи разные бывают.


профит очень простой - во время **работы** над патчем можно делать столько коммитов, сколько захочешь. далеко не всегда это можно сделать правильно, за несколько минут и так далее. бывает и над небольшим фиксом работаешь несколько дней. доделал до конца, оформил коммит как положено (слил несколько локальных в один большой, например) - запушил в основную ветку. когда мы работали в cvs (которая ссуть тот же svn), тоже не понимал насколько работа в git удобнее.

к слову, есть системы кроме git - mercurial, например. или bitkeeper. но суть там та же: полноценная локальная репа. с такой не нужно куда-то заходить по rdp, копировать каждый раз сотни мегабайт или пользоваться еще каким-нибудь костылем ... ладно, думаю тем, кто слегка более привередлив чем разработчики сотен мегабайт ассемблерного кода уже смог оценить преимущества такого подхода. при полном отсутствии минусов.

ps. ядро линукса - более 300 мб, из них .S < 4%. разрабатывается тысячами людей уже 20 лет. извиняюсь, что сразу не просек с кем имею дело :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: 03 ноя 2011, 00:55 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
bzzz писал(а):
профит очень простой - во время **работы** над патчем можно делать столько коммитов, сколько захочешь.
делаешь себе ветку и делаешь столько коммитов, сколько надо:) ноу проблем! только и это нам даже особо не надо.
bzzz писал(а):
с такой не нужно куда-то заходить по rdp, копировать каждый раз сотни мегабайт или пользоваться еще каким-нибудь костылем
политика партии проста: ничего не должно быть вынесено за пределы офиса, а ходячая репа - прямое нарушение. к слову.
bzzz писал(а):
ps. ядро линукса - более 300 мб, из них .S < 4%. разрабатывается тысячами людей уже 20 лет.
не надо рассказывать разные истории, достаточно понять, что жизненных ситуаций полно, и не везде так сильно нужен гит. единственное, что бы нам реально помогло - возможность тасовать/отменять коммиты, но и только.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB