Подтвердить что ты не робот

При использовании Mercurial HG, как получить последний код?

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

4b9b3361

Ответ 1

Короче говоря, нет.

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

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

Ответ 2

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

hg archive [destination folder]

Ответ 3

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

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

Если вам требуется другое состояние репозитория (старая версия или старое тегированное состояние), то он по-прежнему выполняет команду update с другими параметрами (см. документы или интерфейс TortoiseHG).

Ответ 4

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

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

Например, если вы идете здесь, там есть ссылка "Получить источник" и направо, что дает вам несколько вариантов в формат файла (zip или whatnot.)

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

Ответ 5

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

Ответ 6

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

[extensions]
hgext.convert= 

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

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

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

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

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

Ответ 7

Чтобы вытащить только подмножество наборов изменений, укажите одну или несколько ревизий идентификаторы с -r/- rev или ветки с ветвью -b/-. Результирующий clone будет содержать только указанные изменения и их предки.

например. hg clone -b NeededBranch http://example.com/myRepo

Mercurial manual