remote-helper: prefactor to be more testable
To introduce new remote-helper changes like ‘dont push by default’ and ‘self’ / ‘rad’ remotes, this crate has been refactored to ease testing.
- the command parsing has been refactored into a sans i/o esque typed parser.
- the radicle node interactions have been hoisted into a
NodeSessiontrait. - the git
send_packandfetch_packinteractions have hoisted intoGitServicetrait. - the direct stdin/out printing has been replaced with
BufReadandWritertraits.
6 files changed
+568
-182
119445ce
→
4d7b942b
modified crates/radicle-remote-helper/src/fetch.rs
@@ -4,8 +4,8 @@ use std::{io, process::ExitStatus};
|
|
|
|
|
|
| - | |
|
|
| + | |
|
|
|
|
|
@@ -33,16 +33,18 @@ pub enum Error {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -58,7 +60,7 @@ pub fn run<R: ReadRepository>(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -72,7 +74,7 @@ pub fn run<R: ReadRepository>(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -82,8 +84,5 @@ pub fn run<R: ReadRepository>(
|
|
|
|
|
|
| - | |
| - | |
| - | |
|
|
|
modified crates/radicle-remote-helper/src/list.rs
@@ -39,17 +39,19 @@ pub fn for_fetch<R: ReadRepository + cob::Store<Namespace = NodeId> + 'static>(
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -60,43 +62,45 @@ pub fn for_fetch<R: ReadRepository + cob::Store<Namespace = NodeId> + 'static>(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -106,8 +110,8 @@ fn patch_refs<R: ReadRepository + cob::Store<Namespace = NodeId> + 'static>(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
modified crates/radicle-remote-helper/src/main.rs
@@ -18,12 +18,15 @@
|
|
|
|
|
|
| + | |
|
|
| + | |
|
|
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -35,6 +38,8 @@ use radicle::{cob, profile};
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -120,6 +125,9 @@ pub enum Error {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -238,9 +246,9 @@ pub fn run(profile: radicle::Profile) -> Result<(), Error> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -248,81 +256,151 @@ pub fn run(profile: radicle::Profile) -> Result<(), Error> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -374,20 +452,6 @@ fn push_option(args: &[&str], opts: &mut Options) -> Result<(), Error> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -430,3 +494,12 @@ pub(crate) fn patches_mut<'a>(
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
added crates/radicle-remote-helper/src/protocol.rs
@@ -0,0 +1,190 @@
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
modified crates/radicle-remote-helper/src/push.rs
@@ -4,7 +4,6 @@ mod canonical;
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -22,15 +21,15 @@ use radicle::crypto;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
| + | |
|
|
|
|
|
@@ -249,10 +248,12 @@ pub fn run(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -268,14 +269,16 @@ pub fn run(
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -330,6 +333,7 @@ pub fn run(
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -343,6 +347,7 @@ pub fn run(
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -364,6 +369,7 @@ pub fn run(
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -392,11 +398,11 @@ pub fn run(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -456,10 +462,15 @@ pub fn run(
|
|
|
|
|
|
| - | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -470,10 +481,7 @@ pub fn run(
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -503,15 +511,25 @@ fn patch_base(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| + | |
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -522,11 +540,12 @@ impl<'a> TempPatchRef<'a> {
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -544,7 +563,7 @@ impl<'a> Drop for TempPatchRef<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -557,11 +576,13 @@ fn patch_open<G>(
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -680,7 +701,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -695,15 +716,17 @@ fn patch_update<G>(
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -730,6 +753,7 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -766,7 +790,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -780,16 +804,26 @@ fn push<G>(
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -973,6 +1007,7 @@ fn push_ref(
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -996,7 +1031,7 @@ fn push_ref(
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1008,59 +1043,3 @@ fn push_ref(
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
added crates/radicle-remote-helper/src/service.rs
@@ -0,0 +1,141 @@
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |