При использовании Mercurial HG, как просто получить последний код? - PullRequest
23 голосов
/ 17 ноября 2010

Я новичок в Mercurial HG.Мои друзья создали репо, и я собираюсь его использовать.Я установил TortoiseHG и пытаюсь получить последний код.Я обнаружил, что при использовании операции клонирования он перетаскивает весь код в мой локальный каталог, включая историю (верно?)Это не нужно для меня.Я просто хочу получить последний код.Есть ли операция для этого?

Ответы [ 6 ]

18 голосов
/ 17 ноября 2010

Короче, нет.

Немного дольше: Mercurial еще не поддерживает «мелкие» клоны, в которых вы получаете только часть истории. Поэтому каждый раз, когда вы клонируете, вы извлекаете весь репозиторий со всеми наборами изменений.

Кроме того, в отличие от Subversion, нет способа создать «узкий» клон, в котором вы извлекаете только часть хранилища. Например, если в репозитории есть каталоги foo/ и bar/, нет способа получить только каталог bar/. Другими словами, Mercurial всегда работает со снимками всего проекта.

5 голосов
/ 24 марта 2013

Самый простой способ достичь того, что вы хотите:

hg archive [destination folder]
4 голосов
/ 17 ноября 2010

После того как вы клонировали репозиторий, чтобы получить код «подсказки» (последняя версия текущей ветки - по умолчанию, если не уточнена), вам просто нужно update.

У вас есть действие по обновлению в TortoiseHG. После этого вы можете посмотреть файлы в папке.

Если вам нужно другое состояние хранилища (старая версия или старое помеченное состояние), то это все равно команда update с другими параметрами (см. Документацию или интерфейс TortoiseHG).

3 голосов
/ 17 ноября 2010

Если вам нужен только самый последний код, и вы не собираетесь делать с ним что-либо связанное с репозиторием, например коммит, или diff для более старых версий, или что-то еще, тогда это зависит от того, откуда вы получили код и как.

Если он использует одну из услуг хостинга, например, bitbucket, обычно есть ссылка для скачивания, которая дает вам только исходный код.

Например, если вы перейдете здесь , справа и справа появится ссылка «Получить исходный код», которая дает вам несколько вариантов в формате файла (zip или еще много чего).

Если вы получили файлы где-то еще, вам нужно изучить интерфейс, с которого вы их получили. Попробуйте просто вставить ссылку, с которой вы клонировали, в свой браузер и посмотреть, что вы получите.

2 голосов
/ 30 ноября 2015

Я могу немного опоздать, но на самом деле можно забыть историю с Mercurial. Вам просто нужно включить расширение для конвертации из вашего файла mercurial.ini или .hgrc.

[extensions]
hgext.convert= 

Теперь вы можете использовать расширение для преобразования в "клонировать" только наборы изменений, начиная с указанной ревизии.

hg convert --config convert.hg.startrev=[wheretostart] path_to_full_history_repo path_to_new_repo

Просто обратите внимание, что это не та же операция с hg clone. Вот почему исходный репозиторий должен быть локальным. Например, если у нас есть репозиторий в папке MyProject и мы хотим забыть обо всех изменениях, внесенных до ревизии 100. Мы можем использовать следующую команду:

hg convert --config convert.hg.startrev=[100] MyProject MyShrinkedProject

Если вы собираетесь использовать это сжатое хранилище на «центральном сервере», не забудьте позаботиться о том, чтобы все его клонировали, прежде чем они продолжат работать. Хранилища больше не совместимы друг с другом.

2 голосов
/ 18 ноября 2010

Конечно.Клонируйте репозиторий, затем удалите подкаталог .hg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...