Re[3]: Git в картинках
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 26.05.11 06:59
Оценка:
Здравствуйте, Centaur, Вы писали:

C>С кодировками имён файлов в git’е Всё Плохо. То есть всё хорошо под *nix’ами, а под Windows плохо. Это потому, что по юниксовой идеологии имена файлов священны и транскодировать их никак нельзя — пришла по протоколу байтовая строка, изволь передать её в функции работы с файлами как есть. А в Windows эти функции как раз работают в 866 или 1251.


Значит, плохо не только в git. В svn у нас, например, умельцы создавали такие имена файлов, которые не удавалось без потерь протолкнуть через дамп репозитария =) Хотя обычные русские имена — проходят. Баги, куда ж без них.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[2]: Git в картинках
От: Dym On Россия  
Дата: 26.05.11 07:19
Оценка: +2 :)
SM>Но почему вы считаете, что создание веток в Subversion — гемор? Очень даже удобная фича.
Фича удобная, никто и не спорит, но создание ветки в SVN все-таки гемор .
Счастье — это Glück!
Re[3]: Git в картинках
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 26.05.11 08:49
Оценка:
Здравствуйте, Dym On, Вы писали:

SM>>Но почему вы считаете, что создание веток в Subversion — гемор? Очень даже удобная фича.

DO>Фича удобная, никто и не спорит, но создание ветки в SVN все-таки гемор .
Да ну бросьте же. Branch/Tag, ввели номер ревизии откуда гнуть, ввели название, поставили галочко внизу — и все. А как вам хотелось — чтоб за вас название придумали? =)

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[2]: Git в картинках
От: Тот кто сидит в пруду Россия  
Дата: 26.05.11 08:56
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>За курс молодого бойца — спасибо. Но почему вы считаете, что создание веток в Subversion — гемор? Очень даже удобная фича. Никто в твои изменения не лезет, а ты можешь постепенно ваять новую функцию хоть два дня, хоть неделю, хоть месяц. И как раз не нужно на локальном компе держать. К примеру, я сейчас в SVN каждый день прыгаю, как минимум, по 2 веткам в своем репозитарии еще иногда еще по одной в чужом. И еще по 1-2 своим собственным, отведенным на вялотекущие задачи сроком от нескольких дней до неопределенного.


SM>Спору нет, у git есть преимущества. Но и конкурентам предыдущего поколения не стоит придумывать новые недостатки сверх тех, которыми они и так страдают...


У SVN наконец заработал мердж с ветками? Раньше, насколько помню, беспроблемно влить изменения из мастера в свою ветку можно было ровно один раз — потом SVN начинал считать, что это я все сам придумал и предлагал разрешать конфликты для каждого из уже влитых изменений.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[4]: Git в картинках
От: Dym On Россия  
Дата: 26.05.11 09:17
Оценка: +1 -1
SM>А как вам хотелось — чтоб за вас название придумали? =)
Хотелось бы как в Git'е
Счастье — это Glück!
Re[3]: Git в картинках
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 26.05.11 09:45
Оценка:
Здравствуйте, Тот кто сидит в пруду, Вы писали:

ТКС>У SVN наконец заработал мердж с ветками? Раньше, насколько помню, беспроблемно влить изменения из мастера в свою ветку можно было ровно один раз — потом SVN начинал считать, что это я все сам придумал и предлагал разрешать конфликты для каждого из уже влитых изменений.

Ну как... если честно вливать одни и те же изменения по несколько раз, мержилка может и не распознать дублирование. С другой стороны — а для чего несколько раз мержить одно и то же? Сначала залили коммиты до M-ного, в другой раз — c M+1-го по N-ный... Я обычно прям в коммите и пишу — слил такую-то ветку до такой-то ревизии.
Ну и потом, с какой-то версии они — чтобы не высматривать по логам, докуда мы уже успели слить — ввели запоминание истории сливов, чтобы можно было и на глаз видеть, что уже слито, а что нет, и автоматически тоже пропускать уже слитое. Хранится история в проперте svn:mergeinfo у конкретного сливаемого элемента (напр., сливаем "папочку" trunk — ей и пишется).

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[4]: Git в картинках
От: Тот кто сидит в пруду Россия  
Дата: 26.05.11 10:04
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

ТКС>>У SVN наконец заработал мердж с ветками? Раньше, насколько помню, беспроблемно влить изменения из мастера в свою ветку можно было ровно один раз — потом SVN начинал считать, что это я все сам придумал и предлагал разрешать конфликты для каждого из уже влитых изменений.

SM>Ну как... если честно вливать одни и те же изменения по несколько раз, мержилка может и не распознать дублирование. С другой стороны — а для чего несколько раз мержить одно и то же? Сначала залили коммиты до M-ного, в другой раз — c M+1-го по N-ный... Я обычно прям в коммите и пишу — слил такую-то ветку до такой-то ревизии.
SM>Ну и потом, с какой-то версии они — чтобы не высматривать по логам, докуда мы уже успели слить — ввели запоминание истории сливов, чтобы можно было и на глаз видеть, что уже слито, а что нет, и автоматически тоже пропускать уже слитое. Хранится история в проперте svn:mergeinfo у конкретного сливаемого элемента (напр., сливаем "папочку" trunk — ей и пишется).

Ну вот в этом и отличие — в гите просто переключаешься в свою ветку и забираешь изменения из последнего мастера (trunk), или любой другой ветки, хоть каждый день. Не забивая голову ненужными подробностями, и никаких левых конфликтов при этом не возникает. Собственно, насколько я понимаю, именно об этом речь и идет, когда говорят о легкой работе с ветками.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[2]: Git в картинках
От: IT Россия linq2db.com
Дата: 26.05.11 15:07
Оценка:
Здравствуйте, alvas, Вы писали:

A>

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

A>А с этого места поподробней, пожалуйста

Что тут может быть подробнее? В svn бранчинг — это наказание и желательно его избегать. В git — развлечение. Такие вот побробности
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Git в картинках
От: alvas  
Дата: 26.05.11 15:35
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, alvas, Вы писали:


A>>

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

A>>А с этого места поподробней, пожалуйста

IT>Что тут может быть подробнее? В svn бранчинг — это наказание и желательно его избегать. В git — развлечение. Такие вот побробности


А я думал что ответ будет что-то типа: Когда я сел за написание этой статьи, то ... и давай расписывать как вы использовали git для написание этой статьи ...
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[3]: Git в картинках
От: М.Р. https://www.wincatalog.com
Дата: 26.05.11 16:06
Оценка:
Здравствуйте, Centaur, Вы писали:

C>... А пока стоит принять правило, что имена файлов должны вписываться в us-ascii. И путь к локальному репозиторию, кстати, тоже.


Да я обычно придерживаюсь этого правила, да тут невесть откуда завалялся файлик... А вообще, после переключения кодировки на windows-1251 проблема ушла. Я просто задумался — либо оставить кодировку, либо файлик переименовать...
WinCatalog — Disk Catalog Software for Windows
Re[4]: Git в картинках
От: dr.Chaos Россия Украшения HandMade
Дата: 26.05.11 16:48
Оценка:
Здравствуйте, adontz, Вы писали:


A>Хм. В меркуриале за апачем можно давать права доступа на отдельные папки, не только на репозиторий целиком. Но с другой строны, сам меркуриал поддерживает аутентицикацию.


С git-ом идёт скрипт update-paranoid. Так вот он при наличии нормальной аутентификации позволяет задавать права вплоть до веток. Причём как за апачем, так и за ssh.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[5]: Git в картинках
От: dr.Chaos Россия Украшения HandMade
Дата: 26.05.11 16:52
Оценка:
Здравствуйте, ., Вы писали:

.>Да, афаик нельзя.

update-paranoid, gitosys, gitolite
.>А можно привести пример полезного юскейса для этого? Раньше в svn таким пользовался, но там папки по сути были независимые проекты для разных команд, и делалось это лишь потому, что так удобнее администрировать, чем плодить кучу репозиториев.

Ну например, так делается запрещение на удаление tag-ов, в master могут сливать только интеграторы, в topic-ветки может писать только програмер/его менеджер и т.п. Т.е. для поддержания целостности.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[4]: Git в картинках
От: Аноним  
Дата: 26.05.11 18:33
Оценка: 1 (1)
Здравствуйте, Roman Odaisky, Вы писали:

А>>Вы не поверите, но большинство людей ждут именно картинок с указаниями куда смотреть и что жать в какой момент, т.е. чтобы вообще всё было разжовано и показано без особых пробелов.

RO>Так RSDN (я тешу себя надеждой) отнюдь не представляет собой средоточие таких людей.
С чего бы это?
Re[4]: Git в картинках
От: IT Россия linq2db.com
Дата: 26.05.11 18:41
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

А>>Вы не поверите, но большинство людей ждут именно картинок с указаниями куда смотреть и что жать в какой момент, т.е. чтобы вообще всё было разжовано и показано без особых пробелов.

RO>Так RSDN (я тешу себя надеждой) отнюдь не представляет собой средоточие таких людей.

Мне тоже кажется, что нет ничего плохого в том, чтобы снизить порог вхождения в технологию пусть даже теми же картинками.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Git в картинках
От: Аноним  
Дата: 26.05.11 19:09
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>>>Но почему вы считаете, что создание веток в Subversion — гемор? Очень даже удобная фича.

DO>>Фича удобная, никто и не спорит, но создание ветки в SVN все-таки гемор .
SM>Да ну бросьте же. Branch/Tag, ввели номер ревизии откуда гнуть, ввели название, поставили галочко внизу — и все. А как вам хотелось — чтоб за вас название придумали? =)
Не всегда имеется возможность создать бранч самому, а здесь это "прошито" в дезайне.
Re[5]: Git в картинках
От: dr.Chaos Россия Украшения HandMade
Дата: 26.05.11 19:53
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Roman Odaisky, Вы писали:


А>>>Вы не поверите, но большинство людей ждут именно картинок с указаниями куда смотреть и что жать в какой момент, т.е. чтобы вообще всё было разжовано и показано без особых пробелов.

RO>>Так RSDN (я тешу себя надеждой) отнюдь не представляет собой средоточие таких людей.

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


Вообще, честь тебе и хвала в деле популяризации git-а. Ибо его считают каким-то шаманским сборником заклятий чОрной командной строки. А тут всё гламурненько. Помниться правда год назад GitExtention неилюзорно глючил, как, впрочем, и tortoriseHG . Базар в плане ГУИ хорошь из коробки и, кстати, может выступать просто удобным интерфейсом к svn-овскому репозиторию.

Романа я, правда, тоже понимаю ибо чОрной магии обучен хочется заклинаний левелом повыше.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[6]: Git в картинках
От: IT Россия linq2db.com
Дата: 26.05.11 20:09
Оценка:
Здравствуйте, dr.Chaos, Вы писали:

DC>Романа я, правда, тоже понимаю ибо чОрной магии обучен хочется заклинаний левелом повыше.


Да я и сам бывает заклинаниями балуюсь. Но всё по дилетантски — с вопросом в гугль, команду git в слипборд, Git bash прямо из тулбара Git Extensions, paste, edit, enter. Но такое бывает надо не часто
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Git в картинках
От: AlexNek  
Дата: 26.05.11 21:57
Оценка:
Здравствуйте, ., Вы писали:

.>Здравствуйте, AlexNek, Вы писали:


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

AN>> Но как я понял из описания — это просто синхронизатор двух репозиториев, да и еще с командной строкой
.>Да. В общем-то в любой совместной работе в гите ты синхронизируешь два репозитория. Если используешь git svn, то просто второй репозиторий — svn. Правда так как он довольно примитивный, приходится шаманить слегка.
.>Насчёт командной строки... там в общем-то всего 2 команды надо. По-мему в tortoisegit есть, но я ни разу не использовал.

Сколько нужно пока не знаю, но списки команд довольно приличные.
Кстати, решил сегодня попробовать git svn. Пока ничего отрицательного, но комп пришлось оставить включенным, оказывается в хеаде почти 79 тыс. файлов.
Кому еще захочется, вот пару ссылок
An introduction to git-svn for Subversion/SVK users and deserters
Downloads — msysgit — Git for Windows Говорят, что git svn есть только 3,4 ссылках.
Git Extensions | Download Git Extensions software

AN>> Вот нашел еще один огромный минус

AN>>

AN>> Основными достоинствами git (в сравнении с другими распределёнными системами контроля версий) в настоящее время принято считать:
AN>> * Unix-ориентированность и глубокий unixway во всём;

.>Эээ... оно не сильно отлчиается от svn.
Они вроде и есть но как то еще ни разу не попадались

AN>> .>В Идее есть суперская интеграция, есть tortoisegit, есть gitk, git gui, gitextensions... но я почему-то использую коммандную строку в большинстве случаев.

AN>> А что такое "Идея"? И что же лучше для студии исходя из того, что я ненавижу командные строки.
.>Jetbrains IDEA. Хз... дело вкуса. Надо пробовать самому.
Java IDE. Не... такое вообще не пробуем.

AN>> AN>> Также не совсем понятно как Гиту удается минимизировать конфликты.

AN>> .>Тем, что коммиты маленькие.
AN>> Так размер коммита зависит от программиста. Если для правки ошибки нужно исправить Х строк, так эти Х будут всегда.
.>Нет. Если используешь svn, то перед тем как коммитить — надо точно знать, что коммитишь и не поломается ли чего у других.
.>При использовании git коммитишь когда завершаешь какую-то мысль. Т.е. например делаешь какую-то фичу. Чтобы её сделать — надо: что-то порефакторить, написать новый код, написать тест, добавить кнопки для новой фичи, поправить баги, дописать заглушки и т.п. Так вот коммитить можешь после каждого этапа.
Но получается только локально, а когда все закончил надо то в основную ветку забросить.

AN>> .>[делаем хотфикс обнаруженных багов]

AN>> .>git commit
AN>> .>git push

AN>>

AN>> вносим изменения в удаленный репозитарий (удаленную ветку)

AN>> А тут обломов не бывает?
.>Если кто-то что-то до тебя закоммитил, то при наличии конфликтов ругнётся, конечно. Будешь должен смержить или оставить мерж на потом.
.>Или что ты имеешь в виду под обломом?
Да конфиликты прежде всего. А если оставлю мерж на потом как же дальше работать?
Cообщение написано в ... << RSDN@Home 1.2.0 alpha 5-AN rev. 2906>>
Re[12]: Git в картинках
От: . Великобритания  
Дата: 27.05.11 07:27
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN> Сколько нужно пока не знаю, но списки команд довольно приличные.

AN> Кстати, решил сегодня попробовать git svn. Пока ничего отрицательного, но комп пришлось оставить включенным, оказывается в хеаде почти 79 тыс. файлов.
Да, есть такой момент... У меня один репозиторий с десятком тысяч ревизий и кучей бинарников (кто придумал скомпиленное коммитить?!) скачивался несколько дней...

AN> .>Эээ... оно не сильно отлчиается от svn.

AN> Они вроде и есть но как то еще ни разу не попадались
? Не понял.

AN> .>Нет. Если используешь svn, то перед тем как коммитить — надо точно знать, что коммитишь и не поломается ли чего у других.

AN> .>При использовании git коммитишь когда завершаешь какую-то мысль. Т.е. например делаешь какую-то фичу. Чтобы её сделать — надо: что-то порефакторить, написать новый код, написать тест, добавить кнопки для новой фичи, поправить баги, дописать заглушки и т.п. Так вот коммитить можешь после каждого этапа.
AN> Но получается только локально, а когда все закончил надо то в основную ветку забросить.
Ну да, мержишь потом, сразу все коммиты. Притом история сохраняется (или не сохраняется, если решишь её поредактировать).

AN> Да конфиликты прежде всего. А если оставлю мерж на потом как же дальше работать?

В другой ветке. Ещё можно историю как-то поредактировать, чтобы количество конфликтов уменьшить.
avalon 1.0rc3 rev 0, zlib 1.2.3.4
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[13]: Git в картинках
От: AlexNek  
Дата: 27.05.11 16:30
Оценка:
Здравствуйте, ., Вы писали:

.>Здравствуйте, AlexNek, Вы писали:


.>(кто придумал скомпиленное коммитить?!)

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

AN>> .>Эээ... оно не сильно отлчиается от svn.

AN>> Они вроде и есть но как то еще ни разу не попадались
.>? Не понял.
Ну команды для svn вроде есть, но как то в практике еще ни разу не попадались.

AN>> .>Нет. Если используешь svn, то перед тем как коммитить — надо точно знать, что коммитишь и не поломается ли чего у других.

AN>> .>При использовании git коммитишь когда завершаешь какую-то мысль. Т.е. например делаешь какую-то фичу. Чтобы её сделать — надо: что-то порефакторить, написать новый код, написать тест, добавить кнопки для новой фичи, поправить баги, дописать заглушки и т.п. Так вот коммитить можешь после каждого этапа.
AN>> Но получается только локально, а когда все закончил надо то в основную ветку забросить.
.>Ну да, мержишь потом, сразу все коммиты. Притом история сохраняется (или не сохраняется, если решишь её поредактировать).
Ну так когда сразу все коммиты, это равносильно svn коммит, в чем "качество" конфликтов будет отличаться?

AN>> Да конфиликты прежде всего. А если оставлю мерж на потом как же дальше работать?

.>В другой ветке. Ещё можно историю как-то поредактировать, чтобы количество конфликтов уменьшить.
Это как? Обнаружили конфликт, прерываем, берем все в новую ветку?

Кстати сегодня поигрался немного. Что выяснилось?
— Локальная копия взятая Гитом из svn и есть рабочий репозиторий гита.
— каталоги с пробелами или не ASCII символами гит не любит, хотя в Гит экстеншион показываются нормально.
— репозиторий гита весьма хорошо упакован
— обновления из svn ищутся быстрее черепахи.
— визуал Гит от Гит экстеншион не захотел грузится в мою 2008 студию
— ни в проводнике ни в Гит экстеншион нифига не видно состояний файла/папки (под контролем/модифицирован/не изменен)
— без коммандной строки нмфига не сделать. Добавил пару файлов в подконтрольный гиту каталог, еле нашел их в сташе. при попытке добавить в репозиторий получаю ошибку

C:\msysgit\cmd\git.cmd stash apply Current working dir changes
fatal: ambiguous argument 'Current': unknown revision or path not in the working tree.
use '--' to separate paths from revisions
Done

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

Так что пока отрицательных состояний больше чем положительных, но бум продолжать.
Cообщение написано в ... << RSDN@Home 1.2.0 alpha 5-AN rev. 2906>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.