[IPython-dev] submodules over https

MinRK benjaminrk at gmail.com
Thu May 2 12:56:30 EDT 2013


It means that everyone who forks IPython must also fork ipython-components,
and must continually pull/push to keep their components repo up to date.
It also means that you cannot do filesystem clones unless you have also
done clones of ipython-components to the same location on the filesystem.

A very simple "I want to check out this user's branch" doesn't work under
normal circumstances:

git clone git://github.com/minrk/ipython.git -b relative-submodule
--recursive

will fail

This will be true of every branch from every user who doesn't maintain an
up to date fork of ipython-components


On Thu, May 2, 2013 at 9:53 AM, Aron Ahmadia <aron at ahmadia.net> wrote:

> Could you explain that a bit more?  The only thing that breaks is if you
> try to clone a top-level IPython fork on github but haven't forked all the
> proper submodules.  To me that's more of a github issue (it should allow
> you fork all subrepositories in one fell forky swoop).
>
> I guess the question is what your common case is.  How often do you expect
> people to just want to fork IPython vs. maintaining public IPython branches
> that contain subrepositories.  For your case, it might be better to go with
> hardcoded submodule URLs but provide instructions somewhere on how to issue
> a pull request when you have subrepository commits as well.
>
> A
>
>
> On Thu, May 2, 2013 at 5:45 PM, MinRK <benjaminrk at gmail.com> wrote:
>
>> but relative urls don't work for any regular PRs that *don't* affect the
>> submodule
>>
>>
>>
>> On Thu, May 2, 2013 at 9:44 AM, Aron Ahmadia <aron at ahmadia.net> wrote:
>>
>>> Min,
>>>
>>> It's most useful for maintaining branches of repositories containing
>>> subrepositories without having pull requests open.
>>>
>>> Let's say I want somebody to see my version of IPython, that points to
>>> my own edits to the Components subrepo as some top-level edits.  With the
>>> hardcoded approach, I can't maintain a top-level IPython fork without
>>> keeping a little commit in there that modifies .gitmodules to point to my
>>> repositories (or switch to relative URLs) unless you keep a pull request
>>> open at IPython/xxx for all the branch commits.
>>>
>>> So in summary:
>>>
>>> relative urls - able to maintain branches that point to correct
>>> subrepository commits without pull requests open, single forks from github
>>> don't work
>>> hardcoded urls - single forks work, hard to maintain branches that
>>> require commits in subrepositories (that are not yet merged into IPython)
>>>
>>> A
>>>
>>>
>>>
>>>
>>> On Thu, May 2, 2013 at 5:32 PM, MinRK <benjaminrk at gmail.com> wrote:
>>>
>>>> I didn't know about relative URLs, that's cool.  There is one problem
>>>> with them, though: forks.  It means that a clone from someone else's repo
>>>> won't be able to find it because it will resolve to their
>>>> ipython-components repo as well (same goes for secondary clones from the
>>>> filesystem, etc.).  I just ran into this while testing my own branch which
>>>> changes the url to relative, which doesn't work because my fork of
>>>> ipython-components isn't up to date.
>>>>
>>>> What is the disadvantage of just hard-coding https?
>>>>
>>>>
>>>>
>>>> On Thu, May 2, 2013 at 6:12 AM, Aron Ahmadia <aron at ahmadia.net> wrote:
>>>>
>>>>> Looks like the setupbase.py typo has been addressed:
>>>>> https://github.com/ipython/ipython/pull/3258
>>>>>
>>>>> A
>>>>>
>>>>>
>>>>> On Thu, May 2, 2013 at 12:20 PM, Dave Hirschfeld <
>>>>> dave.hirschfeld at gmail.com> wrote:
>>>>>
>>>>>> Aron Ahmadia <aron <at> ahmadia.net> writes:
>>>>>>
>>>>>> >
>>>>>> > Hi Dave,
>>>>>> > I just noticed that the submodule URLs are hardcoded instead of
>>>>>> relative:
>>>>>> >
>>>>>> >
>>>>>> > https://github.com/ipython/ipython/blob/master/.gitmodules#L3
>>>>>> >
>>>>>>
>>>>>>
>>>>>> So that's where the path is hard coded - good to know!
>>>>>>
>>>>>>
>>>>>> >
>>>>>> > Can you check that if you do a non-recursive checkout, then modify
>>>>>> this
>>>>>> line in the top-level .gitmodule file from:
>>>>>> >
>>>>>> >
>>>>>> > url = git://github.com/ipython/ipython-components.git
>>>>>> >
>>>>>> > url = ../ipython-components.git
>>>>>> >
>>>>>> >
>>>>>> > that everything works for you?
>>>>>> >
>>>>>>
>>>>>>
>>>>>> I can confirm that changing the url to a relative path in this one
>>>>>> location
>>>>>> allows everything to work correctly with a repo checked out via https.
>>>>>>
>>>>>>
>>>>>> > It seems there's a typo in setupbase.py
>>>>>> >
>>>>>> > https://github.com/ipython/ipython/blob/master/setupbase.py#L384
>>>>>> >
>>>>>> > I'm assuming that 'external' should in fact be 'components'
>>>>>> > With this change I can compile & run the latest IPython.
>>>>>> >
>>>>>>
>>>>>>
>>>>>> NB: To build & install you still have to fix the typo in setupbase.py
>>>>>>
>>>>>> Thanks,
>>>>>> Dave
>>>>>>
>>>>>> _______________________________________________
>>>>>> IPython-dev mailing list
>>>>>> IPython-dev at scipy.org
>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> IPython-dev mailing list
>>>>> IPython-dev at scipy.org
>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> IPython-dev mailing list
>>>> IPython-dev at scipy.org
>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>
>>>
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20130502/cae03d41/attachment-0001.html>


More information about the IPython-dev mailing list