What is Mercurial equivalent to `git clone --depth 1` without downloading the history?
Feb 6, 12:01pm

In Mercurial (hg), the equivalent of Git's git clone --depth 1 (which clones a repository without downloading the full history) is achieved using the --noupdate option combined with specifying a specific revision or using the --shallow option (though Mercurial's terminology and options differ slightly).

Mercurial Command:

To clone a repository without downloading the full history, you can use:

bash
hg clone --noupdate --rev <revision> <repository_url>
  • --noupdate: This ensures that the working directory is not updated after the clone, which can save time and bandwidth.
  • --rev <revision>: This allows you to specify a particular revision (e.g., tip for the latest revision) to clone, effectively limiting the history to just that revision.

However, Mercurial does not have a direct equivalent to Git's shallow clone (--depth 1). The above command will still download the history up to the specified revision, but it will not download the full history of the repository.

Alternative: Using the hg convert Extension

For a true shallow clone (without any history), you can use the hg convert extension to create a new repository with only the latest revision. This is more complex and involves additional steps:

  1. Clone the repository with full history.
  2. Use hg convert to create a new repository with only the latest revision.

This is not as straightforward as Git's --depth 1 option, but it achieves a similar result.

Summary

  • For a lightweight clone with minimal history, use hg clone --noupdate --rev tip <repository_url>.
  • For a true shallow clone (no history at all), consider using the hg convert extension or other advanced techniques.
Feb 6, 12:01pm

This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.