Skip to contentSkip to conversation

Check git pull remote before defaulting to 'origin'

PATCH In review Pavel Roskin 2 participants 3 messages Jun 15, 2016 – Aug 11, 2016 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

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").

#2 lore raw

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
index 227249e..7c5db22 100644
@@ -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
#3 lore raw
Quoted 1 line · Pavel Roskin

Check git pull remote before defaulting to 'origin'

Thanks. Applied.

Signature · 1 line
Catalin