In issue #2836 of libgit2, the speed of libgit2’s file:// protocol for
git operations is found to be very slow. This is further corrobarated by rad init taking 13 hours to initialise the hardenedbsd ports repository.
There are two areas where the heartwood project uses libgit2 to push using
the file protocol. The first is when via the trasnport::local smart transport
registration and the second is the final push to storage in the git-remote-rad
binary.
When both these push operations are changed to use the git binary instead,
the ports repository can be initialised in less than 10 minutes (nearly 100x
speed up).
This change is clearly required if heartwood wishes to support larger
repositories.
In issue #2836 of libgit2, the speed of libgit2’s file:// protocol for
git operations is found to be very slow. This is further corrobarated by rad init taking 13 hours to initialise the hardenedbsd ports repository.
There are two areas where the heartwood project uses libgit2 to push using
the file protocol. The first is when via the trasnport::local smart transport
registration and the second is the final push to storage in the git-remote-rad
binary.
When both these push operations are changed to use the git binary instead,
the ports repository can be initialised in less than 10 minutes (nearly 100x
speed up).
This change is clearly required if heartwood wishes to support larger
repositories.
Changes:
- Avoid
unwrap - Use helper
working_copyfunction to get a working copy’s directory, one level above the.gitfolder.
Changes:
- remove emacs autosave file
Changes:
- Remove helper in favour of using
git2::Repository::work_dir
Rebased.