Использование hg и git в одном и том же дереве не приводит к конфликту; поскольку эти программы разрабатывались независимо, само собой разумеется, что они не мешают друг другу.
Однако, и в этом случае hg накладывает себя на git (еще один способ убедиться, что репозиторий git зависит от базовой структуры каталога hg ). Таким образом, рассмотрим следующий пример, где у вас уже клонирован режим org и имеется патч, ожидающий извлечения из онлайн-хранилища.
Вот как может выглядеть hg перед тем, как вы извлечете изменения из git:
c:\myfiles> hg log -l 1
changeset: 123:da5f372c3901
tag: tip
user: John Doe <john@doe.com>
date: Fri Jun 13 12:00:00 2014 -0500
summary: Some change in the work files
Затем вы извлекаете изменения в режиме org из git. Однако здесь важнее всего то, что действие pull не сразу отражается на репозитории hg.
Вы можете проверить, работают ли более новые исправления в режиме org. Если они не работают сразу после установки, вы должны запустить hg revert --all
, который восстановит то, как хранилище выглядело во время последнего коммита. Если они работают или вы не обнаружите никаких проблем, вам следует зафиксировать изменение в hg, отражающее, что вы перенесли набор изменений в org-mode.
c:\myfiles> hg com -m "Pulling changes in org-mode"
c:\myfiles> hg log -l 1
changeset: 124:da5f372c3901
tag: tip
user: John Doe <john@doe.com>
date: Fri Jun 13 12:01:00 2014 -0500
summary: Pulling changes in org-mode
Если git хранит свои метаданные относительно хранилища в папке org-mode (то есть, как hg делает с папкой .hg в корне хранилища), не должно быть проблем с откатом коммита в hg (если случайно после коммита обнаружите, что есть проблема с org-mode):
c:\myfiles> hg rollback
rolling back last transaction
c:\myfiles> hg log -l 1
changeset: 123:da5f372c3901
tag: tip
user: John Doe <john@doe.com>
date: Fri Jun 13 12:01:00 2014 -0500
summary: Some change in the work files
Кроме того, как указано в моих комментариях, вы можете делать это независимо от того, какое программное обеспечение VCS вы используете. Если у вас есть:
c:\my_repo
c:\my_repo\2nd_repo
Проблем не будет, так как для работы с каждым репозиторием вам придется работать, находясь внутри каталога, в котором вы работаете.
1 - я адаптировал некоторый код отсюда, потому что, как указано, у меня нет большого опыта в этой теме