mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-04 20:29:08 -04:00
feat(revwalk): allow combining sorting types
This commit is contained in:
parent
da3bda077a
commit
f19a34a768
3 changed files with 10 additions and 8 deletions
|
@ -1,4 +1,6 @@
|
|||
import 'dart:ffi';
|
||||
import 'package:libgit2dart/libgit2dart.dart';
|
||||
|
||||
import 'bindings/libgit2_bindings.dart';
|
||||
import 'bindings/repository.dart' as bindings;
|
||||
import 'bindings/merge.dart' as merge_bindings;
|
||||
|
@ -329,11 +331,9 @@ class Repository {
|
|||
/// Returns the list of commits starting from provided [oid].
|
||||
///
|
||||
/// If [sorting] isn't provided default will be used (reverse chronological order, like in git).
|
||||
List<Commit> log(Oid oid, [GitSort sorting = GitSort.none]) {
|
||||
List<Commit> log(Oid oid, [List<GitSort>? sorting]) {
|
||||
final walker = RevWalk(this);
|
||||
if (sorting != GitSort.none) {
|
||||
walker.sorting(sorting);
|
||||
}
|
||||
walker.sorting(sorting ?? [GitSort.none]);
|
||||
walker.push(oid);
|
||||
final result = walker.walk();
|
||||
walker.free();
|
||||
|
|
|
@ -36,8 +36,10 @@ class RevWalk {
|
|||
/// Changing the sorting mode resets the walker.
|
||||
///
|
||||
/// Throws a [LibGit2Error] if error occured.
|
||||
void sorting(GitSort sorting) =>
|
||||
bindings.sorting(_revWalkPointer, sorting.value);
|
||||
void sorting(List<GitSort> sorting) {
|
||||
final sort = sorting.fold(0, (previousValue, e) => e.value);
|
||||
bindings.sorting(_revWalkPointer, sort);
|
||||
}
|
||||
|
||||
/// Adds a new root for the traversal.
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue