Сменить корневой каталог репо в Mercurial - PullRequest
2 голосов
/ 19 февраля 2012

Я работаю над игрой для Android со структурой папок:

\bin
\data (contains game graphics)
\libs (libgdx engine jars)
\src
----\com
--------\brand
------------\game
                 (*.class files)

Глупо, я создал ртутный репозиторий (hg init) в каталоге \ src.Таким образом, если я обновляю любую графику (файлы небольшого размера), она не добавляется в репозиторий при фиксации.У меня вопрос: как я могу изменить корень репо, включив в него каталог \ data, а также каталог \ src, но не включая каталог \ libs, поскольку он содержит 10-20mb jars?

Ответы [ 2 ]

4 голосов
/ 19 февраля 2012

Есть два способа сделать это.

1) Начать новый репо. Это быстро и легко, но вы потеряете свою историю.

2) Используйте hg rename. Это фактически команда перемещения.

Переименуйте каталог src в что-то значимое, а затем сделайте это.

  1. hg переименовать MyProject / com MyProject / src / com
  2. Скопируйте все файлы / папки в каталог MyProject /.
  3. Пометить бен и libs как игнорируемые и
  4. Добавить все остальное.
  5. hg commit
2 голосов
/ 19 февраля 2012

Если вы не хотите просто делать hg rename, вы можете сделать это с расширением convert (которое поставляется по умолчанию с Mercurial, вам просто нужно включить его в.hgrc).

Запустите его с параметром --filemap и файлом картографии, который имеет что-то вроде:

rename com src/com

В итоге вы получитес новым репозиторием со всей вашей историей, но с вашим каталогом com, перемещенным в src/com.Затем вы можете скопировать туда свои папки bin, data и libs, запустить hg addremove и все будет хорошо.

Предупреждение : новый репозиторийполностью отличается от старого - идентификаторы наборов изменений и такие будут другими, поэтому любой, с кем вы работали в прошлом, должен будет войти в новый репозиторий.

...