Исходя из того, как сформулирован ваш вопрос, я думаю, что у вас могут быть некоторые недоразумения, связанные с терминологией контроля версий.
У вас должен быть один репозиторий для каждого проекта. Вы можете думать о хранилище просто как о папке в файловой системе. Когда вы инициализируете репозиторий Mercurial в определенной папке, каждый файл в этой папке и любые его подпапки могут быть добавлены в репозиторий для контроля версий. Вам не обязательно добавлять все, но вы сможете добавить все, если хотите.
Вы можете перенести этот локальный репозиторий в удаленный репозиторий, если хотите, либо в виде резервной копии, либо в качестве метода обмена вашим кодом с другими. Но если это просто личный проект, это, скорее всего, не понадобится, тем более что у вас уже есть решение для резервного копирования.
Ветки обычно используются для разделения разных «версий» проекта. Как уже упоминали некоторые люди, это может быть полезным в качестве индивидуального разработчика для опробования метода рефакторинга кода или тестирования другого подхода к конкретной проблеме. Если это не сработает, вам не нужно беспокоиться о том, где найти откат, вы просто поджигаете ветку. Если это сработало, вы сливаете ветку обратно в главный репозиторий («ствол») и продолжаете.
Если вы дошли до того момента, когда вы делаете «релизы» кода, и вам нужно поддерживать старые версии, вам также захочется использовать ветки. Например, представьте, что вы выпускаете версию 1.0, и некоторые люди начинают ее использовать. Пока они его используют, вы в частном порядке продолжаете работу над следующей версией, возможно, 1.1, добавляя функции в ваш ствольный репозиторий. Теперь кто-то обнаружил ошибку в выпущенном коде 1.0, которую нужно исправить, но вы не можете просто исправить ее в стволе и дать им этот код, потому что он не находится в состоянии, которое должно быть выпущено. Вот где ветка 1.0 пригодится. Вы можете исправить ошибку в ветке 1.0 и объединить изменение исправления в ствол, чтобы ошибка также была исправлена там. Затем вы можете переупаковать 1.0 с исправлением и разослать его своим пользователям, не разбираясь в том, как перевести транк в состояние, в котором он может быть опубликован.
Кроме этого, использование Mercurial соло, как правило, не требует особых усилий. Сделайте некоторую работу, и когда вы закончите функцию, предоставьте ей «контрольную точку», к которой вы можете вернуться в будущем при необходимости. Вам не нужно фиксировать каждый раз, когда вы сохраняете или что-то в этом роде, просто делайте это, когда чувствуете, что добавили что-то существенное. Это даст вам хорошую историю проекта, если вам когда-нибудь понадобится просмотреть его.
Для получения дополнительной информации я настоятельно рекомендую уделить некоторое время чтению этой книги: Распределенный контроль версий с Mercurial . Вам не нужно читать продвинутые темы, но, прочитав хотя бы главы 1-5 и 8, вы познакомитесь с Mercurial и управлением версиями в целом.