[IPython-dev] submodules over https

MinRK benjaminrk at gmail.com
Thu May 2 13:00:06 EDT 2013


So it seems like a hardcoded URL is the right approach, but back to my
original question - is there any disadvantage to hardcoding https? There is
an obvious reason to not use git://, as it is currently.


On Thu, May 2, 2013 at 9:56 AM, MinRK <benjaminrk at gmail.com> wrote:

> 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/e97ebd42/attachment-0001.html>


More information about the IPython-dev mailing list