Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

bad shallow clone performance with Bamboo and git

choover-kayak February 23, 2014

We recently switched from svn to git. We've tried enabling shallow clones in order to improve build speed when clean checkouts are required. Unfortunately, we have encountered two problems:

1. Fetches into shallow clones are slow -- they take ~10s on a full clone, but 2min on shallow clone. From the logs it appears that on every fetch, the agent is retrieving >1GB of data, even for very small changesets.

2. Shallow clones seem grow very large, very quickly. Some of our agents ran out disk space only one day after switching to shallow clones -- the repo size had grown to almost 50gb. We have found repo size in full clones to be relatively consistent.

For background, the git repo has ~200,000 commits; full clones are 20 gb, shallow clones are 4.1 gb. We have between 30 and 40 agents that check out this repository.

Has anyone experienced similar problems to this? Any tips or tuning advice?

2 answers

1 accepted

1 vote
Answer accepted
Marcin Gardias
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
February 24, 2014

It seems to me that using repository caching on agent is better option for you. (option can be found in Git Repository's advanced options) The way it works is that is creates a repository in agent directory that is a full clone. All remote updates go into that repository and because that repository is not destroyed between builds only the creation of cache takes long time. Then Bamboo does the checkout from that repository into the working dir, so even if you need clean checkout, it should be quite fast.

As for space requirements: obviously you need the space for the full clone (but if you use plan branches or share this repository across different plans the cache is shared). When doing checkout, we use the option to share the git objects between cache and the working dir, so the space in your working dir will be pretty much just the size of your code. (in other words: .git directory in the working dir will take as little space as possible)

0 votes
Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
February 23, 2014

Which Bamboo version is it? Are you using native Git?

choover-kayak February 23, 2014

Bamboo 5.2.2. Git 1.7.1 is installed and in the bamboo user's path on the server and agents -- verbose logging seems to show Bamboo shelling out to the git binary.

Some more info -- it looks like every time someone pushes a change, even a small one, the shallow fetch downloads 1.17 gb of data from the server. Then the repo on disk grows by about the same amount. This does not happen when there are no changes -- the fetch is very fast, no change to repo size.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events