We are currently working on adding "--set-upstream <remote> <branch>" to pull, that will work like "push --set-upstream <remote> <branch>" The main usage should be "git pull --set-upstream <remote> <branch>" However:
* <branch> could be a refspec like "refs/heads/*"
* If there is an error such as invalid URL or unreachable host we don't want to edit the config
It makes more sense to us to implement the "--set-upstream" logic in git fetch which would let us test the remote and manage when called with a refspec. As a side effect: it will add the "--set-upstream" argument to fetch. Essentialy we see 3 options:
1- add the "--set-upstream" argument directly in builtin/pull.c it will make it harder to parse the refspec and test the remote
2- add the "--set-upstream" as a visible argument of fetch as fetch --set-upstream could be useful
3- add the "--set-upstream" as a hidden argument of fetch
Option 2 seems the best choice to us, any suggestion?
Thanks in advance.
Corentin BOMPARD, Nathan BERBEZIER, Pablo CHABANNE.