Check git pull remote before defaulting to 'origin'
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: RFC PATCH: support for default remote in StGIT
Quoted 2 lines · Pavel Roskin
Sorry, I was unlucky to pick your address from
setup.py, where it's incorrect (gmail.org, not gmail.com), so I'm sending you another copy.
Thanks for spotting this.
Quoted 4 lines
One approach is to leave the default remote selection completely to git. The downside is that StGIT prints the remote it's pulling from. Now StGIT will have to print common words that it's pulling something. Or maybe it shouldn't print anything?
Yann started a thread on this but I didn't find the time to look at this properly. He's idea was to store the remote branch information in the StGIT metadata but I'd like to leave this for GIT to deal with.
The StGIT UI can probably be modified to display something useful but I don't see a problem if it doesn't.
Quoted 7 lines
The other approach is to calculate the default remote in StGIT. This would allow StGIT to tell the user where it's pulling from.
However, I had to introduce a function that ignores errors except there is any output on stderr. This is because git-repo-config returns error code 1 if it cannot find the key. Maybe git-repo-config should have an option not to fail in this case? Perhaps a default value to return?
With the recent changes, StGIT shares the config files with GIT and it has direct access to git settings without the need to use git-repo-config. Just use "config.has_key" and "config.get_option".
Maybe a combination of your two options - StGIT could try to get the default branch and, if there isn't any in the config files, just invoke git-pull without any argument (and display something like "pulling from default").
PATCH 1/1 Check git pull remote before defaulting to 'origin'
Check git pull remote before defaulting to 'origin'
---
stgit/commands/pull.py | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
stgit/commands/pull.py +8 -2
@@ -50,10 +50,16 @@ def func(parser, options, args): if len(args) > 2: parser.error('incorrect number of arguments') - repository = 'origin' - refspec = None if len(args) >= 1: repository = args[0] + else: + section = 'branch "%s"' % git.get_head_file() + if config.has_option(section, 'remote'): + repository = config.get(section, 'remote') + else: + repository = 'origin' + + refspec = None if len(args) == 2: refspec = args[1]
Signature · 2 lines
Regards, Pavel Roskin
Quoted 1 line · Pavel Roskin
Check git pull remote before defaulting to 'origin'
Thanks. Applied.
Signature · 1 line
Catalin