Rather than uploading every checked-out file of a repository and the
repository objects themselves, skip the checkout and instruct git to compact
before upload. The result is that only a handful of files are transferred,
rather than hundreds or thousands for large repositories.
The HEAD ref is updated before upload so that a hard reset works as before on
the target. The reflog is also disabled in order to avoid uploading useless log
files.
This change is backwards-compatible, but it will only have an effect on new
repositories.
Allow each builder to cache some files for re-use in the next build. This
allows for poor-man's dependency chaining.
Additionally, add a common cache pool for all builds. This can be used for
saving (for example) downloaded files to be shared between builds.
- Allow comparing to a sepcific 'golden' manifest with `--compare-to`
- By default pick the first manifest to compare to, instead of always
comparing against the previous one, which is confusing
- Show line-by-line difference if `-v` given
For example Ubuntu installs a bridge called `virbr0` by default for LXC.
Using this system-provided bridge avoids having to configure one
specifically before gitian building.
This commits makes it possible to override the bridge used by gitian
using the environment variable LXC_BRIDGE. The default is still to use
`br0` as before.
I was running into trouble using gitian LXC INSIDE a VirtualBox VM, because
the 10.0.2.x IP range overlaps with the range that VirtualBox uses for
its internal NAT network.
This commit makes it possible to override the host and guest IP that
is used during LXC image creation and the build, using environment variables:
- `GITIAN_HOST_IP` (default=10.0.2.2, host IP from the viewpoint of the
VM, can be used for both LXC and KVM)
- `LXC_GUEST_IP` (default=10.0.2.5, guest IP from the viewpoint of the
host, effective for LXC only)
When these are not defined the behavior remains the same as before.
To make test builds it can be useful to point gitian at an
alternative repository.
This commit makes this possible by adding a `--url PAIRS` command line
option, that allows to optionally specify where to fetch the code, for
example:
gbuild --url bitcoin=https://github.com/laanwj/bitcoin.git --commit bitcoin=2014_03_...