2014-01-16 3 views
2

Я хотел бы разместить каталог C:\WorkDir под контролем Mercurial, но у вас есть хранилище, расположенное где-то еще, чем C:\WorkDir\.hg возможно D:\Repositories\WorkDir.hg. Это возможно в Mercurial?Могу ли я отделить `.hg` от рабочего каталога?

+0

Почему вы хотите сделать это? –

+0

Возможно, на моем диске 'C:' не хватает места. Возможно, диск «D:» запланирован для регулярных резервных копий. – Fenikso

ответ

3

This answer on the Mercurial mailing list by Martin Geisler совершенно ясно об этом:

Вы не можете переместить папку .hg вне где ваши рабочие файлы проживают. Это по определению: «рабочая копия» - родительский каталог .hg. Так что если вы хотите версии файлов в

C: \ Inetpub \ Laravel \ приложение

вы должны

C: \ Inetpub \ Laravel \ приложение \ .hg

4

Если вы хотите, чтобы диск с реальной рабочей копией, заполненной данными репозитория, можно использовать расширение общего доступа: https://www.mercurial-scm.org/wiki/ShareExtension.

E.g. если вы хотите, чтобы контроль версий C:\WorkingDir, но хотите большие данные хранилища для проживания на D:\Repositories\WorkDir, просто сделайте следующее:

  1. cd D:\Repositories
  2. hg init WorkDir
  3. cd C:\
  4. hg share D:\Repositories\WorkDir WorkingDir

You все равно будет иметь каталог .hg на C:, но он останется очень маленьким (около 1 МБ), тогда как репо на D: будет тем, которое растет со временем.

+0

Спасибо. Я могу попытаться использовать это тоже. Однако я немного боюсь раздела «Общие оговорки», поскольку я не уверен, что кто-нибудь из них может обратиться ко мне в будущем. – Fenikso

+0

Ну, оговорки логичны: ваш общий рабочий каталог немедленно повлияет на «реальный» репозиторий. Поэтому, если вы используете «реальный» репозиторий с рабочей копией, любая переработка истории в совместно используемом рабочем каталоге может привести к недействительности в вашем рабочем каталоге вашего репозитория. Если вы просто используете его, как описано в приведенном выше примере, все будет в порядке. Я использую общие репозитории почти каждый день, и я никогда не терял что-то из-за этого. Просто имейте в виду, что это не клон, а доля! – Face

1

Вы пытались создать Junction?

Допустим, ваш репо c:\test\.hg но вы хотите поместить .hg каталог в c:\shadow

mkdir c:\shadow 
mv c:\test\.hg c:\shadow\.hg 
mklink /j c:\test\.hg c:\shadow\.hg 
Смежные вопросы