I meant it to be `check_call`, not Popen, that's why there's no wait on the
end. That's fixed.  The `shell=True` was following pattern already set by
previous git subprocess calls in setupbase, I do not know if they are
necessary - one logical reason is that it can have PATH ramifications.




On Mon, May 6, 2013 at 5:51 PM, Takafumi Arakaki
<notifications@github.com>wrote:

> In IPython/utils/submodule.py:
>
> > +    )
> > +    status, _ = proc.communicate()
> > +    status = status.decode("ascii")
> > +
> > +    for line in status.splitlines():
> > +        if status.startswith('-'):
> > +            return 'missing'
> > +        elif status.startswith('+'):
> > +            return 'unclean'
> > +
> > +    return 'clean'
> > +
> > +def update_submodules(repo_dir):
> > +    """update submodules in a repo"""
> > +    subprocess.Popen("git submodule init", cwd=repo_dir, shell=True)
> > +    subprocess.Popen("git submodule update", cwd=repo_dir, shell=True)
>
> No need to wait here? Also, why use shell=True?
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/ipython/ipython/pull/3275/files#r4105107>
> .
>