Re[4]: Необходимость Git
От: . Великобритания  
Дата: 17.10.14 00:10
Оценка: 31 (3)
Здравствуйте, Нахлобуч, Вы писали:

Н> A>проще — согласен, только откуда там больше возможностей?


Н> А вопросом на вопрос можно? Спасибо. Что такого умеет Git, что не умеет Mercurial?

Может я всего не знаю о hg, но мне кажется, что из этого точно много чего не умеет:
    octopus merge — слияние больше чем двух веток сразу.
    subtree merge — каталог репозитория мержится туда-сюда с другим репозиторием
    index — Очень полезно во время разрешения конфликтов. Супер вещь для любителей командной строки, для оформления аккуратных коммитов.
    rerere — Reuse recorded resolution of conflicted merges
    notes — добавление меток, аттачей поверх иммутабельной истории.
    reflog — история истории.
    gerrit — gated commits, peer review тулза с веб-интерфейсом, "submit over the web" фича. Идеальна для enterprise разработки.
    orphan branch — отдельная история в том же репо. Польза: тут, тут, notes и gerrit настройки репо тоже сирот эксплуатируют.
    author/committer — инфа в коммите — тот кто сделал изменение и тот кто его опубликовал — разные люди|даты.
    filter-branch — хитровывернутое перелопачивание репозитория для очищения истории. Например, массово заменить табы-пробелы.
    log pickaxe — массовый поиск по истории регекспами.
    git annex — манипуляция массивными файлами.
    tracking file permissions, symlinks
    .gitattributes — кастомизация всяких свойств различных файлов. Например, указать специальный алгоритм мержа файлов в некотором каталоге или unix line endings для всех .sh файлов.
    shared clone — легковесный клон, который использует данные из репо на том же диске.
    grafts/replace — механизмы для рефакторинга истории.
    Простой, но очень мощный и гибкий формат репозитория.
Ы?

Н> Наоборот -- это да. В Git'е даже близко нет аналога веток из Mercurial и поэтому, помимо всего прочего, история коммитов изобилует "merged remote tracking branch x/y from zzz".

И это правильно Как оно работает в mercurial — это противоречит духу DVCS совершенно, убогое наследие SVN. Вызывает трудности если требудется мержиться из многих репозиториев.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 17.10.2014 0:21 · . Предыдущая версия . Еще …
Отредактировано 17.10.2014 0:18 · . Предыдущая версия .
Отредактировано 17.10.2014 0:17 · . Предыдущая версия .
Re[5]: Необходимость Git
От: . Великобритания  
Дата: 17.10.14 00:26
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ> T>Ага только централизованная система у себя в серверной в прямой доступности, а распределенная на битбакете, появляется дополнительный канал Офис <-> репа, а его наличие и работоспособность зависит от провайдера и следующего аплинка(ов). Первоначально речь шла о билд сервере который делает сборки и ему надо обязательно выгребать изменения. Для разработчиков временная недоступность относительно безразлична.

SVZ> Вах, а что, гит не ставится на локальном сервере?
Так там всё SVN-ом забито.

The Mozilla CVS repository was 2.7GB, imported to Subversion it grew to 8.2GB. Under Git, it shrunk to 450MB. Given that a Mozilla checkout is around 350MB, it's fairly nice to have the whole project history (from 1998) in only slightly more space.

avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: Необходимость Git
От: Sinix  
Дата: 17.10.14 05:06
Оценка:
Здравствуйте, ., Вы писали:

S>> Это только то, что я активно использую.

.>Ужас. Убожество. Застряли в развитии лет на пять-семь по сравнению с IntelliJ.

Ну эт да, одна IntelliJ д'Артаньян, все остальные — микрософты

Всё вышеперечисленное (за исключением разве что истории произвольного блока кода, не попадалось) прикручивается расширениями студии.
Вот дифф (хотя для сложных случаев я бы предпочёл semantic merge).
Вот подсветка изменений.

Речь вообще-то шла только об одном из окон ankhsvn. Вот с ним — беда-беда, похожего для гита/hg в студии не попадалось.
Re[2]: Необходимость Git
От: GarryIV  
Дата: 17.10.14 05:23
Оценка:
Здравствуйте, Miroff, Вы писали:

M>Когда говорят про "легкий мержинг и меньше конфликтов" имеют в виду следующее: git позволяет переписывать историю коммитов. Это дает тебе возможность перед пушем ветки на сервер сделать rebase к текущему master, что в свою очередь приведет к тому что влитие этой ветки в master гарантированно будет fast-forward слиянием без конфликтов. Естественно при ребейзевозможны конфликты, но

M>1) их будешь разрешать автор кода, а не его коллеги которые без понятия что он там написал
Как будто этого нельзя делать в svn? Автор ветки мержит мастер в свою ветку и разрешает конфликты. Далее мерж этой ветки в мастер совершенно механическая операция.
WBR, Igor Evgrafov
Re[3]: Необходимость Git
От: Cyberax Марс  
Дата: 17.10.14 05:29
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Как будто этого нельзя делать в svn? Автор ветки мержит мастер в свою ветку и разрешает конфликты. Далее мерж этой ветки в мастер совершенно механическая операция.

И в результате получается неудобоваримая история.
Sapienti sat!
Re[6]: Необходимость Git
От: Cyberax Марс  
Дата: 17.10.14 05:32
Оценка: :)))
Здравствуйте, Sinix, Вы писали:

.>>Ужас. Убожество. Застряли в развитии лет на пять-семь по сравнению с IntelliJ.

S>Ну эт да, одна IntelliJ д'Артаньян, все остальные — микрософты
Именно так.

S>Всё вышеперечисленное (за исключением разве что истории произвольного блока кода, не попадалось) прикручивается расширениями студии.

Неа.

S>Вот дифф (хотя для сложных случаев я бы предпочёл semantic merge).

S>Вот подсветка изменений.
Ужас. IntelliJ понимает именно семантику кода — используемые типы, может делать рефакторинг и т.д. Тут просто подсветка блоков по matching'у скобок + простая подсветка синтаксиса.

Разница как между VIM и MSVS.

S>Речь вообще-то шла только об одном из окон ankhsvn. Вот с ним — беда-беда, похожего для гита/hg в студии не попадалось.

ЩИТО?

Ну хоть на IntelliJ посмотри. Или на гитхабовский клиент.
Sapienti sat!
Re[4]: Необходимость Git
От: GarryIV  
Дата: 17.10.14 05:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

GIV>>Как будто этого нельзя делать в svn? Автор ветки мержит мастер в свою ветку и разрешает конфликты. Далее мерж этой ветки в мастер совершенно механическая операция.

C>И в результате получается неудобоваримая история.

Где? Я как бы каждый день этим пользуюсь?
WBR, Igor Evgrafov
Re[5]: Необходимость Git
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 17.10.14 07:14
Оценка: 24 (1)
Здравствуйте, ., Вы писали:

.>octopus merge — слияние больше чем двух веток сразу.


Этого нет by design.

.>subtree merge — каталог репозитория мержится туда-сюда с другим репозиторием


Не совсем понял, что это.

.>index — Очень полезно во время разрешения конфликтов. Супер вещь для любителей командной строки, для оформления аккуратных коммитов.


Есть hg record, который так же позволят коммитить файлы по частям. Индекса нет, верно.

.>rerere — Reuse recorded resolution of conflicted merges

.>notes — добавление меток, аттачей поверх иммутабельной истории.

Этого нет.

.>reflog — история истории.


Есть Changeset Evolution, который суть DVCS для DVCS (распределенный, коллективно редактируемый Reflog)

.>gerrit — gated commits, peer review тулза с веб-интерфейсом, "submit over the web" фича. Идеальна для enterprise разработки.


Это не совсем Git.

.>orphan branch — отдельная история в том же репо. Польза: тут, тут, notes и gerrit настройки репо тоже сирот эксплуатируют.


Такое может.

.>author/committer — инфа в коммите — тот кто сделал изменение и тот кто его опубликовал — разные люди|даты.


Такое нет.

.>filter-branch — хитровывернутое перелопачивание репозитория для очищения истории. Например, массово заменить табы-пробелы.


hg convert

.>log pickaxe — массовый поиск по истории регекспами.


hg revsets в разы мощнее.

.>git annex — манипуляция массивными файлами.


hg largefiles

.>tracking file permissions, symlinks


Этого не знаю.

.>.gitattributes — кастомизация всяких свойств различных файлов. Например, указать специальный алгоритм мержа файлов в некотором каталоге или unix line endings для всех .sh файлов.

.>shared clone — легковесный клон, который использует данные из репо на том же диске.

Mercurial использует симлинки.

.>grafts/replace — механизмы для рефакторинга истории.


Всё это есть.

.>Простой, но очень мощный и гибкий формат репозитория.


Тут да.
HgLab: Mercurial Server and Repository Management for Windows
Re[5]: Необходимость Git
От: Cyberax Марс  
Дата: 17.10.14 08:12
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>>>Как будто этого нельзя делать в svn? Автор ветки мержит мастер в свою ветку и разрешает конфликты. Далее мерж этой ветки в мастер совершенно механическая операция.

C>>И в результате получается неудобоваримая история.
GIV>Где? Я как бы каждый день этим пользуюсь?
Это что-то меняет в том, что история получается жутко нелинейной, особенно при множественных merge'ах?
Sapienti sat!
Re[3]: Необходимость Git
От: ins-omnia СССР  
Дата: 17.10.14 11:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Гит, по секрету тебе скажу, сейчас для студии совсем не чужеродный, доступен искаропки и используется внутри МС в том числе и теми, кто пишет студию и инструменты для нее.


Эта интерграция какая-то малоюзабельная. Проще работать с гитом из Тортисы или вообще из консоли
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Re[2]: Необходимость Git
От: neFormal Россия  
Дата: 17.10.14 11:28
Оценка:
Здравствуйте, iZEN, Вы писали:

ZEN>Вот тут товарищ тоже измучился с ним: https://www.linux.org.ru/forum/general/10897902


товарищ не чтит доки.
более того, он не чтит даже то, что git ему прямым текстом написал.
...coding for chaos...
Re[6]: Необходимость Git
От: ins-omnia СССР  
Дата: 17.10.14 11:49
Оценка:
Здравствуйте, Нахлобуч, Вы писали:


.>>subtree merge — каталог репозитория мержится туда-сюда с другим репозиторием


Н>Не совсем понял, что это.


На практике это значит, что можно импортировать другой репозиторй/каталог репозитория как подкаталог своего репозитория.
В дальнейшем с этим каталогом можно работать как со снапшотом исходного репозитория: git subtree pull, git subtree push, git subtree merge.
В остальном этот каталог ничем не отличается от других, в этом преимущество перед субмодулями.

.>>reflog — история истории.


Н>Есть Changeset Evolution, который суть DVCS для DVCS (распределенный, коллективно редактируемый Reflog)


Пришлось перейти на гит как раз когда эта штука появилась. На данный момент её уже используют?

.>>git annex — манипуляция массивными файлами.


Н>hg largefiles


Annex по сути отдельная программа. Умеет всё вплоть до работы с амазоновским хранилищем.
largefiles это костыль. Официально не рекомендован.
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Re[6]: Необходимость Git
От: . Великобритания  
Дата: 17.10.14 12:17
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Ну эт да, одна IntelliJ д'Артаньян, все остальные — микрософты

Так поделаешь-то, если оно так и получается. Вот допилят clion, и плюсовики со Студии соскочат. Зачем микрософту стараться, ведь у них родной шарп, и куда денешься с подводной лодки?

S>Всё вышеперечисленное (за исключением разве что истории произвольного блока кода, не попадалось) прикручивается расширениями студии.

S>Вот дифф (хотя для сложных случаев я бы предпочёл semantic merge).
Если оно и правда работает и юзабельно, то уже хорошо, становится похоже на IDEA9 или 10 (версия <2010 года). Сейчас пилят IDEA14.

S>Вот подсветка изменений.

И что характерно — только для git (и вообще специфичный софт для каждой vcs). SVN как всегда, лесом.

S>Речь вообще-то шла только об одном из окон ankhsvn. Вот с ним — беда-беда, похожего для гита/hg в студии не попадалось.

В IntelliJ вшита обобщённая поддержка vcs, так что таких бед нет.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: Необходимость Git
От: BRAhMS  
Дата: 17.10.14 12:37
Оценка: +1
Здравствуйте, neFormal, Вы писали:

F>товарищ не чтит доки.

F>более того, он не чтит даже то, что git ему прямым текстом написал.
Надо признать, у git-а таки отвратительные доки.
Re[6]: Необходимость Git
От: . Великобритания  
Дата: 17.10.14 12:51
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

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


.>>octopus merge — слияние больше чем двух веток сразу.

Н>Этого нет by design.
Почему? В смысле специально запрещено? Или неудачно выбранный формат репозитория?

.>>subtree merge — каталог репозитория мержится туда-сюда с другим репозиторием

Н>Не совсем понял, что это.
Когда ты включаешь исходники 3rd party репо как обычный подкаталог в твой репо. Так можно делать и возможность обмена изменениями туда-сюда остаётся.
http://git-scm.com/book/en/Git-Tools-Subtree-Merging

.>>index — Очень полезно во время разрешения конфликтов. Супер вещь для любителей командной строки, для оформления аккуратных коммитов.

Н>Есть hg record, который так же позволят коммитить файлы по частям. Индекса нет, верно.
Тут не просто по частям коммитить, а выбрать точно что ты хочешь закоммитить и закоммитить. Скажем, "добавить пятый кусок файла qer/asdf.txt, добавить каталог abc, исключить подкаталоги abc/de, abc/fe/xy, смотрим получившийся дифф, добавить девятый блок, коммитим". И всё быстро, а не бешенно кликая мышкой по чекбоксам и деревьям, или сочиняя длиннющуу commandline которая пытается всё сделать одним махом. При конфликтах — неконфликтные файлы уже добавлены в индекс, видны конфликты, которые после разрешения можно ещё раз просмотреть, отфильтровав неконфликтные.

.>>reflog — история истории.

Н>Есть Changeset Evolution, который суть DVCS для DVCS (распределенный, коллективно редактируемый Reflog)
Это не то. reflog показывает историю того, что ты делал — вот ты переключился на бранч, вот ты сделал cherry-pick, вот замержил, вот заребейзил, вот reset, вот stash и т.п.

.>>gerrit — gated commits, peer review тулза с веб-интерфейсом, "submit over the web" фича. Идеальна для enterprise разработки.

Н>Это не совсем Git.
Однако архитектура git хорошо способствует этой тулзе. На hg такое реализовать было бы сложнее.

.>>log pickaxe — массовый поиск по истории регекспами.

Н>hg revsets в разы мощнее.
Чем? git log, git rev-list тоже не лыком шиты.

.>>git annex — манипуляция массивными файлами.

Н>hg largefiles
Может я что-то не понял, но оно какое-то примитивное, вроде. Например, подразумевает "The central store". Какой же это DVCS? annex поддерживает реальные distributed workflow для больших файлов.

.>>grafts/replace — механизмы для рефакторинга истории.

Н>Всё это есть.
А подробнее? Поменять родителей коммита? Соединить две независимые истории в одну линию?

.>>Простой, но очень мощный и гибкий формат репозитория.

Н>Тут да.
И благодаря этому получается много плюшек и при этом всё очень просто.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: Необходимость Git
От: neFormal Россия  
Дата: 17.10.14 12:56
Оценка:
Здравствуйте, BRAhMS, Вы писали:

F>>товарищ не чтит доки.

F>>более того, он не чтит даже то, что git ему прямым текстом написал.
BRA>Надо признать, у git-а таки отвратительные доки.

хз, ProGit обычно хватает.
а в man я лезу только за флажками.
...coding for chaos...
Re[5]: Необходимость Git
От: BRAhMS  
Дата: 17.10.14 13:41
Оценка:
Здравствуйте, neFormal, Вы писали:

F>хз, ProGit обычно хватает.

F>а в man я лезу только за флажками.
Я, в основном. тоже. Но попервах очень трудно пользоваться их доками.
К примеру вот дока по push:
git push
Имеется минимум познаний гита и требуется удалить ремоутный бранч. Найти для этого способ будет непросто, хотя операция должна быть элементарной.
Re[4]: Необходимость Git
От: . Великобритания  
Дата: 17.10.14 13:46
Оценка: +1
Здравствуйте, BRAhMS, Вы писали:

F>>товарищ не чтит доки.

F>>более того, он не чтит даже то, что git ему прямым текстом написал.
BRA>Надо признать, у git-а таки отвратительные доки.
Они своеобразные (git help я имею в виду, книги и прочее обычно гораздо дружелюбнее). Они подразумевают понимание происходящего. А новички лезут со своим привычным пониманием, вот я делал "svn add", давай-ка посмотрю ключики "git add" — ой а что это??!
Когда вникаешь в суть, то доки воспринимаются очень хорошо — точно, аккуратно, всё по делу. Просто справочник. Для обучения есть другие материалы.
steep learning curve, как говорится.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: Необходимость Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 17.10.14 14:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Pzz>>Нет. В репозитории не делается ничего. Репозиторий только хранит информацию. Все остальное делается локально.


AVK>Но локально у гита весь репозиторий.


По контексту я предполагаю, что народ репозиторием назвал сервер. Могу, конечно, ошибаться.
Re[6]: Необходимость Git
От: GarryIV  
Дата: 17.10.14 15:01
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>И в результате получается неудобоваримая история.

GIV>>Где? Я как бы каждый день этим пользуюсь?
C>Это что-то меняет в том, что история получается жутко нелинейной, особенно при множественных merge'ах?

Никак не пойму твоих проблем. Что такое нелинейная история?
WBR, Igor Evgrafov
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.