Also defined in this snippet is `smart_pull`, which controls whether or not to pull... smartly.
What that actually means is that instead of just performing a simple `git pull` in each repository, Malachite
will:
- First run `git remote update` to fetch new remotes from origin
- Then run `git status` and parse the output to see if the current branch is behind
- If the current branch is behind, it runs a regular `git pull`, which will take advantage of the remotes
already being updated.
Theoretically, this only actually speeds things up by a minute amount (think milliseconds, really). Where this feature shines however is in repository mode,
where it enables helpful automation features such as `build_on_update`.
- Each `repo` in the `repositories.repos` key is prefixed with an identifier.
- If the number is `foo`, it'll insert the url with the id `foo`.
- Specifically, in the URL, it'll insert the defined `repo`'s name in place of the `%repo%` substring.
#### Hang on, what are the special symbols????
I'm glad you asked!
- If you want to clone a specific branch, simply use the `/` delimiter. To clone repository `foo` on branch `bar`, use `id:foo/bar`.
- If you want a specific package to build first, use instances of `!` to set priority. This is explained later in the [Repository Mode](REPOSITORY_MODE.md) page
- If you want to clone the repository with a specific depth, for example, in the case of a large git repository like `nixpkgs`, you can add a 2nd `:` delimiter and the integer after that will be used as the depth