- Feature: Add optional detail and summary log files controlled by
GITCACHE_DETAIL_LOGandGITCACHE_SUMMARY_LOGfor CI-friendly invocation tracing. (thanks to ditschi) - Feature: Add environment variable
GITCACHE_DISABLEto disable gitcache wrapping and always forward commands to the realgitexecutable (1,true,yes,on). Useful for CI environments to externally disable gitcache e.g. by setting a global variable. (thanks to ditschi) - Bugfix: Normalize explicit
lfs.urlfor HTTP(S)/FTP(S) remotes to the canonical<repo>.git/info/lfsendpoint. This fixes broken LFS auth flows when clone URLs omit.git(seen on GHES) while keeping SSH/SCP/file-style remotes unchanged. (thanks to ditschi)
- Bugfix: Avoid database destruction when disc-is-full.
- Drop support for Ubuntu 20.04 completely.
- Mask credentials in URLs when printing them on stdout.
- Bugfix: Fix LFS when using ssh (thanks to Youw)
- Create binaries for MacOS 15 and 26 including x86_64.
- Skip git-lfs fetch if the repository does not contain a
.gitattributes. - Strip credentials from mirror URLs and temporarily restore them for fetch and pull actions.
- Bugfix: Fix
git fetchincorrectly treating refspecs as repository URLs (thanks to colinodell). - Feature: Intercept fetch for unmanaged repositories (thanks to fkollmann)
- Feature: Use relative paths in database.
- Bugfix: Ensure
GITCACHE_DIRis normalized (thanks to guoh27) - Feature: Support shallow cloning from local mirror with the
--depthoption
- Bugfix: Capture CTRL-C and forward it to the
gitsubprocess.
- Bugfix: Fix
git remote add origincommand when not using the-Coption.
- Bugfix: Fix command line handling when using the
git remotecommand.
- Handle
git remote add originby cloning the remote if it was not mirrored before and configure the mirror for the remote origin fetch.
- To allow fetching orphaned commits, the
git fetchcommand retries a failed command in the mirror directory.
- Added support for Ubuntu 22.04 and Ubuntu 24.04 on ARM.
- Updated pip dependencies.
- Updated README.md section "Installation on MacOS". Thanks to Ihor Dutchak for the attribute clearing command!
- Updated README.md section "Configuration" to include the new
CloneStyleoption. - Added README.md section "Development".
- Bugfix in functional test with an invalid repository name.
- Moved main entry point into the module to allow building a wheel.
- Added first support in Makefile to build and test a wheel.
- Added support to the github runner to create a wheel release.
- New partial clone mode available by setting the config variable
CloneStyle(sectionClone) toPartialFirstor setting the environment variableGITCACHE_CLONE_STYLE=PartialFirst. This mode creates the mirror by performing a shallow clone first followed by agit fetch -unshallow. Thanks to An Darejkal for the implementation!
- Support flags
--recursive,--recurse-submodulesand--remote-submodulesofgit clone.
- Updated pip dependencies
- Added support to build Alpine binaries
- Added support to build Ubuntu 24.04 image
- Use macos-15 instead of macos-14 github runner.
- Feature: Use own implementation of rmtree that handles PermisionError whenever a directory is to be deleted.
- Feature: Added release for MacOS x86_64 (thanks to Ihor Dutchak)
- Feature: Release on MacOS is not a single executable any more but a directory. This is necessary as MacOS has a huge startup delay (about 5s per gitcache call!).
- Workaround: Git for Windows has a bug preventing asking for a password when stderr is redirected (see git-for-windows/git#1613). As a workaround, we disable stderr capture (and analysis) if we find the pattern "Permission denied (publickey)." in stderr.
- Bugfix: Prevent creating mirrors from existing gitcache mirror directories.
- Bugfix: Fixed unit tests.
- Feature: Fixes to support MacOS.
- Bugfix: Fixed relative submodule URLs (thanks to Ihor Dutchak)
- Bugfix: Normalize all URLs to prevent escape of
mirrorsdirectory and to maximize utilization of the cache - Note: Due to the new normalization is is recommended to clear the cache before using this new version!
- Feature: Added support for Ubuntu 24.04
- Feature: Added
CHANGELOG.mdfile. - Bugfix: Fixes functional tests on windows when using the python script (not the pyinstaller binary)
- Removed support for Ubuntu 18.04.
- Feature: Use make4py infrastructure.
- Bugfix: Support all possible remote repository specifications.
- Bugfix: Fixed a bug on windows when gitcache is called as
git.exeinstead ofgit. - Feature: Updated pip dependencies.
- Bugfix: Fixed a bug that occurs when a
git cloneis aborted which prevented cloning the repository again.
- Feature: Updated pip dependencies.
- Feature: Update of Makefile.
- Bugfix: Bugfix in
git submodule update --init --recursiveto update the submodule before traversing down the tree and updating the submodules of that module.
- This release provides the first version of the windows port of gitcache which
required a major rewrite of the internals:
- Rewritten all calls of git from within gitcache to use a list of command arguments rather than strings, disabled the use of an extra shell and replaced all additional tools like grep and awk with python code.
- Replaced the functional tests that were written in bash with a new simple framework written in python.
- Added a more complicated version of rmtree to delete a repository
tree. This was necessary as on Windows the default
shutils.rmtree()function was not working out of the box. - Added a Vagrantfile to create a virtual machine suitable for building and testing the gitcache release for Windows.
- Extended the Makefile to distinguish between Windows and Linux.
- Create release for Windows and Ubuntu 22.04.
- Featue: Added configuration options (and environment variables) to specify regex patterns to select the repositories on which gitcache should be used.
- Feature: Updated the README.md to describe the configuration options in more detail.
- Feature: Extended functional tests to check recursive submodule update checkout.
- Feature: Implemented recursive submodule update functionality.
- Feature: Reworked functional tests.
- Feature: Ensured gitcache works with and without git-lfs.
- Feature: Intercept
git lfs pullcommand to perform a git lfs fetch first. - Feature: Ensure git checkout performs a git lfs fetch only on remote refs (avoids ugly error messages).
- Feature: Added the version output of gitcache for the command line
gitcache --version.
- Feature: New git command line parser.
- Bugfix: Fix issue #1 - git lfs fetch command is not correctly interpreted.
- Bugfix: Fix issue #2 - "git clone ... -b branch" causes error.
- Bugfix: Avoid updating LFS two times in a row when called via
git pulland using the default rev. - Bugfix regarding git submodule update.
- Bugfix: Handle ssh URLs.
- Bugfix: Handle relative URLs in submodules.
- Bugfix: Handle non-fatal garbage collection errors when updating a mirror.
- Bugfix: Set LFS storage and URL when using the
git fetchcommand.
- Bugfix in
git lfs fetchcommand. - Support to build releases for Ubuntu 16.04, 18.04 and 20.04.
- Initial version.