threads / patch / 9783

patchgit.__remotes_from_dir() should only return lists

Subject: [PATCH] git.__remotes_from_dir() should only return lists

## tl;dr

5 messages between Sep 5, 2007 and Sep 6, 2007. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Pavel Roskin· Sep 5, 2007, 16:57 UTC · lore

If there are no remotes, return empty list, not None. The later doesn't work with builtin set().

This fixes t1001-branch-rename.sh
Signed-off-by: Pavel Roskin <proski@gnu.org>
---
 stgit/git.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to stgit/git.py +1 −1
diff --git a/stgit/git.py b/stgit/git.py
index 4b4c626..f847cce 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -953,7 +953,7 @@ def __remotes_from_dir(dir):
     if os.path.exists(d):
         return os.listdir(d)
     else:
-        return None
+        return []
 
 def remotes_list():
     """Return the list of remotes in the repository
Karl Hasselström· Sep 6, 2007, 11:26 UTC · re: Pavel Roskin · lore

Re: [PATCH] git.__remotes_from_dir() should only return lists

On 2007-09-05 12:57:22 -0400, Pavel Roskin wrote:
> If there are no remotes, return empty list, not None. The later
> doesn't work with builtin set().

Thanks. But I guess an even nicer fix would be to make this function return a set in the first place.

> This fixes t1001-branch-rename.sh

Hmm. I don't believe I saw t1001 break without this patch (I run the test suite before I push, but I might have made a mistake of course). Does the user's environment leak into the test sandbox?

-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle
Pavel Roskin· Sep 6, 2007, 12:38 UTC · re: Karl Hasselström · lore

Re: [PATCH] git.__remotes_from_dir() should only return lists

On Thu, 2007-09-06 at 13:26 +0200, Karl Hasselström wrote:
Show 7 quoted lines
> On 2007-09-05 12:57:22 -0400, Pavel Roskin wrote:
> 
> > If there are no remotes, return empty list, not None. The later
> > doesn't work with builtin set().
> 
> Thanks. But I guess an even nicer fix would be to make this function
> return a set in the first place.

Fine with me. But it was returning a list or None, so the simplest fix was to return a list in all cases.

Show 5 quoted lines
> > This fixes t1001-branch-rename.sh
> 
> Hmm. I don't believe I saw t1001 break without this patch (I run the
> test suite before I push, but I might have made a mistake of course).
> Does the user's environment leak into the test sandbox?

I don't think it's the user environment, at least on my side. I'm using Fedora 7, which has python-2.5-12.fc7. That's the error from the t1001 before my patch:

Traceback (most recent call last):
  File "/home/proski/src/stgit/t/../stg", line 43, in <module>
    main()
  File "/home/proski/src/stgit/stgit/main.py", line 284, in main
    command.func(parser, options, args)
  File "/home/proski/src/stgit/stgit/commands/branch.py", line 163, in func
    parentremote = git.identify_remote(parentbranch)
  File "/home/proski/src/stgit/stgit/git.py", line 994, in identify_remote
    for remote in remotes_list():
  File "/home/proski/src/stgit/stgit/git.py", line 963, in remotes_list
    | set(__remotes_from_dir('branches')))
TypeError: 'NoneType' object is not iterable
-- 
Regards,
Pavel Roskin
Karl Hasselström· Sep 6, 2007, 14:26 UTC · re: Pavel Roskin · lore

Re: [PATCH] git.__remotes_from_dir() should only return lists

On 2007-09-06 08:38:26 -0400, Pavel Roskin wrote:
Show 7 quoted lines
> On Thu, 2007-09-06 at 13:26 +0200, Karl Hasselström wrote:
>
> > Thanks. But I guess an even nicer fix would be to make this
> > function return a set in the first place.
>
> Fine with me. But it was returning a list or None, so the simplest
> fix was to return a list in all cases.

Oh, your fix is excellent to fix the immediate problem. I was just trying to say that making this function (an a heap of others) return sets would be a useful refactoring.

Show 7 quoted lines
> > Hmm. I don't believe I saw t1001 break without this patch (I run
> > the test suite before I push, but I might have made a mistake of
> > course). Does the user's environment leak into the test sandbox?
>
> I don't think it's the user environment, at least on my side. I'm
> using Fedora 7, which has python-2.5-12.fc7. That's the error from
> the t1001 before my patch:

OK. I'll try to reproduce it when I get home, but it certainly looks like I only _thought_ I'd run the test suite.

-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle
Karl Hasselström· Sep 6, 2007, 23:11 UTC · re: Pavel Roskin · lore

Re: [PATCH] git.__remotes_from_dir() should only return lists

On 2007-09-06 08:38:26 -0400, Pavel Roskin wrote:
Show 9 quoted lines
> On Thu, 2007-09-06 at 13:26 +0200, Karl Hasselström wrote:
>
> > Hmm. I don't believe I saw t1001 break without this patch (I run
> > the test suite before I push, but I might have made a mistake of
> > course). Does the user's environment leak into the test sandbox?
>
> I don't think it's the user environment, at least on my side. I'm
> using Fedora 7, which has python-2.5-12.fc7. That's the error from
> the t1001 before my patch:

Mmm, irritating. I really don't get the error, and debug printouts confirm that it's because the directories .git/remotes and .git/branches both exist.

Your patch is the right thing to do anyway, obviously.
-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle

← back to recent threads