Timeout adding a big GitHub repository

Hi, I've been evaluating using Continua CI for our Delphi product. In the test machine I am trying to add our Github repository however it fails with the following message:

[Repository] Repository

Repository 'GitHub' (5XXXXXXc-6324-4009-95b4-6f0bfd2e3cf6) cannot be initialised: Running git.exe with arguments "clone https://githubuser:githubpw@github.com/ourcompany/ourproduct.git ************************* --recursive" failed and threw exception: "Running git.exe with arguments "clone https://githubuser:githubpw@github.com/ourcompany/ourproduct.git
************************* --recursive" failed with return code -1 and error output: "The process timed out or was forcibly terminated.""

I've tried running the git clone command from the Git Bash and it works, however since it's project we have a submodule (sub repository) with all our dependencies and that has over 1Gb of data and when running from the bash it takes por than 35 minutes to download everything from GitHub.

Besides trying to trim down our repository ¿What else can I do to make Continua initialize the repository? 

Thank you


The default time out for repositories should be 60 minutes and can be changed in the repository settings. We’ll look into whether this actually being taken into account.

We recommend that you trim down or split up a 1GB repository. You could also switch off the recursive option and use two Continua repositories - one pointing at the main repository and the other at the submodule. You can then use the repository and workspace rules to ensure the source files are copied to the right folders.

It may also be beneficial to use a local clone of the large submodule rather than accessing it remotely if it doesn’t change frequently.

Hi Dave, thank you for your answer. I’ve trimmed down our repositories and all of them combined take about 500 Mb. I’ve tried the approach of using several repositories (we have 5 submodules/externals) and although it works, I doesn’t work has expected because sometimes our main branch “master” points to a special commit of one of the submodules and by using separate repositories in Continua I have to use the master (or other branch) always and I must use the branch that our main “master” code points to.

I’ll keep experimenting with the options. The weird thing is that if I do that same command:

[code]git clone https://githubuser:githubpw@github.com/ourcompany/ourproduct.git --recursive[/code]

It works ok, however it takes about 20 minutes to complete.

Ok , I’ve figured it out. The problem was that some submodules (the large ones) were added using the SSH clone address (https://github.com/ourcompany…") and for some reason when running the git clone command passing the username and password git didn’t receive the credentials for the submodules and when trying to clone the submodules git got stuck at the “username:” prompt which I’ve only managed to see running the command trough the Git Bash.

Finally I’ve resolved it adding the username and password in a file named “netrc” which Git uses when trying to get access credentials for a repository. Some useful links:

http://stackoverflow.com/questions/5417918/can-i-add-a-username-password-to-git-clone-using-the-recursive-option-for-s

In case someone uses GitHub I also recommend using O-Auth passwords for your build server:
https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth

Thanks!