diff --git a/CHANGELOG.md b/CHANGELOG.md index 4917c66..ef4ae72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,3 @@ -## 1.1.0 - -- feat: add ability to get and set libgit2 global options - -- feat: upgrade Flutter version constraints to `>=3.0.0` - -- feat: add ability to remove entries in index with `resetDefault(...)` method - -- feat: add ability to compare objects (value based equality). - - Note: comparison of Repository objects have naive implementation. Comparison is based on repository path, and previously loaded into memory index, odb, etc. might be different. Use with caution. - ## 1.0.0 - Initial release. diff --git a/lib/src/bindings/remote.dart b/lib/src/bindings/remote.dart index 3305c7e..e592d49 100644 --- a/lib/src/bindings/remote.dart +++ b/lib/src/bindings/remote.dart @@ -13,10 +13,10 @@ List list(Pointer repo) { final out = calloc(); libgit2.git_remote_list(out, repo); - final result = [ - for (var i = 0; i < out.ref.count; i++) - out.ref.strings[i].cast().toDartString() - ]; + final result = []; + for (var i = 0; i < out.ref.count; i++) { + result.add(out.ref.strings[i].cast().toDartString()); + } calloc.free(out); @@ -162,13 +162,11 @@ List rename({ calloc.free(out); throw LibGit2Error(libgit2.git_error_last()); } else { - final result = [ - for (var i = 0; i < out.ref.count; i++) - out.ref.strings[i].cast().toDartString() - ]; - + final result = []; + for (var i = 0; i < out.ref.count; i++) { + result.add(out.ref.strings[i].cast().toDartString()); + } calloc.free(out); - return result; } } @@ -255,13 +253,11 @@ List fetchRefspecs(Pointer remote) { final out = calloc(); libgit2.git_remote_get_fetch_refspecs(out, remote); - final result = [ - for (var i = 0; i < out.ref.count; i++) - out.ref.strings[i].cast().toDartString() - ]; - + final result = []; + for (var i = 0; i < out.ref.count; i++) { + result.add(out.ref.strings[i].cast().toDartString()); + } calloc.free(out); - return result; } @@ -270,13 +266,11 @@ List pushRefspecs(Pointer remote) { final out = calloc(); libgit2.git_remote_get_push_refspecs(out, remote); - final result = [ - for (var i = 0; i < out.ref.count; i++) - out.ref.strings[i].cast().toDartString() - ]; - + final result = []; + for (var i = 0; i < out.ref.count; i++) { + result.add(out.ref.strings[i].cast().toDartString()); + } calloc.free(out); - return result; } diff --git a/lib/src/bindings/repository.dart b/lib/src/bindings/repository.dart index 44a8745..f929af1 100644 --- a/lib/src/bindings/repository.dart +++ b/lib/src/bindings/repository.dart @@ -124,6 +124,7 @@ Pointer clone({ required String localPath, required bool bare, RemoteCallback? remoteCallback, + // Repository Function(String, bool)? repository, RepositoryCallback? repositoryCallback, String? checkoutBranch, required Callbacks callbacks, diff --git a/lib/src/bindings/worktree.dart b/lib/src/bindings/worktree.dart index 2daa0ae..ddfeee0 100644 --- a/lib/src/bindings/worktree.dart +++ b/lib/src/bindings/worktree.dart @@ -110,13 +110,11 @@ List list(Pointer repo) { calloc.free(out); throw LibGit2Error(libgit2.git_error_last()); } else { - final result = [ - for (var i = 0; i < out.ref.count; i++) - out.ref.strings[i].cast().toDartString() - ]; - + final result = []; + for (var i = 0; i < out.ref.count; i++) { + result.add(out.ref.strings[i].cast().toDartString()); + } calloc.free(out); - return result; } } diff --git a/lib/src/commit.dart b/lib/src/commit.dart index 9fbb59e..6bedac2 100644 --- a/lib/src/commit.dart +++ b/lib/src/commit.dart @@ -264,11 +264,18 @@ class Commit extends Equatable { /// List of parent commits [Oid]s. List get parents { + final parents = []; final parentCount = bindings.parentCount(_commitPointer); - return [ - for (var i = 0; i < parentCount; i++) - Oid(bindings.parentId(commitPointer: _commitPointer, position: i)) - ]; + + for (var i = 0; i < parentCount; i++) { + final parentOid = bindings.parentId( + commitPointer: _commitPointer, + position: i, + ); + parents.add(Oid(parentOid)); + } + + return parents; } /// Returns the specified parent of the commit at provided 0-based [position]. diff --git a/lib/src/diff.dart b/lib/src/diff.dart index d8c6c9e..6480172 100644 --- a/lib/src/diff.dart +++ b/lib/src/diff.dart @@ -285,18 +285,28 @@ class Diff extends Equatable { /// revisions. List get deltas { final length = bindings.length(_diffPointer); - return [ - for (var i = 0; i < length; i++) - DiffDelta(bindings.getDeltaByIndex(diffPointer: _diffPointer, index: i)) - ]; + final deltas = []; + for (var i = 0; i < length; i++) { + deltas.add( + DiffDelta( + bindings.getDeltaByIndex( + diffPointer: _diffPointer, + index: i, + ), + ), + ); + } + return deltas; } /// A List of [Patch]es. List get patches { final length = bindings.length(_diffPointer); - return [ - for (var i = 0; i < length; i++) Patch.fromDiff(diff: this, index: i) - ]; + final patches = []; + for (var i = 0; i < length; i++) { + patches.add(Patch.fromDiff(diff: this, index: i)); + } + return patches; } /// The patch diff text. diff --git a/lib/src/patch.dart b/lib/src/patch.dart index 16e5b25..36fd51f 100644 --- a/lib/src/patch.dart +++ b/lib/src/patch.dart @@ -237,10 +237,10 @@ class Patch extends Equatable { ); } - final intHeader = [ - for (var i = 0; i < hunkPointer.ref.header_len; i++) - hunkPointer.ref.header[i] - ]; + final intHeader = []; + for (var i = 0; i < hunkPointer.ref.header_len; i++) { + intHeader.add(hunkPointer.ref.header[i]); + } hunks.add( DiffHunk._( diff --git a/lib/src/rebase.dart b/lib/src/rebase.dart index 735e517..f3def74 100644 --- a/lib/src/rebase.dart +++ b/lib/src/rebase.dart @@ -47,13 +47,18 @@ class Rebase { /// List of operations that are to be applied. List get operations { + final result = []; final operationsCount = bindings.operationsCount(_rebasePointer); - return [ - for (var i = 0; i < operationsCount; i++) - RebaseOperation._( - bindings.getOperationByIndex(rebase: _rebasePointer, index: i), - ) - ]; + + for (var i = 0; i < operationsCount; i++) { + final operation = bindings.getOperationByIndex( + rebase: _rebasePointer, + index: i, + ); + result.add(RebaseOperation._(operation)); + } + + return result; } /// Index of the rebase operation that is currently being applied. If the diff --git a/lib/src/reference.dart b/lib/src/reference.dart index 1f45270..0a06c01 100644 --- a/lib/src/reference.dart +++ b/lib/src/reference.dart @@ -203,9 +203,14 @@ class Reference extends Equatable { /// /// Throws an [Exception] if error occured. Oid get target { - return type == ReferenceType.direct - ? Oid(bindings.target(_refPointer)) - : Oid(bindings.target(bindings.resolve(_refPointer))); + late final Pointer oidPointer; + + if (type == ReferenceType.direct) { + oidPointer = bindings.target(_refPointer); + } else { + oidPointer = bindings.target(bindings.resolve(_refPointer)); + } + return Oid(oidPointer); } /// Recursively peel reference until object of the specified [type] is found. diff --git a/lib/src/remote.dart b/lib/src/remote.dart index 9144861..20659ba 100644 --- a/lib/src/remote.dart +++ b/lib/src/remote.dart @@ -211,16 +211,20 @@ class Remote extends Equatable { final refs = bindings.lsRemotes(_remotePointer); bindings.disconnect(_remotePointer); - return [ - for (final ref in refs) + final result = []; + for (final ref in refs) { + result.add( RemoteReference._( isLocal: ref['local']! as bool, localId: ref['loid'] as Oid?, name: ref['name']! as String, oid: ref['oid']! as Oid, symRef: ref['symref']! as String, - ) - ]; + ), + ); + } + + return result; } /// Downloads new data and updates tips. diff --git a/lib/src/revparse.dart b/lib/src/revparse.dart index e413939..5df8a63 100644 --- a/lib/src/revparse.dart +++ b/lib/src/revparse.dart @@ -22,9 +22,11 @@ class RevParse { spec: spec, ); object = Commit(pointers[0].cast()); - reference = pointers.length == 2 - ? Reference(pointers[1].cast()) - : null; + if (pointers.length == 2) { + reference = Reference(pointers[1].cast()); + } else { + reference = null; + } } /// Object found by a revision string. diff --git a/lib/src/stash.dart b/lib/src/stash.dart index 85f5ff2..27e22ab 100644 --- a/lib/src/stash.dart +++ b/lib/src/stash.dart @@ -43,12 +43,14 @@ class Stash extends Equatable { String? message, Set flags = const {GitStash.defaults}, }) { + final flagsInt = flags.fold(0, (int acc, e) => acc | e.value); + return Oid( bindings.save( repoPointer: repo.pointer, stasherPointer: stasher.pointer, message: message, - flags: flags.fold(0, (int acc, e) => acc | e.value), + flags: flagsInt, ), ); } diff --git a/lib/src/tag.dart b/lib/src/tag.dart index 8a9e26a..ad6867b 100644 --- a/lib/src/tag.dart +++ b/lib/src/tag.dart @@ -208,7 +208,11 @@ class Tag extends Equatable { /// Tagger (author) of a tag if there is one. Signature? get tagger { final sigPointer = bindings.tagger(_tagPointer); - return sigPointer != nullptr ? Signature(sigPointer) : null; + if (sigPointer != nullptr) { + return Signature(sigPointer); + } else { + return null; + } } /// Releases memory allocated for tag object. diff --git a/lib/src/tree.dart b/lib/src/tree.dart index 5ab1a73..218bba5 100644 --- a/lib/src/tree.dart +++ b/lib/src/tree.dart @@ -35,10 +35,19 @@ class Tree extends Equatable { /// List with tree entries of a tree. List get entries { final entryCount = bindings.entryCount(_treePointer); - return [ - for (var i = 0; i < entryCount; i++) - TreeEntry(bindings.getByIndex(treePointer: _treePointer, index: i)) - ]; + final result = []; + for (var i = 0; i < entryCount; i++) { + result.add( + TreeEntry( + bindings.getByIndex( + treePointer: _treePointer, + index: i, + ), + ), + ); + } + + return result; } /// Lookups a tree entry in the tree. diff --git a/macos/libgit2dart.podspec b/macos/libgit2dart.podspec index 2a2ab92..b5c817b 100644 --- a/macos/libgit2dart.podspec +++ b/macos/libgit2dart.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'libgit2dart' - s.version = '1.1.0' + s.version = '1.0.0' s.summary = 'Dart bindings to libgit2.' s.description = <<-DESC Dart bindings to libgit2. diff --git a/pubspec.yaml b/pubspec.yaml index f4591ed..e356446 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: libgit2dart description: Dart bindings to libgit2, provides ability to use libgit2 library in Dart and Flutter. -version: 1.1.0 +version: 1.0.0 homepage: https://github.com/SkinnyMind/libgit2dart