Я уже довольно давно использую Mercurial для своих программных проектов, так что это был логичный шаг, чтобы позволить ему справиться и с остальными моими версиями. Первым шагом в этом направлении будет то, что Mercurial будет обрабатывать файлы конфигурации, которые я изменяю вручную в моей системе Linux. К сожалению, я тут натолкнулся на несколько загадок:
Mercurial не хранит метаданные файла (владение, права доступа, расширенные атрибуты).
Mercurial не будет обрабатывать файлы, которые не находятся в каталоге репозитория.
Я полагаю, что я нашел решение для (1), хотя, по-видимому, оно включает изменение источника отдельной утилиты и немного hgrc магия.
Второй момент кажется более хитрым: я не хочу помещать репозиторий Mercurial в корень файловой системы (/
) по разным причинам. К сожалению - по вполне допустимой очень веской причине - Mercurial не будет обрабатывать файлы, находящиеся вне корня хранилища, ни напрямую, ни через символические ссылки.
Возможно, я мог бы написать скрипт-обертку, который использовал бы, например, mount --bind
или unionfs , чтобы Mercurial мог получить доступ к корневой файловой системе. В прошлом я писал похожий сценарий, но он ни в коем случае не был прозрачным, и мне приходилось прыгать через много обручей при его использовании - сделать его правильно было бы сложно, особенно если я хочу обрабатывать абсолютные пути к файлам.
В этот момент я начинаю чувствовать, что мне придется сложить множество домашних решений друг над другом, чтобы заставить Mercurial работать в этом случае - возможно, слишком много. Всегда бывают неровные края, по которым я иногда бьюсь.
Существует ли существующее полное решение для этого варианта использования? Расширение Mercurial или скрипт-обертка, которые позволят hg
прозрачно работать с системными файлами?
В качестве альтернативы - и весьма неохотно - существует ли современная система контроля версий или другое решение для управления версиями, которое сделает это из коробки?