radicle: use `git push` to avoid `libgit2` push
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.
2 files changed
+64
-13
433483e0
→
8fd04483
modified radicle-remote-helper/src/push.rs
@@ -1,7 +1,7 @@
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -30,6 +30,10 @@ use crate::{hint, read_line, warn, Options};
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -777,12 +781,32 @@ fn push_ref(
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle/src/rad.rs
@@ -1,6 +1,6 @@
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -29,6 +29,10 @@ pub static PATCHES_REFNAME: Lazy<git::RefString> = Lazy::new(|| git::refname!("r
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -103,13 +107,36 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|