diff --git a/josh-core/src/cache.rs b/josh-core/src/cache.rs index 3592c5ae7..bd66281c7 100644 --- a/josh-core/src/cache.rs +++ b/josh-core/src/cache.rs @@ -1,7 +1,7 @@ use super::*; use std::collections::HashMap; -const CACHE_VERSION: u64 = 18; +const CACHE_VERSION: u64 = 19; lazy_static! { static ref DB: std::sync::Mutex> = std::sync::Mutex::new(None); diff --git a/josh-core/src/filter/mod.rs b/josh-core/src/filter/mod.rs index f3d99a3b6..f9e9c10e0 100644 --- a/josh-core/src/filter/mod.rs +++ b/josh-core/src/filter/mod.rs @@ -14,6 +14,8 @@ lazy_static! { std::sync::Mutex::new(std::collections::HashMap::new()); static ref WORKSPACES: std::sync::Mutex> = std::sync::Mutex::new(std::collections::HashMap::new()); + static ref ANCESTORS: std::sync::Mutex>> = + std::sync::Mutex::new(std::collections::HashMap::new()); } /// Filters are represented as `git2::Oid`, however they are not ever stored @@ -485,9 +487,21 @@ fn apply_to_commit2( let id = commit.id(); - if let Some(startfilter) = filters.get(&id) { + for (&filter_tip, startfilter) in filters.iter() { + if filter_tip == git2::Oid::zero() { + continue; + } + if !ok_or!(is_ancestor_of(repo, id, filter_tip), { + return Err(josh_error(&format!( + "`:rev(...)` with non existing OID: {}", + filter_tip + ))); + }) { + continue; + } + // Remove this filter but preserve the others. let mut f2 = filters.clone(); - f2.remove(&id); + f2.remove(&filter_tip); f2.insert(git2::Oid::zero(), *startfilter); let op = if f2.len() == 1 { to_op(*startfilter) @@ -995,6 +1009,37 @@ pub fn make_permissions_filter(filter: Filter, whitelist: Filter, blacklist: Fil opt::optimize(filter) } +/// Check if `commit` is an ancestor of `tip`. +/// +/// Creates a cache for a given `tip` so repeated queries with the same `tip` are more efficient. +fn is_ancestor_of( + repo: &git2::Repository, + commit: git2::Oid, + tip: git2::Oid, +) -> Result { + let mut ancestor_cache = ANCESTORS.lock().unwrap(); + let ancestors = match ancestor_cache.entry(tip) { + std::collections::hash_map::Entry::Occupied(entry) => entry.into_mut(), + std::collections::hash_map::Entry::Vacant(entry) => { + tracing::trace!("is_ancestor_of tip={tip}"); + // Recursively compute all ancestors of `tip`. + // Invariant: Everything in `todo` is also in `ancestors`. + let mut todo = vec![tip]; + let mut ancestors = std::collections::HashSet::from_iter(todo.iter().copied()); + while let Some(commit) = todo.pop() { + for parent in repo.find_commit(commit)?.parent_ids() { + if ancestors.insert(parent) { + // Newly inserted! Also handle its parents. + todo.push(parent); + } + } + } + entry.insert(ancestors) + } + }; + Ok(ancestors.contains(&commit)) +} + #[cfg(test)] mod tests { use super::*; diff --git a/josh-core/src/housekeeping.rs b/josh-core/src/housekeeping.rs index bfc1b571e..1592d7946 100644 --- a/josh-core/src/housekeeping.rs +++ b/josh-core/src/housekeeping.rs @@ -295,12 +295,12 @@ pub fn refresh_known_filters( &to_filtered_ref(upstream_repo, filter_spec), upstream_repo, ) { - let mut u = filter_refs( + let (mut u, _) = filter_refs( transaction_overlay, filter::parse(filter_spec)?, &[from], filter::empty(), - )?; + ); u[0].0 = to_ref; updated_refs.append(&mut u); } diff --git a/josh-core/src/lib.rs b/josh-core/src/lib.rs index 0fc4ff979..085ad25f2 100644 --- a/josh-core/src/lib.rs +++ b/josh-core/src/lib.rs @@ -276,28 +276,33 @@ pub fn filter_refs( filterobj: filter::Filter, refs: &[(String, git2::Oid)], permissions: filter::Filter, -) -> JoshResult> { +) -> (Vec<(String, git2::Oid)>, Vec<(String, JoshError)>) { rs_tracing::trace_scoped!("filter_refs", "spec": filter::spec(filterobj)); let s = tracing::Span::current(); let _e = s.enter(); let mut updated = vec![]; + let mut errors = vec![]; tracing::trace!("filter_refs"); for k in refs { - let oid = ok_or!(filter_commit(transaction, filterobj, k.1, permissions), { - tracing::event!( - tracing::Level::WARN, - msg = "filter_refs: Can't filter reference", - warn = true, - from = k.0.as_str(), - ); - git2::Oid::zero() - }); + let oid = match filter_commit(transaction, filterobj, k.1, permissions) { + Ok(oid) => oid, + Err(e) => { + errors.push((k.0.to_string(), e)); + tracing::event!( + tracing::Level::WARN, + msg = "filter_refs: Can't filter reference", + warn = true, + from = k.0.as_str(), + ); + git2::Oid::zero() + } + }; updated.push((k.0.to_string(), oid)); } - Ok(updated) + (updated, errors) } pub fn update_refs( diff --git a/josh-filter/src/bin/josh-filter.rs b/josh-filter/src/bin/josh-filter.rs index 4628c33fc..69e76c551 100644 --- a/josh-filter/src/bin/josh-filter.rs +++ b/josh-filter/src/bin/josh-filter.rs @@ -236,12 +236,12 @@ fn run_filter(args: Vec) -> josh::JoshResult { if i.contains(":workspace=") { continue; } - let mut updated_refs = josh::filter_refs( + let (mut updated_refs, _) = josh::filter_refs( &transaction, josh::filter::parse(&i)?, &[(input_ref.to_string(), r.id())], josh::filter::empty(), - )?; + ); updated_refs[0].0 = "refs/JOSH_TMP".to_string(); josh::update_refs(&transaction, &mut updated_refs, ""); } @@ -296,7 +296,12 @@ fn run_filter(args: Vec) -> josh::JoshResult { git2::Oid::zero() }; - let mut updated_refs = josh::filter_refs(&transaction, filterobj, &refs, permissions_filter)?; + let (mut updated_refs, errors) = + josh::filter_refs(&transaction, filterobj, &refs, permissions_filter); + + for error in errors { + return Err(error.1); + } for i in 0..updated_refs.len() { if updated_refs[i].0 == input_ref { if reverse { diff --git a/josh-proxy/src/bin/josh-proxy.rs b/josh-proxy/src/bin/josh-proxy.rs index 57f326147..d92afe385 100644 --- a/josh-proxy/src/bin/josh-proxy.rs +++ b/josh-proxy/src/bin/josh-proxy.rs @@ -481,7 +481,7 @@ async fn do_filter( t2.repo() .odb()? .add_disk_alternate(repo_path.join("mirror").join("objects").to_str().unwrap())?; - let updated_refs = josh::filter_refs(&t2, filter, &refs_list, josh::filter::empty())?; + let (updated_refs, _) = josh::filter_refs(&t2, filter, &refs_list, josh::filter::empty()); let mut updated_refs = josh_proxy::refs_locking(updated_refs, &meta); josh::housekeeping::namespace_refs(&mut updated_refs, temp_ns.name()); josh::update_refs(&t2, &mut updated_refs, &temp_ns.reference(&head_ref)); diff --git a/tests/filter/start.t b/tests/filter/start.t index ff2e3ba36..96f55e55b 100644 --- a/tests/filter/start.t +++ b/tests/filter/start.t @@ -48,18 +48,24 @@ |/ * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 + $ josh-filter -s ":rev(ffffffffffffffffffffffffffffffffffffffff:prefix=x/y)" --update refs/heads/filtered + [5] :prefix=x + [5] :prefix=y + ERROR: `:rev(...)` with non existing OID: ffffffffffffffffffffffffffffffffffffffff + [1] + $ josh-filter -s ":rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y)" --update refs/heads/filtered [5] :prefix=x [5] :prefix=y [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) $ git log --graph --decorate --pretty=%H:%T refs/heads/filtered - * 8b4097f3318cdf47e46266fc7fef5331bf189b6c:5f47d9fdffdc726bb8ebcfea67531d2574243c5d + * 54651c29aa86e8512a7b9d39e3b8ea26da644247:5f47d9fdffdc726bb8ebcfea67531d2574243c5d |\ | * ee931ac07e4a953d1d2e0f65968946f5c09b0f4c:5d0da4f47308da86193b53b3374f5630c5a0fa3e | * cc0382917c6488d69dca4d6a147d55251b06ac08:8408d8fc882cba8e945b16bc69e3b475d65ecbeb - | * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 - * e707f76bb6a1390f28b2162da5b5eb6933009070:5d8a699f74b48c9c595f4615dd3755244e11d176 - * 0b4cf6c9efbbda1eada39fa9c1d21d2525b027bb:3d77ff51363c9825cc2a221fc0ba5a883a1a2c72 + * | daf46738b8fddd211a1609bf3b9de339fe7589eb:5d8a699f74b48c9c595f4615dd3755244e11d176 + |/ + * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 $ josh-filter -s ":rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y)" --update refs/heads/filtered @@ -68,12 +74,12 @@ [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [5] :rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) $ git log --graph --decorate --pretty=%H:%T refs/heads/filtered - * dbc12216fd70cd41937b99940b1f74dde60b4f44:5f47d9fdffdc726bb8ebcfea67531d2574243c5d + * 5fe60a2d55b652822b3d3f25410714e9053ba72b:5f47d9fdffdc726bb8ebcfea67531d2574243c5d |\ - | * 86871b8775ad3baca86484337d1072aa1d386f7e:5d0da4f47308da86193b53b3374f5630c5a0fa3e - | * 975d4c4975912729482cc864d321c5196a969271:de6937d89a7433c80125962616db5dca6c206d9d - | * 0b4cf6c9efbbda1eada39fa9c1d21d2525b027bb:3d77ff51363c9825cc2a221fc0ba5a883a1a2c72 - * 08158c6ba260a65db99c1e9e6f519e1963dff07b:6d18321f410e431cd446258dd5e01999306d9d44 + | * 0822879dab0a93f29848500e72642d6c8c0db162:5d0da4f47308da86193b53b3374f5630c5a0fa3e + | * 5c145ed574623e7687f4c7a5d1d40b48687bf17c:de6937d89a7433c80125962616db5dca6c206d9d + * | 08158c6ba260a65db99c1e9e6f519e1963dff07b:6d18321f410e431cd446258dd5e01999306d9d44 + |/ * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 $ cat > filter.josh < :rev( @@ -104,16 +110,17 @@ > ) > EOF $ josh-filter -s --file filter.josh --update refs/heads/filtered + [1] :prefix=z [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/z) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) - [5] :prefix=x [5] :prefix=y [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) + [6] :prefix=x $ cat > filter.josh < :rev( > e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y @@ -122,37 +129,39 @@ > EOF $ josh-filter -s --file filter.josh --update refs/heads/filtered Warning: reference refs/heads/filtered wasn't updated + [1] :prefix=z [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/z) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) - [5] :prefix=x [5] :prefix=y [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) + [6] :prefix=x $ git log --graph --decorate --pretty=%H:%T refs/heads/filtered - * e8b8c260e894186db18bffef15da3f5d292902f8:5f47d9fdffdc726bb8ebcfea67531d2574243c5d + * 1c4fe25dc386c77adaae12d6b1cd3abfa296fc3c:5f47d9fdffdc726bb8ebcfea67531d2574243c5d |\ - | * d817c466a639fca29059705144ef9f63e194c3b5:5d0da4f47308da86193b53b3374f5630c5a0fa3e - | * 28b0f8962384c35ff4f370c0fb8d75bc9b035248:b9d380f578c1cb2bb5039977f64ccf1a804a91de - | * 26cbb56df84c5e9fdce7afc7855025862e835ee2:105b58b790c53d350e23a51ad763a88e6b977ae7 - * 08158c6ba260a65db99c1e9e6f519e1963dff07b:6d18321f410e431cd446258dd5e01999306d9d44 - * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 + | * 17a13131b354b75d39aa29896f0500ac1b5e6764:5d0da4f47308da86193b53b3374f5630c5a0fa3e + | * 8516b8e4396bc91c72cec0038325d82604e8d685:b9d380f578c1cb2bb5039977f64ccf1a804a91de + | * 9f0db868b59a422c114df33bc6a8b2950f80490b:a087bfbdb1a5bad499b40ccd1363d30db1313f54 + * 74a368bd558785377d64ecdb3a47f2d1b4f25113:6d18321f410e431cd446258dd5e01999306d9d44 + * 26cbb56df84c5e9fdce7afc7855025862e835ee2:105b58b790c53d350e23a51ad763a88e6b977ae7 $ josh-filter -s :linear --update refs/heads/filtered + [1] :prefix=z [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,975d4c4975912729482cc864d321c5196a969271:prefix=x/z) [2] :rev(0000000000000000000000000000000000000000:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [2] :rev(0000000000000000000000000000000000000000:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [3] :linear - [5] :prefix=x [5] :prefix=y [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) + [6] :prefix=x $ git log --graph --decorate --pretty=%H:%T refs/heads/filtered * f8e8bc9daf54340c9fce647be467d2577b623bbe:5f47d9fdffdc726bb8ebcfea67531d2574243c5d * e707f76bb6a1390f28b2162da5b5eb6933009070:5d8a699f74b48c9c595f4615dd3755244e11d176 @@ -188,12 +197,12 @@ [2] :rev(0000000000000000000000000000000000000000:prefix=y,0b4cf6c9efbbda1eada39fa9c1d21d2525b027bb:prefix=z) [3] :linear [3] :rev(0000000000000000000000000000000000000000:prefix=x,0b4cf6c9efbbda1eada39fa9c1d21d2525b027bb:prefix=z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=y) - [5] :prefix=x [5] :prefix=y [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/y,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(975d4c4975912729482cc864d321c5196a969271:prefix=x/z,e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) [5] :rev(e707f76bb6a1390f28b2162da5b5eb6933009070:prefix=x/y) + [6] :prefix=x $ git log --graph --decorate --pretty=%H:%T refs/heads/filtered * 2944f04c33ea037f7696282bf20b2e570524552e:047b1b6f39e8d95b62ef7f136189005d0e3c80b3 diff --git a/tests/proxy/amend_patchset.t b/tests/proxy/amend_patchset.t index 5b9132dd8..e60bd6825 100644 --- a/tests/proxy/amend_patchset.t +++ b/tests/proxy/amend_patchset.t @@ -124,7 +124,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/authentication.t b/tests/proxy/authentication.t index c3a5bf8f6..0d887992c 100644 --- a/tests/proxy/authentication.t +++ b/tests/proxy/authentication.t @@ -124,7 +124,7 @@ "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/caching.t b/tests/proxy/caching.t index 198123dda..6fe2e6f79 100644 --- a/tests/proxy/caching.t +++ b/tests/proxy/caching.t @@ -51,7 +51,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf @@ -162,7 +162,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_absent_head.t b/tests/proxy/clone_absent_head.t index 4ec601ed2..9663cc77b 100644 --- a/tests/proxy/clone_absent_head.t +++ b/tests/proxy/clone_absent_head.t @@ -85,7 +85,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_all.t b/tests/proxy/clone_all.t index 997adf058..dfe84ea99 100644 --- a/tests/proxy/clone_all.t +++ b/tests/proxy/clone_all.t @@ -53,7 +53,7 @@ "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_blocked.t b/tests/proxy/clone_blocked.t index bdaeebff8..c3556d004 100644 --- a/tests/proxy/clone_blocked.t +++ b/tests/proxy/clone_blocked.t @@ -9,7 +9,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_invalid_url.t b/tests/proxy/clone_invalid_url.t index 78c9a577e..5638ff505 100644 --- a/tests/proxy/clone_invalid_url.t +++ b/tests/proxy/clone_invalid_url.t @@ -32,7 +32,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_locked_refs.t b/tests/proxy/clone_locked_refs.t index e289890de..6103ae643 100644 --- a/tests/proxy/clone_locked_refs.t +++ b/tests/proxy/clone_locked_refs.t @@ -111,7 +111,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_prefix.t b/tests/proxy/clone_prefix.t index f4c01ec47..a928e56c6 100644 --- a/tests/proxy/clone_prefix.t +++ b/tests/proxy/clone_prefix.t @@ -74,7 +74,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_sha.t b/tests/proxy/clone_sha.t index f94f6b783..2b1f6035f 100644 --- a/tests/proxy/clone_sha.t +++ b/tests/proxy/clone_sha.t @@ -98,7 +98,7 @@ Check (2) and (3) but with a branch ref "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_subsubtree.t b/tests/proxy/clone_subsubtree.t index 748f751c5..eea2ae17c 100644 --- a/tests/proxy/clone_subsubtree.t +++ b/tests/proxy/clone_subsubtree.t @@ -87,7 +87,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_subtree.t b/tests/proxy/clone_subtree.t index fa200a7e1..8f5bba9a6 100644 --- a/tests/proxy/clone_subtree.t +++ b/tests/proxy/clone_subtree.t @@ -85,7 +85,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_subtree_no_master.t b/tests/proxy/clone_subtree_no_master.t index c07d4a7ff..e1195d49f 100644 --- a/tests/proxy/clone_subtree_no_master.t +++ b/tests/proxy/clone_subtree_no_master.t @@ -78,7 +78,7 @@ "real_repo.git" = [":/sub1"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_subtree_tags.t b/tests/proxy/clone_subtree_tags.t index 5b9bb0240..1fbe4bc74 100644 --- a/tests/proxy/clone_subtree_tags.t +++ b/tests/proxy/clone_subtree_tags.t @@ -115,7 +115,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/clone_with_meta.t b/tests/proxy/clone_with_meta.t index 268558356..c35b2bb79 100644 --- a/tests/proxy/clone_with_meta.t +++ b/tests/proxy/clone_with_meta.t @@ -129,7 +129,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/empty_commit.t b/tests/proxy/empty_commit.t index 9a654ef69..126423fda 100644 --- a/tests/proxy/empty_commit.t +++ b/tests/proxy/empty_commit.t @@ -83,7 +83,7 @@ should still be included. "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/get_version.t b/tests/proxy/get_version.t index af1074b4e..4680a00a6 100644 --- a/tests/proxy/get_version.t +++ b/tests/proxy/get_version.t @@ -7,7 +7,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/import_export.t b/tests/proxy/import_export.t index 45e5cad73..0543b3ac3 100644 --- a/tests/proxy/import_export.t +++ b/tests/proxy/import_export.t @@ -301,7 +301,7 @@ Flushed credential cache "repo2.git" = [":prefix=repo2"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/join_with_merge.t b/tests/proxy/join_with_merge.t index 9fee18b4d..88a98c374 100644 --- a/tests/proxy/join_with_merge.t +++ b/tests/proxy/join_with_merge.t @@ -59,7 +59,7 @@ "real_repo.git" = [":prefix=sub1"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/markers.t b/tests/proxy/markers.t index a333c947b..5e2b4c73b 100644 --- a/tests/proxy/markers.t +++ b/tests/proxy/markers.t @@ -340,7 +340,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/no_proxy.t b/tests/proxy/no_proxy.t index c004c924d..59efe06f4 100644 --- a/tests/proxy/no_proxy.t +++ b/tests/proxy/no_proxy.t @@ -35,7 +35,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/no_proxy_lfs.t b/tests/proxy/no_proxy_lfs.t index c24c5663f..3ce7e01d9 100644 --- a/tests/proxy/no_proxy_lfs.t +++ b/tests/proxy/no_proxy_lfs.t @@ -50,7 +50,7 @@ $ bash ${TESTDIR}/destroy_test_env.sh . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_graphql.t b/tests/proxy/push_graphql.t index a9c1a8ba8..9e11441cd 100644 --- a/tests/proxy/push_graphql.t +++ b/tests/proxy/push_graphql.t @@ -69,7 +69,7 @@ "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_new_branch.t b/tests/proxy/push_new_branch.t index ab543e541..03f3205e5 100644 --- a/tests/proxy/push_new_branch.t +++ b/tests/proxy/push_new_branch.t @@ -114,7 +114,7 @@ Check the branch again ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_prefix.t b/tests/proxy/push_prefix.t index b82b4aeb2..f6498c5b5 100644 --- a/tests/proxy/push_prefix.t +++ b/tests/proxy/push_prefix.t @@ -56,7 +56,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_review.t b/tests/proxy/push_review.t index 9af9ccf95..89e5795bc 100644 --- a/tests/proxy/push_review.t +++ b/tests/proxy/push_review.t @@ -87,7 +87,7 @@ Make sure all temporary namespace got removed ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_review_already_in.t b/tests/proxy/push_review_already_in.t index 213c49100..d6dd0f8b9 100644 --- a/tests/proxy/push_review_already_in.t +++ b/tests/proxy/push_review_already_in.t @@ -48,7 +48,7 @@ test for that. "real_repo.git" = [] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_review_nop_behind.t b/tests/proxy/push_review_nop_behind.t index ce425f7e5..ec7e73c31 100644 --- a/tests/proxy/push_review_nop_behind.t +++ b/tests/proxy/push_review_nop_behind.t @@ -55,7 +55,7 @@ This is a regression test for that problem. "real_repo.git" = [] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_review_old.t b/tests/proxy/push_review_old.t index e29410cd8..2532f8af6 100644 --- a/tests/proxy/push_review_old.t +++ b/tests/proxy/push_review_old.t @@ -85,7 +85,7 @@ Flushed credential cache ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_review_topic.t b/tests/proxy/push_review_topic.t index 6c6d85cc6..719856a8c 100644 --- a/tests/proxy/push_review_topic.t +++ b/tests/proxy/push_review_topic.t @@ -42,7 +42,7 @@ Make sure all temporary namespace got removed ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_stacked.t b/tests/proxy/push_stacked.t index c96ad72dd..1ee3c9d81 100644 --- a/tests/proxy/push_stacked.t +++ b/tests/proxy/push_stacked.t @@ -151,7 +151,7 @@ Make sure all temporary namespace got removed ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_stacked_gerrit.t b/tests/proxy/push_stacked_gerrit.t index 6cfdc7fa9..ace09e144 100644 --- a/tests/proxy/push_stacked_gerrit.t +++ b/tests/proxy/push_stacked_gerrit.t @@ -134,7 +134,7 @@ Make sure all temporary namespace got removed "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_stacked_split.t b/tests/proxy/push_stacked_split.t index 089d5a2da..b0398820f 100644 --- a/tests/proxy/push_stacked_split.t +++ b/tests/proxy/push_stacked_split.t @@ -76,7 +76,7 @@ Make sure all temporary namespace got removed "real_repo.git" = ["::sub1/"] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_stacked_sub.t b/tests/proxy/push_stacked_sub.t index a7d50bb18..b07890d7e 100644 --- a/tests/proxy/push_stacked_sub.t +++ b/tests/proxy/push_stacked_sub.t @@ -132,7 +132,7 @@ Make sure all temporary namespace got removed ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_subdir_prefix.t b/tests/proxy/push_subdir_prefix.t index e6caec969..9bd1b98eb 100644 --- a/tests/proxy/push_subdir_prefix.t +++ b/tests/proxy/push_subdir_prefix.t @@ -48,7 +48,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_subtree.t b/tests/proxy/push_subtree.t index 70faaa30c..10f2758ce 100644 --- a/tests/proxy/push_subtree.t +++ b/tests/proxy/push_subtree.t @@ -90,7 +90,7 @@ Make sure all temporary namespace got removed ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/push_subtree_two_repos.t b/tests/proxy/push_subtree_two_repos.t index 367d5d691..db48d4d9e 100644 --- a/tests/proxy/push_subtree_two_repos.t +++ b/tests/proxy/push_subtree_two_repos.t @@ -118,7 +118,7 @@ Put a double slash in the URL to see that it also works ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/unrelated_leak.t b/tests/proxy/unrelated_leak.t index 4954abde3..cc03a84c9 100644 --- a/tests/proxy/unrelated_leak.t +++ b/tests/proxy/unrelated_leak.t @@ -133,7 +133,7 @@ Flushed credential cache ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace.t b/tests/proxy/workspace.t index 9cd33d984..ac74070ec 100644 --- a/tests/proxy/workspace.t +++ b/tests/proxy/workspace.t @@ -225,7 +225,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_create.t b/tests/proxy/workspace_create.t index 99c065fb6..21c8cbb74 100644 --- a/tests/proxy/workspace_create.t +++ b/tests/proxy/workspace_create.t @@ -442,7 +442,7 @@ Note that ws/d/ is now present in the ws ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_discover.t b/tests/proxy/workspace_discover.t index 3a8ea2dc6..51df2b341 100644 --- a/tests/proxy/workspace_discover.t +++ b/tests/proxy/workspace_discover.t @@ -102,7 +102,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_edit_commit.t b/tests/proxy/workspace_edit_commit.t index c683475df..5b1fe40c9 100644 --- a/tests/proxy/workspace_edit_commit.t +++ b/tests/proxy/workspace_edit_commit.t @@ -181,7 +181,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_in_workspace.t b/tests/proxy/workspace_in_workspace.t index 732e0e627..c85aad10f 100644 --- a/tests/proxy/workspace_in_workspace.t +++ b/tests/proxy/workspace_in_workspace.t @@ -245,7 +245,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_invalid_trailing_slash.t b/tests/proxy/workspace_invalid_trailing_slash.t index 649c6f472..53c12dbfa 100644 --- a/tests/proxy/workspace_invalid_trailing_slash.t +++ b/tests/proxy/workspace_invalid_trailing_slash.t @@ -184,7 +184,7 @@ Flushed credential cache ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_modify.t b/tests/proxy/workspace_modify.t index d637a0ddc..15bbd077a 100644 --- a/tests/proxy/workspace_modify.t +++ b/tests/proxy/workspace_modify.t @@ -441,7 +441,7 @@ Note that ws/d/ is now present in the ws ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_modify_chain.t b/tests/proxy/workspace_modify_chain.t index a14b0259e..81017c4d4 100644 --- a/tests/proxy/workspace_modify_chain.t +++ b/tests/proxy/workspace_modify_chain.t @@ -249,7 +249,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_modify_chain_prefix_subtree.t b/tests/proxy/workspace_modify_chain_prefix_subtree.t index 679f0b62f..5c784fd17 100644 --- a/tests/proxy/workspace_modify_chain_prefix_subtree.t +++ b/tests/proxy/workspace_modify_chain_prefix_subtree.t @@ -304,7 +304,7 @@ Note that ws/d/ is now present in the ws ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_pre_history.t b/tests/proxy/workspace_pre_history.t index 56629c528..f04e43971 100644 --- a/tests/proxy/workspace_pre_history.t +++ b/tests/proxy/workspace_pre_history.t @@ -88,7 +88,7 @@ file was created ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_publish.t b/tests/proxy/workspace_publish.t index af474b9cf..f70f4f946 100644 --- a/tests/proxy/workspace_publish.t +++ b/tests/proxy/workspace_publish.t @@ -125,7 +125,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf diff --git a/tests/proxy/workspace_tags.t b/tests/proxy/workspace_tags.t index 3a6026471..5d388fef2 100644 --- a/tests/proxy/workspace_tags.t +++ b/tests/proxy/workspace_tags.t @@ -231,7 +231,7 @@ ] . |-- josh - | `-- 18 + | `-- 19 | `-- sled | |-- blobs | |-- conf