| Setting repo remotes with the "track" command |
| ============================================= |
| This is useful if you want to avoid sending a lot of objects when |
| performing ``git push`` and want to copy those objects from another |
| local repository first. |
| |
| ========================================================== ========================================== |
| Subcommand Summary |
| ========================================================== ========================================== |
| ``set your-repo-path orig-repo-path remote-name [--tags]`` Runs ``git remote add [--tags]`` |
| ``fetch your-repo-path remote-name`` Perform ``git fetch --prune`` |
| ``rm your-repo-path remote-name`` Perform ``git remote remove`` |
| ``list** your-repo-path`` List remotes configured in your repository |
| ========================================================== ========================================== |
| |
| .. note:: It is almost never useful to track torvalds/linux.git, as our |
| use of git alternates will already make sure that you don't have to |
| push objects already present in torvalds/linux.git. This command is |
| useful for objects that have not yet found their way into Linus's |
| repo (e.g. those from linux-next). |
| |
| Examples |
| -------- |
| All examples are for linux-next, since that's likely to be what most |
| people want. |
| |
| Setting |
| ~~~~~~~ |
| Set up linux-next as a remote for your own repository:: |
| |
| ssh git@gitolite.kernel.org track set \ |
| pub/scm/linux/kernel/git/mricon/linux \ # <-- Your repository path |
| pub/scm/linux/kernel/git/next/linux-next \ # <-- The repository you want |
| linux-next [--tags] # <-- remote name (pass --tags if you want tags) |
| |
| This will do the following:: |
| |
| cd $REPOS/pub/scm/linux/kernel/git/mricon/linux.git |
| git remote add --no-tags linux-next $REPOS/pub/scm/linux/kernel/git/next/linux-next.git |
| git fetch linux-next --prune |
| |
| If you passed ``--tags`` at the end of the command, then ``--no-tags`` |
| will be omitted and you'll get all the tags from the remote repository |
| as well. |
| |
| Fetching |
| ~~~~~~~~ |
| Right before you do ``git push``, run the following command to fetch the |
| latest objects from linux-next and thus avoid pushing them over your ssh |
| connection during your own ``git push``:: |
| |
| ssh git@gitolite.kernel.org track fetch \ |
| pub/scm/linux/kernel/git/mricon/linux \ # <-- Your repository path |
| linux-next # <-- Remote name you want to fetch |
| |
| This will do the following:: |
| |
| cd $REPOS/pub/scm/linux/kernel/git/mricon/linux.git |
| git fetch linux-next --prune |
| |
| Listing |
| ~~~~~~~ |
| Forgot which remotes you already set up? |
| |
| :: |
| |
| ssh git@gitolite.kernel.org track list \ |
| pub/scm/linux/kernel/git/mricon/linux # <-- Your repository path |
| |
| Removing |
| ~~~~~~~~ |
| Done with a remote? You can just leave it there, or remove it entirely:: |
| |
| ssh git@gitolite.kernel.org track rm \ |
| pub/scm/linux/kernel/git/mricon/linux \ # <-- Your repository path |
| linux-next # <-- Remote name you want to remove |
| |
| This will do the following:: |
| |
| cd $REPOS/pub/scm/linux/kernel/git/mricon/linux.git |
| git remote remove linux-next |