Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

3 steps to creating local mirrored Git repositories for your Continuous tests

1 min read

At IDRsolutions, we have spent the last 6 months working to make our Java code base for our Java PDF Library and PDF to HTML5 Converter more modular. This has the downside of generating lots of fetch requests across the Internet and we see timeout issues in Git which then fail our main tests. So we have reduced this by having the repositories mirrored on disk. Here is how we did it:

1. Setup Local repositories

Previously, every task would attempt to poll the main repositories. On our Hudson box, the Git mirrors now live in /Users/hudson/repositories/ and our Jenkin’s mirrors live in C:\repositories

The mirror is created by the command

git clone –mirror https://path/ToCode/module.git

The mirror tag is needed because the version you normally check out (which creates a .git directory) does not work.

Now we have a set of tasks (in both Hudson and Jenkins), which now poll the main repositories.

2. Add a task to update the mirror copy

We now add a task to listen to the original Git repository and update our mirror copy when there are changes. We do this with a simple fetch. You setup a task for each module.

sync git rep

3. Set existing tasks to use the mirror repositories

Finally you point the existing tests to use the Git mirrors on disk. You can use file::/ or just the path.

use local copiesYou will now see that the sync task will fire up to update the local mirror and then all the other tests will fire off.

As well as reducing traffic substantially, a side-effect is that the tests can now be easily disabled just by disabling the sync tasks, and you will not see your main tests fail if there is an issue with the Git pull.

We have found this makes our tests substantially more robust and we hope you find it useful too. Let us know…



Our software libraries allow you to

Convert PDF to HTML in Java
Convert PDF Forms to HTML5 in Java
Convert PDF Documents to an image in Java
Work with PDF Documents in Java
Read and Write AVIF, HEIC, WEBP and other image formats
Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.