Я собираюсь добавить очень поздний квази-ответ на этот вопрос, поскольку многие, многие, использующие Mercurial, включая меня, спрашивают - то, что мы хотим иметь и ожидаем получить после использованиядругие инструменты, такие как svn properties.
Насколько я могу судить, такого расширения для Mercurial нет.пока.
Да, Mercurial, похоже, отслеживает файлы и только файлы.И может быть, они решили исправить такое расширение, поместив необходимые метаданные в ... repo / .hg * files.
OK.Я играл с этим.Делаем вещи вручную, прежде чем пытаться писать инструменты.
Ключевой недостаток подхода с версионными файлами .hg заключается в том, что если вы извлекаете версию без подсказки, например, "hg update -r OLD-VERSION",вы получаете старую версию метаданных.
Я думаю, что ключевым моментом может быть помещение метаданных в файлы ... repo / .hg *.
Но ...большинство операций должно выполняться с самой последней версией таких файлов или над ней.Т.е. я думаю, что такие файлы метаданных «превосходят» версии - то есть они хотят, чтобы они были версионными, но в идеальной ситуации вы могли бы представить их наложенными на файлы с нормальной версией, которые вы, возможно, извлекли из более старой версии.Более того, во многих случаях вы хотите, чтобы ветвление таких файлов метаданных обрабатывалось отдельно.Например, представьте файл, в котором вы пытаетесь написать описание всех веток вместе.Возможно, сравнивая ветки, вроде "branch1.1 - более свежая версия branch1".Вы не хотите, чтобы это описание было в любой ветке;или, скорее, вы хотите, чтобы он был на обоих ветвях одновременно, и вы хотите, чтобы изменения отражались на обеих ветвях.
Такое предполагаемое расширение будет либо работать на "hg cat -r tip...repo / .hg-мой новый-метаданные».Или это каким-то образом наложит версионные файлы на файлы метаданных, обычно превосходящие версию.
Я добился некоторого прогресса в этом с помощью подпунктов:
superrepo
files // normally-versioned-files <-- a subrepo
metadata // version transcending metadata <-- a subrepo
, это позволяет мне проверитьпоследние метаданные вместе со старой версией файлов
Это не совсем так, потому что проверка конкретной версии суперрепо может привести к старым версиям подпредставления метаданных.Но, по крайней мере, более новые версии находятся в этом подпункте.
Позвольте мне также отметить, что независимо от того, помещаете ли вы метаданные в соседний подпункт или сохраняете их в том же репо (но работаете по совету), существуетпроблема, которую вы можете сделать
hg clone -r OLD-REVISION repo newrepo
Это приведет к удалению метаданных позже, чем OLD-REVISION.Включая метаданные, которые говорят, что «OLD-REVISION прошел все тесты», то есть он удалит метаданные из более поздней ревизии, которая может применяться к OLD-REVISION.
Та же самая проблема возникает с тегами hg.
Кто-то может сказать: «Ну, никогда не делай этого» - никогда не удаляй историю.К сожалению, это часто рекомендуется как способ «привести в порядок» хранилище.
Кажется, трудно избежать этого с Mercurial.