A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/GitoxideLabs/gitoxide/commit/a9befb284dc17d3656cf83859836bc221a42d67e below:

hide()`. · GitoxideLabs/gitoxide@a9befb2 · GitHub

@@ -155,6 +155,7 @@ pub struct Platform<'repo> {

155 155

/// The owning repository.

156 156

pub repo: &'repo Repository,

157 157

pub(crate) tips: Vec<ObjectId>,

158 +

pub(crate) hidden: Vec<ObjectId>,

158 159

pub(crate) boundary: Vec<ObjectId>,

159 160

pub(crate) sorting: Sorting,

160 161

pub(crate) parents: gix_traverse::commit::Parents,

@@ -167,6 +168,7 @@ impl<'repo> Platform<'repo> {

167 168

revision::walk::Platform {

168 169

repo,

169 170

tips: tips.into_iter().map(Into::into).collect(),

171 +

hidden: Vec::new(),

170 172

sorting: Default::default(),

171 173

parents: Default::default(),

172 174

use_commit_graph: None,

@@ -210,13 +212,13 @@ impl Platform<'_> {

210 212

self

211 213

}

212 214 213 -

/// Don't cross the given `ids` during traversal.

215 +

/// Don't cross the given `ids` (commits) during traversal.

214 216

///

215 217

/// Note that this forces the [sorting](Self::sorting()) to [`ByCommitTimeCutoff`](Sorting::ByCommitTimeCutoff)

216 218

/// configured with the oldest available commit time, ensuring that no commits older than the oldest of `ids` will be returned either.

217 219

/// Also note that commits that can't be accessed or are missing are simply ignored for the purpose of obtaining the cutoff date.

218 220

///

219 -

/// A boundary is distinctly different from exclusive refsepcs `^branch-to-not-list` in Git log.

221 +

/// A boundary is distinctly different from exclusive revspecs `^branch-to-not-list` in Git log.

220 222

///

221 223

/// If this is not desired, [set the sorting](Self::sorting()) to something else right after this call.

222 224

pub fn with_boundary(mut self, ids: impl IntoIterator<Item = impl Into<ObjectId>>) -> Self {

@@ -242,6 +244,20 @@ impl Platform<'_> {

242 244

}

243 245

self

244 246

}

247 + 248 +

/// Don't cross the given `tips` (commits) during traversal or return them, and also don't return any of their ancestors.

249 +

///

250 +

/// This allows achieving revspecs like `^branch-to-not-list`, where the commit behind that name would be passed as `ids`.

251 +

///

252 +

/// In other words, each of the `tips` acts like a starting point for an iteration that will paint commits as unwanted, and

253 +

/// wanted commits cannot cross it.

254 +

///

255 +

/// The side effect of this is that commits can't be returned immediately as one still has to wait and see if they may be unwanted later.

256 +

/// This makes traversals with hidden commits more costly, with a chance to traverse all commits if the hidden and non-hidden commits are disjoint.

257 +

pub fn with_hidden(mut self, tips: impl IntoIterator<Item = impl Into<ObjectId>>) -> Self {

258 +

self.hidden = tips.into_iter().map(Into::into).collect();

259 +

self

260 +

}

245 261

}

246 262 247 263

/// Produce the iterator

@@ -262,6 +278,7 @@ impl<'repo> Platform<'repo> {

262 278

use_commit_graph,

263 279

commit_graph,

264 280

mut boundary,

281 +

hidden,

265 282

} = self;

266 283

boundary.sort();

267 284

Ok(revision::Walk {

@@ -301,6 +318,7 @@ impl<'repo> Platform<'repo> {

301 318

})

302 319

.sorting(sorting.into_simple().expect("for now there is nothing else"))?

303 320

.parents(parents)

321 +

.hide(hidden)?

304 322

.commit_graph(

305 323

commit_graph.or(use_commit_graph

306 324

.map_or_else(|| self.repo.config.may_use_commit_graph(), Ok)?


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4