Как полагают многие, Mercurial через TortoiseHg имеет очень низкий барьер для входа.
Для тех, кто работает в Windows, это один установщик, а не два (и целый набор вещей, о которых они, возможно, не захотят узнать), а пользовательский интерфейс THg гораздо лучше, чем TortoiseGit + Msysgit .
Анонимные головы
Если вы думаете, что они будут смущены анонимными главами, не поощряйте их использование. Большинство hg
книг придерживаются сбалансированного подхода и учат как топологическим, так и именованным ветвям, и позволяют читателю определить, что наиболее подходит для их использования.
Именованные ветви
Одна вещь , которую я действительно не хватает в git
это hg
«s названные ветви , так что это один вариант. git
ветки хороши, когда вы работаете над ними, но как только вы объедините эту работу с другой веткой, вы потеряете большую часть контекста для этих изменений.
В hg
вас может создать ветку под названием Jira#1234
и всегда быть в состоянии найти все ревизии , связанные с этим исправлением . После того git
, как ваша ветвь объединена и ссылка удалена, вы должны определить, какие ревизии были частью исправления из топологии дерева ревизий. Даже если вы не удалите ссылку, вы все равно будете знать только последний коммит в этой ветке, а не то, кто из его предков был частью этой цепочки коммитов.
закладки
В качестве альтернативы, если вы не хотите использовать именованные ветви, но хотите использовать git
стиль работы с анонимными ветками, вы можете использовать вместо них закладки .
Это может быть лучшим из обоих миров - они изучают git
рабочий процесс, но используют более простые hg
команды.
Index / Cache / Staging area
Лично я думаю, что студентов гораздо больше смущает область git
index / cache / staging, чем hg
анонимные головы. Я предпочитаю hg
делать эту расширенную функциональность необязательной в командной строке, так как git
предполагается, что вы всегда хотите / должны ее использовать.
Я также думаю, что область подготовки поощряет коммиты, которые не были протестированы или даже скомпилированы. Так как во многих местах, где я работал, имелась функция «не фиксировать», если она не компилирует правило, я предпочел бы отложить / спрятать изменения, которые мне сейчас не нужны, перезапустить модульные тесты и зафиксировать версию, которая Я знаю, компилирует.
Когда вы позже обнаружите ошибку, используя hg bisect или git bisect , вы будете благодарны за то, что можете протестировать все ревизии, а не только те, которые компилируются.