Обзор книги Mercurial: The Definitive Guide

Mercurial: The Definitive Guide

Книга написана в 2009 году Брайаном О’Салливаном (Bryan O'Sullivan), одним из авторов распределённой системы управления версий Mercurial. Для человека, который решил познакомиться с Mercurial и озадачился поиском книги по нему, нет никакой сложности наткнуться на эту книгу — других просто нет. Нет, здесь я не утрирую — их в буквальном смысле нет. Есть только эта книга 2009 года (идёт работа над 2-м изданием, но она не окончена). Более того, эта книга доступна абсолютно бесплатно онлайн. По вышеприведённой ссылке можно увидеть, что автор просит нас купить книгу, если то, что мы прочитали онлайн нам понравилось. Я же пошёл обратным путём и купил её сразу — это же Орейли, у них нет плохих книг! Тогда я ещё не знал, что и на орейли бывает салливан. Ну да я забегаю вперёд.

Итак, в книге обычный технический английский без изысков — вполне себе рядовая книга от программиста, который умеет излагать свои мысли на бумаге. Она подразумевает под собой линейное чтение, в процессе которого читатель знакомится с Mercurial. Т.е. после прочтения книги читатель будет более-менее понимать, что из себя представляет (представлял в 2009 году!) эта система, а также как и самое главное — зачем её нужно использовать.

У кого-то может возникнуть резонный вопрос: зачем читать книгу 2009 года в 2017, какой с этого прок? Да, я бы тоже выбрал что-то более свежее, но выбирать не приходится! Кроме того, году в 2011 я читал книгу по Git, первое издание которой тоже датировано 2009 годом и могу сказать, что для понимания Git даже первого издания вполне достаточно. Да, всё течёт, все меняется; да, в нашей сфере всё течёт довольно быстро, но базовые вещи никуда не текут — суть не меняется, а для понимание любой системы достаточно освоения фундамента, на котором она стоит. Новшества знать важно, но их можно изучить отдельно, если есть понимание сути системы.

Исходя из вышенаписанного у меня были определённые требования, которые я выдвинул к книге ещё до её прочтения: после прочтения оной я должен был понимать как Mercurial устроен, и почему я должен захотеть его использовать. Правда я захотел его использовать просто потому, что мне не нравится использование одного только Git — всегда полезно иметь альтернативу, поэтому выбор уже был сделан и хотелось в нём утвердиться. Основным же моим требованием было наличие описания всей внутренней кухни Mercurial, чтобы я смог построить ментальную модель его работы и изгнать магическую составляющую из команд, что используются в повседневной работе. Можно сказать, что в какой-то мере книга с этим справляется, но вот только в «какой-то».

Как оказалась книга представляет собой ничто иное как нарезку из примеров: фактически вводный курс в Mercurial. Т.е. берётся некая функциональность из Mercurial, и приводится набор команд, реализующих эту функциональность. Да, в книге е��ть небольшое раскрытие внутренностей Mercurial, но оно весьма поверхностное — немудрено, ведь в книге масса коротких параграфов (не знаю точно как это назвать, здесь я имею в виду часть текста с заголовком), которые мало или вообще никак не связаны с параграфами следующими. Получается, что описали одну задачу, перескочили на другую и т.д. Конечно, не вся книга так написана, в ней есть немало параграфов объединённых одной темой, но если взять книгу в целом, то она не представляет собой единого манускрипта, который бы помог действительно погрузиться и, возможно, полюбить Mercurial.

Таким образом, получается, что эту книгу можно считать просто вводным курсом в Mercurial, не более того. Кстати, когда отчаявшись понять суть некоторого описанного функционала (хотелось больше подробностей по внутреннему устройству), я зашёл на официальный сайт, чтобы просветиться через справку, я там увидел фактически тот же текст, что и в книге. Более того, сайт ссылается на эту книгу в секции документации к Mercurial. Это на самом деле уже о многом говорит, к сожалению. Всё-таки я привык видеть у Орейли более глубокие книги, а не просто перепечатку пользовательской документации. Это, наверное, первая книга этого издательства, что вызвала глубокое разочарование. А вердикт по этой книге у меня такой: покупать её смысла нет вообще никакого, просто читайте её онлайн, либо же читайте официальную документацию по Mercurial — разницу вы вряд ли заметите.

P.S. Возможно, если бы до этого я не был знаком с Git и не читал книг по нему, у меня и было бы другое отношение к сему творению, но уж вышло как вышло, и, читая эту книгу, я не могу не сравнивать. Не мог не сравнивать Git с Mercurial и то, как обе системы описаны в соответствующих книгах. К сожалению, в сравнении неизменно побеждал Git, и это не могло не повлиять на мою оценку книги. Поэтому я не исключаю, что кому-то она может показаться довольно хорошим экземпляром, хотя и сомневаюсь в этом.