Я думаю, вы неправильно поняли это расширение. Расширение общего доступа (очень редко используемое!) Предназначено для случаев, когда вам нужно несколько рабочих каталогов, указывающих на один и тот же базовый репозиторий, - вместо гораздо более нормального отношения один к одному между репозиториями и рабочими каталогов.
Там нет unhare, потому что нет двунаправленной ссылки.
Вот объяснение:
Вы создаете новый репо, используя hg init
или hg clone
:
repoA
\-- .hg (repoA's repository)
Если вы создали другой клон, у вас будет другой рабочий каталог с другим хранилищем внутри. Это то, что делается в 99,9% случаев.
repoA (the one you already had)
\-- .hg (repoA's repository)
repoB (the new clone)
\-- .hg (repo B's repository)
\-- hgrc (config file with a [paths] default=../repoA)
Однако, если вы используете hg share
, вы получите что-то вроде этого:
repoA (the one you already had)
\-- .hg (repoA's repository)
repoB (the new shared repo)
\-- .hg (a symlink-like pointer to ../repoA/.hg)
Таким образом, он выглядит двунаправленным только потому, что у них точно такой же репо под одеялом. Если они находятся на разных компьютерах / томах, то repoB
не может использоваться, если репо не доступно - что противоположно тому, что DVC должен делать для вас.
Итак, в ответ вы «отмените связь», удалив repoB. Если в repoB есть незафиксированные файлы, которые вы не хотите фиксировать в repoA, вы можете сделать что-то вроде этого:
hg clone -U repoA newRepoB # create a clone with no working dir
cp -a repoB/* newRepoB # excludes all files including .hg (and other .* files)
TL; DR: не использовать share
; это почти никогда не правильный выбор.