style: stricter linting

This commit is contained in:
Aleksey Kulikov 2021-10-23 12:31:18 +03:00
parent f3fbc80f8e
commit 4717aab57f
84 changed files with 773 additions and 653 deletions

View file

@ -1,13 +1,50 @@
include: package:lints/recommended.yaml
linter:
rules:
- prefer_const_constructors
- sort_constructors_first
- directives_ordering
- lines_longer_than_80_chars
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
exclude:
- lib/src/bindings/libgit2_bindings.dart
linter:
rules:
- always_use_package_imports
- avoid_bool_literals_in_conditional_expressions
- avoid_dynamic_calls
- avoid_escaping_inner_quotes
- avoid_field_initializers_in_const_classes
- avoid_positional_boolean_parameters
- avoid_print
- avoid_redundant_argument_values
- avoid_returning_this
- avoid_returning_null_for_future
- avoid_setters_without_getters
- avoid_slow_async_io
- avoid_type_to_string
- avoid_void_async
- cast_nullable_to_non_nullable
- directives_ordering
- eol_at_end_of_file
- join_return_with_assignment
- library_private_types_in_public_api
- lines_longer_than_80_chars
- missing_whitespace_between_adjacent_strings
- noop_primitive_operations
- parameter_assignments
- prefer_const_constructors
- prefer_constructors_over_static_methods
- prefer_final_in_for_each
- prefer_final_locals
- prefer_if_elements_to_conditional_expressions
- prefer_null_aware_method_calls
- require_trailing_commas
- sort_constructors_first
- type_annotate_public_apis
- use_named_constants
- use_raw_strings
- use_setters_to_change_properties
- use_string_buffers
- sort_unnamed_constructors_first
- sort_pub_dependencies

View file

@ -1,3 +1,5 @@
// ignore_for_file: avoid_print
import 'dart:io';
import 'package:libgit2dart/libgit2dart.dart';
import '../test/helpers/util.dart';
@ -28,8 +30,10 @@ void main() {
// Set value of config variable
repoConfig['core.variable'] = 'value';
print('\nNew value for variable '
'"core.variable": ${repoConfig['core.variable']}');
print(
'\nNew value for variable '
'"core.variable": ${repoConfig['core.variable']}',
);
// Delete variable
repoConfig.delete('core.variable');

View file

@ -1,3 +1,5 @@
// ignore_for_file: avoid_print
import 'dart:io';
import 'package:libgit2dart/libgit2dart.dart';
import '../test/helpers/util.dart';

View file

@ -1,3 +1,5 @@
// ignore_for_file: avoid_print
import 'dart:io';
import 'package:libgit2dart/libgit2dart.dart';

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Look up the value of one git attribute for path.
///

View file

@ -1,9 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../oid.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/oid.dart';
import 'package:libgit2dart/src/util.dart';
/// Get the blame for a single file.
///

View file

@ -2,9 +2,9 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Lookup a blob object from a repository.
///
@ -33,7 +33,7 @@ Pointer<git_oid> id(Pointer<git_blob> blob) => libgit2.git_blob_id(blob);
/// Searching for NUL bytes and looking for a reasonable ratio of printable to
/// non-printable characters among the first 8000 bytes.
bool isBinary(Pointer<git_blob> blob) {
return libgit2.git_blob_is_binary(blob) == 1 ? true : false;
return libgit2.git_blob_is_binary(blob) == 1 || false;
}
/// Get a read-only buffer with the raw content of a blob.

View file

@ -2,11 +2,10 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'reference.dart' as reference_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/reference.dart' as reference_bindings;
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Return a list of branches.
///
@ -27,7 +26,7 @@ List<Pointer<git_reference>> list({
throw LibGit2Error(libgit2.git_error_last());
}
var result = <Pointer<git_reference>>[];
final result = <Pointer<git_reference>>[];
var error = 0;
while (error == 0) {
@ -163,7 +162,7 @@ bool isHead(Pointer<git_reference> branch) {
if (result < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return result == 1 ? true : false;
return result == 1 || false;
}
}
@ -179,7 +178,7 @@ bool isCheckedOut(Pointer<git_reference> branch) {
if (result < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return result == 1 ? true : false;
return result == 1 || false;
}
}

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Updates files in the index and the working tree to match the content of the
/// commit pointed at by HEAD.

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Lookup a commit object from a repository.
///

View file

@ -3,10 +3,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a new config instance containing a single on-disk file
Pointer<git_config> open(String path) {

View file

@ -1,7 +1,8 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a new plain-text username and password credential object.
Pointer<git_credential> userPass({

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Describe a commit.
///

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a diff between the repository index and the workdir directory.
Pointer<git_diff> indexToWorkdir({

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Determine if a commit is the descendant of another commit.
///
@ -26,7 +25,7 @@ bool descendantOf({
if (result < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return result == 1 ? true : false;
return result == 1 || false;
}
}

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Update the contents of an existing index object in memory by reading from
/// the hard disk.
@ -88,7 +87,7 @@ bool find({required Pointer<git_index> indexPointer, required String path}) {
calloc.free(pathC);
return result == git_error_code.GIT_ENOTFOUND ? false : true;
return result != git_error_code.GIT_ENOTFOUND || false;
}
/// Get the count of entries currently in the index.
@ -209,7 +208,7 @@ void addAll({
required Pointer<git_index> indexPointer,
required List<String> pathspec,
}) {
var pathspecC = calloc<git_strarray>();
final pathspecC = calloc<git_strarray>();
final pathPointers =
pathspec.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
final strArray = calloc<Pointer<Int8>>(pathspec.length);
@ -290,7 +289,7 @@ void removeAll({
/// Determine if the index contains entries representing file conflicts.
bool hasConflicts(Pointer<git_index> index) {
return libgit2.git_index_has_conflicts(index) == 1 ? true : false;
return libgit2.git_index_has_conflicts(index) == 1 || false;
}
/// Return list of conflicts in the index.
@ -302,7 +301,7 @@ List<Map<String, Pointer<git_index_entry>>> conflictList(
final iterator = calloc<Pointer<git_index_conflict_iterator>>();
libgit2.git_index_conflict_iterator_new(iterator, index);
var result = <Map<String, Pointer<git_index_entry>>>[];
final result = <Map<String, Pointer<git_index_entry>>>[];
var error = 0;
while (error >= 0) {

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Allocate a new mailmap object.
///

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Find a merge base between two commits.
///

View file

@ -1,8 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Returns list of notes for repository.
///
@ -19,12 +20,12 @@ List<Map<String, Pointer>> list(Pointer<git_repository> repo) {
throw LibGit2Error(libgit2.git_error_last());
}
var result = <Map<String, Pointer>>[];
final result = <Map<String, Pointer>>[];
var nextError = 0;
while (nextError >= 0) {
final noteOid = calloc<git_oid>();
var annotatedOid = calloc<git_oid>();
final annotatedOid = calloc<git_oid>();
nextError = libgit2.git_note_next(noteOid, annotatedOid, iterator.value);
if (nextError >= 0) {
final out = calloc<Pointer<git_note>>();

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Get the object type of an object.
int type(Pointer<git_object> obj) => libgit2.git_object_type(obj);

View file

@ -1,12 +1,11 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../oid.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'oid.dart' as oid_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/oid.dart' as oid_bindings;
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/oid.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a new object database with no backends.
///
@ -66,7 +65,7 @@ bool exists({
required Pointer<git_odb> odbPointer,
required Pointer<git_oid> oidPointer,
}) {
return libgit2.git_odb_exists(odbPointer, oidPointer) == 1 ? true : false;
return libgit2.git_odb_exists(odbPointer, oidPointer) == 1 || false;
}
/// List of objects in the database.
@ -91,7 +90,9 @@ List<Oid> objects(Pointer<git_odb> odb) {
const except = -1;
final cb =
Pointer.fromFunction<Int32 Function(Pointer<git_oid>, Pointer<Void>)>(
_forEachCb, except);
_forEachCb,
except,
);
final error = libgit2.git_odb_foreach(odb, cb, nullptr);
if (error < 0) {

View file

@ -1,9 +1,8 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Parse N characters of a hex formatted object id into a git_oid.
Pointer<git_oid> fromStrN(String hex) {
@ -30,7 +29,7 @@ Pointer<git_oid> fromSHA(String hex) {
/// Copy an already raw oid into a git_oid structure.
Pointer<git_oid> fromRaw(Array<Uint8> raw) {
final out = calloc<git_oid>();
var rawC = calloc<Uint8>(20);
final rawC = calloc<Uint8>(20);
for (var i = 0; i < 20; i++) {
rawC[i] = raw[i];

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Initialize a new packbuilder.
///

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Directly generate a patch from the difference between two buffers.
///

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Initializes a rebase operation to rebase the changes in [branchPointer]
/// relative to [upstreamPointer] onto [ontoPointer] another branch. To begin

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Suggests that the given refdb compress or optimize its references.
/// This mechanism is implementation specific. For on-disk reference databases,

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Get the type of a reference.
///
@ -126,16 +125,17 @@ Pointer<git_reference> rename({
///
/// Throws a [LibGit2Error] if error occured.
List<String> list(Pointer<git_repository> repo) {
var array = calloc<git_strarray>();
final array = calloc<git_strarray>();
final error = libgit2.git_reference_list(array, repo);
var result = <String>[];
final result = <String>[];
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
for (var i = 0; i < array.ref.count; i++) {
result.add(
array.ref.strings.elementAt(i).value.cast<Utf8>().toDartString());
array.ref.strings.elementAt(i).value.cast<Utf8>().toDartString(),
);
}
}
@ -154,27 +154,27 @@ bool hasLog({
calloc.free(refname);
return result == 1 ? true : false;
return result == 1 || false;
}
/// Check if a reference is a local branch.
bool isBranch(Pointer<git_reference> ref) {
return libgit2.git_reference_is_branch(ref) == 1 ? true : false;
return libgit2.git_reference_is_branch(ref) == 1 || false;
}
/// Check if a reference is a note.
bool isNote(Pointer<git_reference> ref) {
return libgit2.git_reference_is_note(ref) == 1 ? true : false;
return libgit2.git_reference_is_note(ref) == 1 || false;
}
/// Check if a reference is a remote tracking branch.
bool isRemote(Pointer<git_reference> ref) {
return libgit2.git_reference_is_remote(ref) == 1 ? true : false;
return libgit2.git_reference_is_remote(ref) == 1 || false;
}
/// Check if a reference is a tag.
bool isTag(Pointer<git_reference> ref) {
return libgit2.git_reference_is_tag(ref) == 1 ? true : false;
return libgit2.git_reference_is_tag(ref) == 1 || false;
}
/// Create a new direct reference.
@ -383,9 +383,7 @@ bool compare({
required Pointer<git_reference> ref1Pointer,
required Pointer<git_reference> ref2Pointer,
}) {
return libgit2.git_reference_cmp(ref1Pointer, ref2Pointer) == 0
? true
: false;
return libgit2.git_reference_cmp(ref1Pointer, ref2Pointer) == 0 || false;
}
/// Recursively peel reference until object of the specified type is found.

View file

@ -1,9 +1,8 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Read the reflog for the given reference.
///

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Get the source specifier.
String source(Pointer<git_refspec> refspec) {
@ -18,7 +17,7 @@ String destination(Pointer<git_refspec> refspec) {
/// Get the force update setting.
bool force(Pointer<git_refspec> refspec) {
return libgit2.git_refspec_force(refspec) == 1 ? true : false;
return libgit2.git_refspec_force(refspec) == 1 || false;
}
/// Get the refspec's string.
@ -40,7 +39,7 @@ bool matchesSource({
calloc.free(refnameC);
return result == 1 ? true : false;
return result == 1 || false;
}
/// Check if a refspec's destination descriptor matches a reference.
@ -53,7 +52,7 @@ bool matchesDestination({
calloc.free(refnameC);
return result == 1 ? true : false;
return result == 1 || false;
}
/// Transform a reference to its target following the refspec's rules.

View file

@ -1,11 +1,12 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../callbacks.dart';
import '../error.dart';
import '../oid.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'remote_callbacks.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
import 'package:libgit2dart/src/callbacks.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/oid.dart';
import 'package:libgit2dart/src/util.dart';
/// Get a list of the configured remotes for a repo.
///
@ -14,7 +15,7 @@ List<String> list(Pointer<git_repository> repo) {
final out = calloc<git_strarray>();
libgit2.git_remote_list(out, repo);
var result = <String>[];
final result = <String>[];
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
@ -156,7 +157,7 @@ List<String> rename({
calloc.free(out);
throw LibGit2Error(libgit2.git_error_last());
} else {
var result = <String>[];
final result = <String>[];
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
@ -247,7 +248,7 @@ List<String> fetchRefspecs(Pointer<git_remote> remote) {
final out = calloc<git_strarray>();
libgit2.git_remote_get_fetch_refspecs(out, remote);
var result = <String>[];
final result = <String>[];
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
@ -260,7 +261,7 @@ List<String> pushRefspecs(Pointer<git_remote> remote) {
final out = calloc<git_strarray>();
libgit2.git_remote_get_push_refspecs(out, remote);
var result = <String>[];
final result = <String>[];
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
@ -372,12 +373,12 @@ List<Map<String, Object?>> lsRemotes(Pointer<git_remote> remote) {
final size = calloc<Uint64>();
libgit2.git_remote_ls(out, size, remote);
var result = <Map<String, Object?>>[];
final result = <Map<String, Object?>>[];
for (var i = 0; i < size.value; i++) {
var remote = <String, Object?>{};
final remote = <String, Object?>{};
final local = out[0][i].ref.local == 1 ? true : false;
final local = out[0][i].ref.local == 1 || false;
remote['local'] = local;
remote['loid'] = local ? Oid.fromRaw(out[0][i].ref.loid) : null;
@ -412,7 +413,7 @@ void fetch({
String? reflogMessage,
String? proxyOption,
}) {
var refspecsC = calloc<git_strarray>();
final refspecsC = calloc<git_strarray>();
final refspecsPointers =
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
final strArray = calloc<Pointer<Int8>>(refspecs.length);
@ -468,7 +469,7 @@ void push({
required Callbacks callbacks,
String? proxyOption,
}) {
var refspecsC = calloc<git_strarray>();
final refspecsC = calloc<git_strarray>();
final refspecsPointers =
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
final strArray = calloc<Pointer<Int8>>(refspecs.length);

View file

@ -2,16 +2,16 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'package:libgit2dart/src/bindings/credentials.dart'
as credentials_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/callbacks.dart';
import 'package:libgit2dart/src/credentials.dart';
import 'package:libgit2dart/src/oid.dart';
import 'package:libgit2dart/src/remote.dart';
import 'package:libgit2dart/src/repository.dart';
import 'package:libgit2dart/src/util.dart';
import '../callbacks.dart';
import '../credentials.dart';
import '../oid.dart';
import '../remote.dart';
import '../repository.dart';
import 'credentials.dart' as credentials_bindings;
import 'libgit2_bindings.dart';
class RemoteCallbacks {
/// Callback function that reports transfer progress.
static void Function(TransferProgress)? transferProgress;
@ -108,7 +108,7 @@ class RemoteCallbacks {
) {
repo[0] = repositoryFunction!(
path.cast<Utf8>().toDartString(),
bare == 1 ? true : false,
bare == 1 || false,
).pointer;
return 0;
@ -146,7 +146,7 @@ class RemoteCallbacks {
}
if (credentials is UserPass) {
final cred = credentials as UserPass;
final cred = credentials! as UserPass;
credPointer[0] = credentials_bindings.userPass(
username: cred.username,
password: cred.password,
@ -155,7 +155,7 @@ class RemoteCallbacks {
}
if (credentials is Keypair) {
final cred = credentials as Keypair;
final cred = credentials! as Keypair;
credPointer[0] = credentials_bindings.sshKey(
username: cred.username,
publicKey: cred.pubKey,
@ -166,13 +166,13 @@ class RemoteCallbacks {
}
if (credentials is KeypairFromAgent) {
final cred = credentials as KeypairFromAgent;
final cred = credentials! as KeypairFromAgent;
credPointer[0] = credentials_bindings.sshKeyFromAgent(cred.username);
payload.cast<Int8>().value++;
}
if (credentials is KeypairFromMemory) {
final cred = credentials as KeypairFromMemory;
final cred = credentials! as KeypairFromMemory;
credPointer[0] = credentials_bindings.sshKeyFromMemory(
username: cred.username,
publicKey: cred.pubKey,

View file

@ -1,14 +1,13 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../callbacks.dart';
import '../error.dart';
import '../remote.dart';
import '../repository.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'remote_callbacks.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
import 'package:libgit2dart/src/callbacks.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/remote.dart';
import 'package:libgit2dart/src/repository.dart';
import 'package:libgit2dart/src/util.dart';
/// Attempt to open an already-existing repository at [path].
///
@ -219,7 +218,7 @@ void setNamespace({
/// Check if a repository is bare or not.
bool isBare(Pointer<git_repository> repo) {
return libgit2.git_repository_is_bare(repo) == 1 ? true : false;
return libgit2.git_repository_is_bare(repo) == 1 || false;
}
/// Check if a repository is empty.
@ -234,7 +233,7 @@ bool isEmpty(Pointer<git_repository> repo) {
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return error == 1 ? true : false;
return error == 1 || false;
}
}
@ -268,7 +267,7 @@ bool isHeadDetached(Pointer<git_repository> repo) {
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return error == 1 ? true : false;
return error == 1 || false;
}
}
@ -284,7 +283,7 @@ bool isBranchUnborn(Pointer<git_repository> repo) {
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
return error == 1 ? true : false;
return error == 1 || false;
}
}
@ -312,7 +311,7 @@ Map<String, String> identity(Pointer<git_repository> repo) {
final name = calloc<Pointer<Int8>>();
final email = calloc<Pointer<Int8>>();
libgit2.git_repository_ident(name, email, repo);
var identity = <String, String>{};
final identity = <String, String>{};
if (name.value == nullptr && email.value == nullptr) {
return identity;
@ -369,12 +368,12 @@ Pointer<git_index> index(Pointer<git_repository> repo) {
/// Determine if the repository was a shallow clone.
bool isShallow(Pointer<git_repository> repo) {
return libgit2.git_repository_is_shallow(repo) == 1 ? true : false;
return libgit2.git_repository_is_shallow(repo) == 1 || false;
}
/// Check if a repository is a linked work tree.
bool isWorktree(Pointer<git_repository> repo) {
return libgit2.git_repository_is_worktree(repo) == 1 ? true : false;
return libgit2.git_repository_is_worktree(repo) == 1 || false;
}
/// Retrieve git's prepared message.

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
/// Sets the current head to the specified commit oid and optionally resets the
/// index and working tree to match.

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Parse a revision string for from, to, and intent.
///
@ -69,7 +68,7 @@ Pointer<git_object> revParseSingle({
/// The returned object and reference should be released when no longer needed.
///
/// Throws a [LibGit2Error] if error occured.
List revParseExt({
List<Pointer> revParseExt({
required Pointer<git_repository> repoPointer,
required String spec,
}) {
@ -91,7 +90,7 @@ List revParseExt({
calloc.free(referenceOut);
throw LibGit2Error(libgit2.git_error_last());
} else {
var result = <Pointer>[];
final result = <Pointer>[];
result.add(objectOut.value);
if (referenceOut.value != nullptr) {
result.add(referenceOut.value);

View file

@ -1,11 +1,10 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'commit.dart' as commit_bindings;
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/commit.dart' as commit_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Allocate a new revision walker to iterate through a repo.
///
@ -79,7 +78,7 @@ List<Pointer<git_commit>> walk({
required Pointer<git_repository> repoPointer,
required Pointer<git_revwalk> walkerPointer,
}) {
var result = <Pointer<git_commit>>[];
final result = <Pointer<git_commit>>[];
var error = 0;
while (error == 0) {

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a new action signature.
///

View file

@ -1,13 +1,12 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../oid.dart';
import '../stash.dart';
import '../util.dart';
import 'checkout.dart' as checkout_bindings;
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/checkout.dart' as checkout_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/oid.dart';
import 'package:libgit2dart/src/stash.dart';
import 'package:libgit2dart/src/util.dart';
/// Save the local modifications to a new stash.
///
@ -148,18 +147,20 @@ int _stashCb(
Pointer<git_oid> oid,
Pointer<Void> payload,
) {
_stashList.add(Stash(
_stashList.add(
Stash(
index: index,
message: message.cast<Utf8>().toDartString(),
oid: Oid(oid),
));
),
);
return 0;
}
/// Loop over all the stashed states.
List<Stash> list(Pointer<git_repository> repo) {
const except = -1;
git_stash_cb callBack = Pointer.fromFunction(_stashCb, except);
final git_stash_cb callBack = Pointer.fromFunction(_stashCb, except);
libgit2.git_stash_foreach(repo, callBack, nullptr);
final result = _stashList.toList(growable: false);

View file

@ -2,10 +2,9 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Gather file status information and populate the git_status_list.
///

View file

@ -1,12 +1,11 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../callbacks.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'remote_callbacks.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
import 'package:libgit2dart/src/callbacks.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// List of submodule paths.
///
@ -28,7 +27,9 @@ List<String> list(Pointer<git_repository> repo) {
const except = -1;
final callback = Pointer.fromFunction<
Int32 Function(Pointer<git_submodule>, Pointer<Int8>, Pointer<Void>)>(
_listCb, except);
_listCb,
except,
);
libgit2.git_submodule_foreach(repo, callback, nullptr);

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Fill a list with all the tags in the repository.
///
@ -13,7 +12,7 @@ List<String> list(Pointer<git_repository> repo) {
final out = calloc<git_strarray>();
final error = libgit2.git_tag_list(out, repo);
var result = <String>[];
final result = <String>[];
if (error < 0) {
calloc.free(out);

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Get the id of a tree.
Pointer<git_oid> id(Pointer<git_tree> tree) => libgit2.git_tree_id(tree);

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Create a new tree builder.
///

View file

@ -2,10 +2,9 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import '../error.dart';
import '../util.dart';
import 'libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/error.dart';
import 'package:libgit2dart/src/util.dart';
/// Add a new working tree.
///
@ -81,7 +80,7 @@ bool isPrunable(Pointer<git_worktree> wt) {
GIT_WORKTREE_PRUNE_OPTIONS_VERSION,
);
return libgit2.git_worktree_is_prunable(wt, opts) > 0 ? true : false;
return libgit2.git_worktree_is_prunable(wt, opts) > 0 || false;
}
/// Prune working tree.
@ -126,7 +125,7 @@ String path(Pointer<git_worktree> wt) {
/// A worktree may be locked if the linked working tree is stored on a portable
/// device which is not available.
bool isLocked(Pointer<git_worktree> wt) {
return libgit2.git_worktree_is_locked(nullptr, wt) == 1 ? true : false;
return libgit2.git_worktree_is_locked(nullptr, wt) == 1 || false;
}
/// Lock worktree if not already locked.
@ -140,7 +139,7 @@ void unlock(Pointer<git_worktree> wt) => libgit2.git_worktree_unlock(wt);
/// A valid worktree requires both the git data structures inside the linked
/// parent repository and the linked working copy to be present.
bool isValid(Pointer<git_worktree> wt) {
return libgit2.git_worktree_validate(wt) == 0 ? true : false;
return libgit2.git_worktree_validate(wt) == 0 || false;
}
/// Free a previously allocated worktree.

View file

@ -3,9 +3,8 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/blame.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/blame.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
class Blame with IterableMixin<BlameHunk> {
/// Returns the blame for a single file.
@ -67,10 +66,12 @@ class Blame with IterableMixin<BlameHunk> {
///
/// Throws [RangeError] if index out of range.
BlameHunk operator [](int index) {
return BlameHunk(bindings.getHunkByIndex(
return BlameHunk(
bindings.getHunkByIndex(
blamePointer: _blamePointer,
index: index,
));
),
);
}
/// Returns the hunk that relates to the given line number (1-based) in the
@ -78,10 +79,12 @@ class Blame with IterableMixin<BlameHunk> {
///
/// Throws [RangeError] if [lineNumber] is out of range.
BlameHunk forLine(int lineNumber) {
return BlameHunk(bindings.getHunkByLine(
return BlameHunk(
bindings.getHunkByLine(
blamePointer: _blamePointer,
lineNumber: lineNumber,
));
),
);
}
/// Releases memory allocated for blame object.
@ -105,7 +108,7 @@ class BlameHunk {
/// Whether the hunk has been tracked to a boundary commit
/// (the root, or the commit specified in [oldestCommit] argument).
bool get isBoundary {
return _blameHunkPointer.ref.boundary == 1 ? true : false;
return _blameHunkPointer.ref.boundary == 1 || false;
}
/// 1-based line number where this hunk begins, in the final version of the
@ -168,10 +171,12 @@ class _BlameIterator implements Iterator<BlameHunk> {
if (index == count) {
return false;
} else {
currentHunk = BlameHunk(bindings.getHunkByIndex(
currentHunk = BlameHunk(
bindings.getHunkByIndex(
blamePointer: _blamePointer,
index: index,
));
),
);
index++;
return true;
}

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/blob.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/patch.dart' as patch_bindings;
import 'package:libgit2dart/src/bindings/blob.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/patch.dart' as patch_bindings;
class Blob {
/// Initializes a new instance of [Blob] class from provided pointer to
@ -32,11 +31,13 @@ class Blob {
///
/// Throws a [LibGit2Error] if error occured.
static Oid create({required Repository repo, required String content}) {
return Oid(bindings.create(
return Oid(
bindings.create(
repoPointer: repo.pointer,
buffer: content,
len: content.length,
));
),
);
}
/// Creates a new blob from the file in working directory of a repository and
@ -48,10 +49,12 @@ class Blob {
required Repository repo,
required String relativePath,
}) {
return Oid(bindings.createFromWorkdir(
return Oid(
bindings.createFromWorkdir(
repoPointer: repo.pointer,
relativePath: relativePath,
));
),
);
}
/// Creates a new blob from the file in filesystem and writes it to the ODB.
@ -115,7 +118,7 @@ class Blob {
);
return Patch(
result['patch'] as Pointer<git_patch>,
result['patch']! as Pointer<git_patch>,
result['a'],
result['b'],
);
@ -160,7 +163,7 @@ class Blob {
);
return Patch(
result['patch'] as Pointer<git_patch>,
result['patch']! as Pointer<git_patch>,
result['a'],
result['b'],
);

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/branch.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/reference.dart' as reference_bindings;
import 'package:libgit2dart/src/bindings/branch.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/reference.dart' as reference_bindings;
class Branch {
/// Initializes a new instance of [Branch] class from provided pointer to

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/commit.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/tree.dart' as tree_bindings;
import 'package:libgit2dart/src/bindings/commit.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/tree.dart' as tree_bindings;
class Commit {
/// Initializes a new instance of [Commit] class from provided pointer to
@ -67,7 +66,8 @@ class Commit {
required Tree tree,
required List<Commit> parents,
}) {
return Oid(bindings.create(
return Oid(
bindings.create(
repoPointer: repo.pointer,
updateRef: updateRef,
authorPointer: author.pointer,
@ -77,7 +77,8 @@ class Commit {
treePointer: tree.pointer,
parentCount: parents.length,
parents: parents.map((e) => e.pointer).toList(),
));
),
);
}
/// Amends an existing commit by replacing only non-null values.
@ -109,7 +110,8 @@ class Commit {
String? message,
String? messageEncoding,
}) {
return Oid(bindings.amend(
return Oid(
bindings.amend(
repoPointer: repo.pointer,
commitPointer: commit.pointer,
authorPointer: author?.pointer,
@ -118,7 +120,8 @@ class Commit {
updateRef: updateRef,
message: message,
messageEncoding: messageEncoding,
));
),
);
}
/// Wncoding for the message of a commit, as a string representing a standard
@ -145,7 +148,7 @@ class Commit {
/// List of parent commits [Oid]s.
List<Oid> get parents {
var parents = <Oid>[];
final parents = <Oid>[];
final parentCount = bindings.parentCount(_commitPointer);
for (var i = 0; i < parentCount; i++) {
@ -161,10 +164,12 @@ class Commit {
/// Tree pointed to by a commit.
Tree get tree {
return Tree(tree_bindings.lookup(
return Tree(
tree_bindings.lookup(
repoPointer: bindings.owner(_commitPointer),
oidPointer: bindings.tree(_commitPointer),
));
),
);
}
/// Releases memory allocated for commit object.

View file

@ -4,10 +4,9 @@ import 'dart:io';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/config.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'util.dart';
import 'package:libgit2dart/src/bindings/config.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/util.dart';
class Config with IterableMixin<ConfigEntry> {
/// Initializes a new instance of [Config] class from provided
@ -84,10 +83,12 @@ class Config with IterableMixin<ConfigEntry> {
/// Returns the [ConfigEntry] of a [variable].
ConfigEntry operator [](String variable) {
return ConfigEntry(bindings.getEntry(
return ConfigEntry(
bindings.getEntry(
configPointer: _configPointer,
variable: variable,
));
),
);
}
/// Sets the [value] of config [variable].

View file

@ -2,11 +2,10 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/diff.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/patch.dart' as patch_bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/diff.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/patch.dart' as patch_bindings;
import 'package:libgit2dart/src/util.dart';
class Diff {
/// Initializes a new instance of [Diff] class from provided
@ -43,12 +42,16 @@ class Diff {
/// revisions.
List<DiffDelta> get deltas {
final length = bindings.length(_diffPointer);
var deltas = <DiffDelta>[];
final deltas = <DiffDelta>[];
for (var i = 0; i < length; i++) {
deltas.add(DiffDelta(bindings.getDeltaByIndex(
deltas.add(
DiffDelta(
bindings.getDeltaByIndex(
diffPointer: _diffPointer,
index: i,
)));
),
),
);
}
return deltas;
}
@ -56,7 +59,7 @@ class Diff {
/// A List of [Patch]es.
List<Patch> get patches {
final length = bindings.length(_diffPointer);
var patches = <Patch>[];
final patches = <Patch>[];
for (var i = 0; i < length; i++) {
patches.add(Patch.fromDiff(diff: this, index: i));
}
@ -336,7 +339,7 @@ class DiffHunk {
/// Header of a hunk.
String get header {
var list = <int>[];
final list = <int>[];
for (var i = 0; i < _diffHunkPointer.ref.header_len; i++) {
list.add(_diffHunkPointer.ref.header[i]);
}
@ -345,13 +348,17 @@ class DiffHunk {
/// List of lines in a hunk of a patch.
List<DiffLine> get lines {
var lines = <DiffLine>[];
final lines = <DiffLine>[];
for (var i = 0; i < linesCount; i++) {
lines.add(DiffLine(patch_bindings.lines(
lines.add(
DiffLine(
patch_bindings.lines(
patchPointer: _patchPointer,
hunkIndex: index,
lineOfHunk: i,
)));
),
),
);
}
return lines;
}

View file

@ -1,6 +1,6 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
/// Details of the last error that occurred.
class LibGit2Error {

View file

@ -1,5 +1,5 @@
import 'package:libgit2dart/libgit2dart.dart';
import 'util.dart';
import 'package:libgit2dart/src/util.dart';
class Features {
/// Returns list of compile time options for libgit2.

View file

@ -3,10 +3,9 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/diff.dart' as diff_bindings;
import 'bindings/index.dart' as bindings;
import 'bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
import 'package:libgit2dart/src/bindings/index.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
class Index with IterableMixin<IndexEntry> {
/// Initializes a new instance of [Index] class from provided
@ -26,16 +25,20 @@ class Index with IterableMixin<IndexEntry> {
/// [ArgumentError] if nothing found for provided path.
IndexEntry operator [](Object value) {
if (value is int) {
return IndexEntry(bindings.getByIndex(
return IndexEntry(
bindings.getByIndex(
indexPointer: _indexPointer,
position: value,
));
),
);
} else {
return IndexEntry(bindings.getByPath(
return IndexEntry(
bindings.getByPath(
indexPointer: _indexPointer,
path: value as String,
stage: 0,
));
),
);
}
}
@ -56,7 +59,7 @@ class Index with IterableMixin<IndexEntry> {
/// Throws a [LibGit2Error] if error occured.
Map<String, ConflictEntry> get conflicts {
final conflicts = bindings.conflictList(_indexPointer);
var result = <String, ConflictEntry>{};
final result = <String, ConflictEntry>{};
for (final entry in conflicts) {
IndexEntry? ancestor, our, their;
@ -166,10 +169,12 @@ class Index with IterableMixin<IndexEntry> {
if (repo == null) {
return Oid(bindings.writeTree(_indexPointer));
} else {
return Oid(bindings.writeTreeTo(
return Oid(
bindings.writeTreeTo(
indexPointer: _indexPointer,
repoPointer: repo.pointer,
));
),
);
}
}
@ -201,13 +206,15 @@ class Index with IterableMixin<IndexEntry> {
int contextLines = 3,
int interhunkLines = 0,
}) {
return Diff(diff_bindings.indexToWorkdir(
return Diff(
diff_bindings.indexToWorkdir(
repoPointer: bindings.owner(_indexPointer),
indexPointer: _indexPointer,
flags: flags.fold(0, (acc, e) => acc | e.value),
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
/// Creates a diff between a tree and repository index.
@ -227,14 +234,16 @@ class Index with IterableMixin<IndexEntry> {
int contextLines = 3,
int interhunkLines = 0,
}) {
return Diff(diff_bindings.treeToIndex(
return Diff(
diff_bindings.treeToIndex(
repoPointer: bindings.owner(_indexPointer),
treePointer: tree.pointer,
indexPointer: _indexPointer,
flags: flags.fold(0, (acc, e) => acc | e.value),
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
/// Releases memory allocated for index object.
@ -338,10 +347,12 @@ class _IndexIterator implements Iterator<IndexEntry> {
if (_index == count) {
return false;
} else {
_currentEntry = IndexEntry(bindings.getByIndex(
_currentEntry = IndexEntry(
bindings.getByIndex(
indexPointer: _indexPointer,
position: _index,
));
),
);
_index++;
return true;
}

View file

@ -1,8 +1,8 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/mailmap.dart' as bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/mailmap.dart' as bindings;
import 'package:libgit2dart/src/util.dart';
class Mailmap {
/// Initializes a new instance of [Mailmap] class.
@ -62,10 +62,12 @@ class Mailmap {
/// Resolves a [signature] to use real names and emails with a mailmap.
Signature resolveSignature(Signature signature) {
return Signature(bindings.resolveSignature(
return Signature(
bindings.resolveSignature(
mailmapPointer: _mailmapPointer,
signaturePointer: signature.pointer,
));
),
);
}
/// Adds a single entry to the given mailmap object. If the entry already
@ -79,7 +81,7 @@ class Mailmap {
required String replaceEmail,
}) {
if (replaceEmail.trim().isEmpty) {
throw ArgumentError.value('replaceEmail can\'t be empty');
throw ArgumentError.value("replaceEmail can't be empty");
} else {
bindings.addEntry(
mailmapPointer: _mailmapPointer,

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/note.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/note.dart' as bindings;
class Note {
/// Initializes a new instance of the [Note] class from provided
@ -64,7 +64,8 @@ class Note {
String notesRef = 'refs/notes/commits',
bool force = false,
}) {
return Oid(bindings.create(
return Oid(
bindings.create(
repoPointer: repo.pointer,
authorPointer: author.pointer,
committerPointer: committer.pointer,
@ -72,7 +73,8 @@ class Note {
note: note,
notesRef: notesRef,
force: force,
));
),
);
}
/// Deletes the note for an [annotatedOid].
@ -111,10 +113,12 @@ class Note {
static List<Note> list(Repository repo) {
final notesPointers = bindings.list(repo.pointer);
return notesPointers
.map((e) => Note(
e['note'] as Pointer<git_note>,
e['annotatedOid'] as Pointer<git_oid>,
))
.map(
(e) => Note(
e['note']! as Pointer<git_note>,
e['annotatedOid']! as Pointer<git_oid>,
),
)
.toList();
}

View file

@ -1,8 +1,8 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/odb.dart' as bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/odb.dart' as bindings;
import 'package:libgit2dart/src/util.dart';
class Odb {
/// Initializes a new instance of [Odb] class from provided
@ -64,10 +64,12 @@ class Odb {
///
/// Throws a [LibGit2Error] if error occured.
OdbObject read(Oid oid) {
return OdbObject(bindings.read(
return OdbObject(
bindings.read(
odbPointer: _odbPointer,
oidPointer: oid.pointer,
));
),
);
}
/// Writes raw [data] to into the object database.
@ -84,11 +86,13 @@ class Odb {
type == GitObject.refDelta) {
throw ArgumentError.value('$type is invalid type');
} else {
return Oid(bindings.write(
return Oid(
bindings.write(
odbPointer: _odbPointer,
type: type.value,
data: data,
));
),
);
}
}

View file

@ -1,11 +1,10 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/odb.dart' as odb_bindings;
import 'bindings/oid.dart' as bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/odb.dart' as odb_bindings;
import 'package:libgit2dart/src/bindings/oid.dart' as bindings;
import 'package:libgit2dart/src/util.dart';
class Oid {
/// Initializes a new instance of [Oid] class from provided
@ -52,7 +51,7 @@ class Oid {
String get sha => bindings.toSHA(_oidPointer);
@override
bool operator ==(other) {
bool operator ==(Object other) {
return (other is Oid) &&
(bindings.compare(aPointer: _oidPointer, bPointer: other._oidPointer) ==
0);

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/packbuilder.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/packbuilder.dart' as bindings;
class PackBuilder {
/// Initializes a new instance of [PackBuilder] class.

View file

@ -1,9 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/patch.dart' as bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/patch.dart' as bindings;
import 'package:libgit2dart/src/util.dart';
class Patch {
/// Initializes a new instance of [Patch] class from provided
@ -82,7 +82,7 @@ class Patch {
throw ArgumentError('Provided argument(s) is not Blob or String');
}
_patchPointer = result['patch'] as Pointer<git_patch>;
_patchPointer = result['patch']! as Pointer<git_patch>;
_aPointer = result['a'];
_bPointer = result['b'];
}
@ -149,12 +149,14 @@ class Patch {
for (var i = 0; i < length; i++) {
final hunk = bindings.hunk(patchPointer: _patchPointer, hunkIndex: i);
hunks.add(DiffHunk(
hunks.add(
DiffHunk(
_patchPointer,
hunk['hunk'] as Pointer<git_diff_hunk>,
hunk['linesN'] as int,
hunk['hunk']! as Pointer<git_diff_hunk>,
hunk['linesN']! as int,
i,
));
),
);
}
return hunks;

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/rebase.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/rebase.dart' as bindings;
class Rebase {
/// Initializes a rebase operation to rebase the changes in [branch] relative

View file

@ -1,12 +1,12 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/object.dart' as object_bindings;
import 'bindings/refdb.dart' as refdb_bindings;
import 'bindings/reference.dart' as bindings;
import 'bindings/repository.dart' as repository_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
import 'package:libgit2dart/src/bindings/refdb.dart' as refdb_bindings;
import 'package:libgit2dart/src/bindings/reference.dart' as bindings;
import 'package:libgit2dart/src/bindings/repository.dart'
as repository_bindings;
class Reference {
/// Initializes a new instance of the [Reference] class.
@ -62,7 +62,8 @@ class Reference {
);
} else {
throw ArgumentError.value(
'$target must be either Oid or String reference name');
'$target must be either Oid or String reference name',
);
}
}
@ -185,7 +186,8 @@ class Reference {
_refPointer = newPointer;
} else {
throw ArgumentError.value(
'$target must be either Oid or String reference name');
'$target must be either Oid or String reference name',
);
}
}
@ -261,7 +263,7 @@ class Reference {
Repository get owner => Repository(bindings.owner(_refPointer));
@override
bool operator ==(other) {
bool operator ==(Object other) {
return (other is Reference) &&
bindings.compare(
ref1Pointer: _refPointer,

View file

@ -1,8 +1,8 @@
import 'dart:collection';
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/reflog.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/reflog.dart' as bindings;
class RefLog with IterableMixin<RefLogEntry> {
/// Initializes a new instance of [RefLog] class from provided [Reference].
@ -23,10 +23,12 @@ class RefLog with IterableMixin<RefLogEntry> {
/// Requesting the reflog entry with an index of 0 will return the most
/// recently created entry.
RefLogEntry operator [](int index) {
return RefLogEntry(bindings.getByIndex(
return RefLogEntry(
bindings.getByIndex(
reflogPointer: _reflogPointer,
index: index,
));
),
);
}
/// Releases memory allocated for reflog object.
@ -74,10 +76,12 @@ class _RefLogIterator implements Iterator<RefLogEntry> {
if (_index == _count) {
return false;
} else {
_currentEntry = RefLogEntry(bindings.getByIndex(
_currentEntry = RefLogEntry(
bindings.getByIndex(
reflogPointer: _reflogPointer,
index: _index,
));
),
);
_index++;
return true;
}

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/refspec.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/refspec.dart' as bindings;
class Refspec {
/// Initializes a new instance of the [Refspec] class

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/remote.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/remote.dart' as bindings;
class Remote {
/// Lookups remote with provided [name] in a [repo]sitory.
@ -174,10 +174,12 @@ class Remote {
/// [Refspec] object from the remote at provided position.
Refspec getRefspec(int index) {
return Refspec(bindings.getRefspec(
return Refspec(
bindings.getRefspec(
remotePointer: _remotePointer,
position: index,
));
),
);
}
/// List of fetch refspecs.

View file

@ -3,19 +3,19 @@ import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/attr.dart' as attr_bindings;
import 'bindings/checkout.dart' as checkout_bindings;
import 'bindings/commit.dart' as commit_bindings;
import 'bindings/describe.dart' as describe_bindings;
import 'bindings/diff.dart' as diff_bindings;
import 'bindings/graph.dart' as graph_bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/merge.dart' as merge_bindings;
import 'bindings/object.dart' as object_bindings;
import 'bindings/repository.dart' as bindings;
import 'bindings/reset.dart' as reset_bindings;
import 'bindings/status.dart' as status_bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/attr.dart' as attr_bindings;
import 'package:libgit2dart/src/bindings/checkout.dart' as checkout_bindings;
import 'package:libgit2dart/src/bindings/commit.dart' as commit_bindings;
import 'package:libgit2dart/src/bindings/describe.dart' as describe_bindings;
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
import 'package:libgit2dart/src/bindings/graph.dart' as graph_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/merge.dart' as merge_bindings;
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
import 'package:libgit2dart/src/bindings/repository.dart' as bindings;
import 'package:libgit2dart/src/bindings/reset.dart' as reset_bindings;
import 'package:libgit2dart/src/bindings/status.dart' as status_bindings;
import 'package:libgit2dart/src/util.dart';
class Repository {
/// Initializes a new instance of the [Repository] class from provided
@ -262,7 +262,8 @@ class Repository {
bindings.setHead(repoPointer: _repoPointer, refname: target);
} else {
throw ArgumentError.value(
'$target must be either Oid or String reference name');
'$target must be either Oid or String reference name',
);
}
}
@ -650,12 +651,14 @@ class Repository {
required Commit ourCommit,
int mainline = 0,
}) {
return Index(commit_bindings.revertCommit(
return Index(
commit_bindings.revertCommit(
repoPointer: _repoPointer,
revertCommitPointer: revertCommit.pointer,
ourCommitPointer: ourCommit.pointer,
mainline: mainline,
));
),
);
}
/// Finds a single object and intermediate reference (if there is one) by a
@ -774,7 +777,8 @@ class Repository {
targetType: targetType,
tagger: tagger,
message: message,
force: force);
force: force,
);
}
/// Deletes an existing tag reference with provided [name].
@ -880,9 +884,9 @@ class Repository {
///
/// Throws a [LibGit2Error] if error occured.
Map<String, Set<GitStatus>> get status {
var result = <String, Set<GitStatus>>{};
var list = status_bindings.listNew(_repoPointer);
var count = status_bindings.listEntryCount(list);
final result = <String, Set<GitStatus>>{};
final list = status_bindings.listNew(_repoPointer);
final count = status_bindings.listEntryCount(list);
for (var i = 0; i < count; i++) {
late String path;
@ -945,11 +949,13 @@ class Repository {
///
/// Throws a [LibGit2Error] if error occured.
Oid mergeBase({required Oid a, required Oid b}) {
return Oid(merge_bindings.mergeBase(
return Oid(
merge_bindings.mergeBase(
repoPointer: _repoPointer,
aPointer: a.pointer,
bPointer: b.pointer,
));
),
);
}
/// Analyzes the given branch's [theirHead] oid and determines the
@ -1058,14 +1064,16 @@ class Repository {
Set<GitMergeFlag> mergeFlags = const {GitMergeFlag.findRenames},
Set<GitMergeFileFlag> fileFlags = const {GitMergeFileFlag.defaults},
}) {
return Index(merge_bindings.mergeCommits(
return Index(
merge_bindings.mergeCommits(
repoPointer: _repoPointer,
ourCommitPointer: ourCommit.pointer,
theirCommitPointer: theirCommit.pointer,
favor: favor.value,
mergeFlags: mergeFlags.fold(0, (acc, e) => acc | e.value),
fileFlags: fileFlags.fold(0, (acc, e) => acc | e.value),
));
),
);
}
/// Merges two trees, producing an index that reflects the result of the
@ -1101,7 +1109,8 @@ class Repository {
List<GitMergeFlag> mergeFlags = const [GitMergeFlag.findRenames],
List<GitMergeFileFlag> fileFlags = const [GitMergeFileFlag.defaults],
}) {
return Index(merge_bindings.mergeTrees(
return Index(
merge_bindings.mergeTrees(
repoPointer: _repoPointer,
ancestorTreePointer: ancestorTree?.pointer ?? nullptr,
ourTreePointer: ourTree.pointer,
@ -1109,7 +1118,8 @@ class Repository {
favor: favor.value,
mergeFlags: mergeFlags.fold(0, (acc, element) => acc | element.value),
fileFlags: fileFlags.fold(0, (acc, element) => acc | element.value),
));
),
);
}
/// Cherry-picks the provided [commit], producing changes in the index and
@ -1243,41 +1253,49 @@ class Repository {
final int flagsInt = flags.fold(0, (acc, e) => acc | e.value);
if (a is Tree && b is Tree) {
return Diff(diff_bindings.treeToTree(
return Diff(
diff_bindings.treeToTree(
repoPointer: _repoPointer,
oldTreePointer: a.pointer,
newTreePointer: b.pointer,
flags: flagsInt,
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
} else if (a is Tree && b == null) {
if (cached) {
return Diff(diff_bindings.treeToIndex(
return Diff(
diff_bindings.treeToIndex(
repoPointer: _repoPointer,
treePointer: a.pointer,
indexPointer: index.pointer,
flags: flagsInt,
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
} else {
return Diff(diff_bindings.treeToWorkdir(
return Diff(
diff_bindings.treeToWorkdir(
repoPointer: _repoPointer,
treePointer: a.pointer,
flags: flagsInt,
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
} else if (a == null && b == null) {
return Diff(diff_bindings.indexToWorkdir(
return Diff(
diff_bindings.indexToWorkdir(
repoPointer: _repoPointer,
indexPointer: index.pointer,
flags: flagsInt,
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
} else {
throw ArgumentError.notNull('a');
}

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/revparse.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/revparse.dart' as bindings;
class RevParse {
/// Finds a single object and intermediate reference (if there is one) by a
@ -23,11 +23,9 @@ class RevParse {
repoPointer: repo.pointer,
spec: spec,
);
object = Commit(pointers[0].cast<git_commit>() as Pointer<git_commit>);
object = Commit(pointers[0].cast<git_commit>());
if (pointers.length == 2) {
reference = Reference(
pointers[1].cast<git_reference>() as Pointer<git_reference>,
);
reference = Reference(pointers[1].cast<git_reference>());
} else {
reference = null;
}
@ -47,12 +45,14 @@ class RevParse {
///
/// Throws a [LibGit2Error] if error occured.
static Commit single({required Repository repo, required String spec}) {
return Commit(bindings
return Commit(
bindings
.revParseSingle(
repoPointer: repo.pointer,
spec: spec,
)
.cast());
.cast(),
);
}
/// Parses a revision string for from, to, and intent.
@ -62,10 +62,12 @@ class RevParse {
///
/// Throws a [LibGit2Error] if error occured.
static RevSpec range({required Repository repo, required String spec}) {
return RevSpec(bindings.revParse(
return RevSpec(
bindings.revParse(
repoPointer: repo.pointer,
spec: spec,
));
),
);
}
@override

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/revwalk.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/revwalk.dart' as bindings;
class RevWalk {
/// Initializes a new instance of the [RevWalk] class.

View file

@ -1,9 +1,9 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/signature.dart' as bindings;
import 'util.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/signature.dart' as bindings;
import 'package:libgit2dart/src/util.dart';
class Signature {
/// Initializes a new instance of [Signature] class from provided pointer to
@ -39,18 +39,19 @@ class Signature {
}
}
late final Pointer<git_signature> _signaturePointer;
/// Pointer to memory address for allocated signature object.
Pointer<git_signature> get pointer => _signaturePointer;
/// Creates a new action signature with default user and now timestamp.
///
/// This looks up the user.name and user.email from the configuration and
/// uses the current time as the timestamp, and creates a new signature based
/// on that information.
static Signature defaultSignature(Repository repo) =>
Signature(bindings.defaultSignature(repo.pointer));
Signature.defaultSignature(Repository repo) {
_signaturePointer = bindings.defaultSignature(repo.pointer);
}
late final Pointer<git_signature> _signaturePointer;
/// Pointer to memory address for allocated signature object.
Pointer<git_signature> get pointer => _signaturePointer;
/// Full name of the author.
String get name => _signaturePointer.ref.name.cast<Utf8>().toDartString();
@ -65,7 +66,7 @@ class Signature {
int get offset => _signaturePointer.ref.when.offset;
@override
bool operator ==(other) {
bool operator ==(Object other) {
return (other is Signature) &&
(name == other.name) &&
(email == other.email) &&

View file

@ -1,5 +1,5 @@
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/stash.dart' as bindings;
import 'package:libgit2dart/src/bindings/stash.dart' as bindings;
class Stash {
/// Initializes a new instance of [Stash] class from provided stash [index],
@ -42,12 +42,14 @@ class Stash {
}) {
final int flagsInt = flags.fold(0, (acc, e) => acc | e.value);
return Oid(bindings.save(
return Oid(
bindings.save(
repoPointer: repo.pointer,
stasherPointer: stasher.pointer,
message: message,
flags: flagsInt,
));
),
);
}
/// Applies a single stashed state from the stash list.

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/submodule.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/submodule.dart' as bindings;
class Submodule {
/// Lookups submodule information by [name] or path (they are usually the

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/object.dart' as object_bindings;
import 'bindings/tag.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
import 'package:libgit2dart/src/bindings/tag.dart' as bindings;
class Tag {
/// Initializes a new instance of [Tag] class from provided pointer to

View file

@ -1,10 +1,9 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/diff.dart' as diff_bindings;
import 'bindings/libgit2_bindings.dart';
import 'bindings/tree.dart' as bindings;
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/tree.dart' as bindings;
class Tree {
/// Initializes a new instance of [Tree] class from provided pointer to
@ -31,12 +30,16 @@ class Tree {
/// List with tree entries of a tree.
List<TreeEntry> get entries {
final entryCount = bindings.entryCount(_treePointer);
var result = <TreeEntry>[];
final result = <TreeEntry>[];
for (var i = 0; i < entryCount; i++) {
result.add(TreeEntry(bindings.getByIndex(
result.add(
TreeEntry(
bindings.getByIndex(
treePointer: _treePointer,
index: i,
)));
),
),
);
}
return result;
@ -54,23 +57,30 @@ class Tree {
/// Throws [ArgumentError] if provided [value] is not int or string.
TreeEntry operator [](Object value) {
if (value is int) {
return TreeEntry(bindings.getByIndex(
return TreeEntry(
bindings.getByIndex(
treePointer: _treePointer,
index: value,
));
),
);
} else if (value is String && value.contains('/')) {
return TreeEntry(bindings.getByPath(
return TreeEntry(
bindings.getByPath(
rootPointer: _treePointer,
path: value,
));
),
);
} else if (value is String) {
return TreeEntry(bindings.getByName(
return TreeEntry(
bindings.getByName(
treePointer: _treePointer,
filename: value,
));
),
);
} else {
throw ArgumentError.value(
'$value should be either index position, filename or path');
'$value should be either index position, filename or path',
);
}
}
@ -96,13 +106,15 @@ class Tree {
int contextLines = 3,
int interhunkLines = 0,
}) {
return Diff(diff_bindings.treeToWorkdir(
return Diff(
diff_bindings.treeToWorkdir(
repoPointer: bindings.owner(_treePointer),
treePointer: _treePointer,
flags: flags.fold(0, (acc, e) => acc | e.value),
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
/// Creates a diff between a tree and repository index.
@ -122,14 +134,16 @@ class Tree {
int contextLines = 3,
int interhunkLines = 0,
}) {
return Diff(diff_bindings.treeToIndex(
return Diff(
diff_bindings.treeToIndex(
repoPointer: bindings.owner(_treePointer),
treePointer: _treePointer,
indexPointer: index.pointer,
flags: flags.fold(0, (acc, e) => acc | e.value),
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
/// Creates a diff with the difference between two tree objects.
@ -151,14 +165,16 @@ class Tree {
int contextLines = 3,
int interhunkLines = 0,
}) {
return Diff(diff_bindings.treeToTree(
return Diff(
diff_bindings.treeToTree(
repoPointer: bindings.owner(_treePointer),
oldTreePointer: _treePointer,
newTreePointer: tree.pointer,
flags: flags.fold(0, (acc, e) => acc | e.value),
contextLines: contextLines,
interhunkLines: interhunkLines,
));
),
);
}
/// Releases memory allocated for tree object.

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/treebuilder.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/treebuilder.dart' as bindings;
class TreeBuilder {
/// Initializes a new instance of [TreeBuilder] class from provided
@ -36,10 +36,12 @@ class TreeBuilder {
///
/// Throws [ArgumentError] if nothing found for provided [filename].
TreeEntry operator [](String filename) {
return TreeEntry(bindings.getByFilename(
return TreeEntry(
bindings.getByFilename(
builderPointer: _treeBuilderPointer,
filename: filename,
));
),
);
}
/// Adds or updates an entry to the tree builder with the given attributes.

View file

@ -3,12 +3,13 @@
import 'dart:ffi';
import 'dart:io';
import 'bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
DynamicLibrary loadLibrary() {
if (Platform.isLinux || Platform.isAndroid || Platform.isFuchsia) {
return DynamicLibrary.open(
'${Directory.current.path}/libgit2/libgit2.so.1.3.0');
'${Directory.current.path}/libgit2/libgit2.so.1.3.0',
);
}
// if (Platform.isMacOS) {
// return DynamicLibrary.open(

View file

@ -1,7 +1,7 @@
import 'dart:ffi';
import 'package:libgit2dart/libgit2dart.dart';
import 'bindings/libgit2_bindings.dart';
import 'bindings/worktree.dart' as bindings;
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
import 'package:libgit2dart/src/bindings/worktree.dart' as bindings;
class Worktree {
/// Creates new worktree.

View file

@ -8,10 +8,10 @@ environment:
dependencies:
dev_dependencies:
lints: ^1.0.1
ffigen: ^4.0.0
test: ^1.17.5
lints: ^1.0.1
path: ^1.8.0
test: ^1.17.5
ffigen:
output: "lib/src/bindings/libgit2_bindings.dart"

View file

@ -118,7 +118,7 @@ void main() {
expect(config['core.bare'].value, 'false');
});
test('throws when variable isn\'t found', () {
test("throws when variable isn't found", () {
expect(
() => config['not.there'],
throwsA(
@ -192,7 +192,7 @@ void main() {
expect(
config.multivar(
variable: 'core.gitproxy',
regexp: 'for kernel.org\$',
regexp: r'for kernel.org$',
),
['proxy-command for kernel.org'],
);
@ -234,20 +234,20 @@ void main() {
expect(
config.multivar(
variable: 'core.gitproxy',
regexp: 'for kernel.org\$',
regexp: r'for kernel.org$',
),
['proxy-command for kernel.org'],
);
config.deleteMultivar(
variable: 'core.gitproxy',
regexp: 'for kernel.org\$',
regexp: r'for kernel.org$',
);
expect(
config.multivar(
variable: 'core.gitproxy',
regexp: 'for kernel.org\$',
regexp: r'for kernel.org$',
),
<String>[],
);

View file

@ -217,7 +217,7 @@ index e69de29..c217c63 100644
test('throws when trying to diff between null and tree', () {
final tree = repo.lookupTree(repo['b85d53c']);
expect(
() => repo.diff(a: null, b: tree),
() => repo.diff(b: tree),
throwsA(
isA<ArgumentError>().having(
(e) => e.message,

View file

@ -172,7 +172,9 @@ void main() {
test('returns string representation of object', () {
expect(
GitMergeFileFlag.defaults.toString(), 'GitMergeFileFlag.defaults');
GitMergeFileFlag.defaults.toString(),
'GitMergeFileFlag.defaults',
);
});
});
@ -413,7 +415,9 @@ void main() {
test('returns string representation of object', () {
expect(
GitFetchPrune.unspecified.toString(), 'GitFetchPrune.unspecified');
GitFetchPrune.unspecified.toString(),
'GitFetchPrune.unspecified',
);
});
});
@ -552,7 +556,9 @@ void main() {
test('returns string representation of object', () {
expect(
GitSubmoduleStatus.inHead.toString(), 'GitSubmoduleStatus.inHead');
GitSubmoduleStatus.inHead.toString(),
'GitSubmoduleStatus.inHead',
);
});
});
});

View file

@ -89,7 +89,7 @@ void main() {
odb.free();
});
test('returns list of all objects oid\'s in database', () {
test("returns list of all objects oid's in database", () {
final odb = repo.odb;
expect(odb.objects, isNot(isEmpty));

View file

@ -70,7 +70,7 @@ void main() {
});
test('prune() successfully prunes branches', () {
var pruned = <String>[];
final pruned = <String>[];
void updateTips(String refname, Oid oldOid, Oid newOid) {
pruned.add(refname);
}

View file

@ -315,7 +315,7 @@ void main() {
);
});
test('successfully returns remote repo\'s reference list', () {
test("successfully returns remote repo's reference list", () {
Remote.setUrl(
repo: repo,
remote: 'libgit2',
@ -329,7 +329,7 @@ void main() {
expect(refs.first['name'], 'HEAD');
expect(refs.first['symref'], 'refs/heads/master');
expect(
(refs.first['oid'] as Oid).sha,
(refs.first['oid']! as Oid).sha,
'49322bb17d3acc9146f98c97d078513228bbf3c0',
);
@ -337,8 +337,8 @@ void main() {
});
test(
'throws when trying to get remote repo\'s reference list with '
'invalid url', () {
"throws when trying to get remote repo's reference list with "
"invalid url", () {
Remote.setUrl(repo: repo, remote: 'libgit2', url: 'invalid');
final remote = repo.lookupRemote('libgit2');
@ -504,7 +504,7 @@ Total 69 (delta 0), reused 1 (delta 0), pack-reused 68
);
final remote = repo.lookupRemote('libgit2');
var sidebandOutput = StringBuffer();
final sidebandOutput = StringBuffer();
void sideband(String message) {
sidebandOutput.write(message);
}
@ -542,7 +542,7 @@ Total 69 (delta 0), reused 1 (delta 0), pack-reused 68
},
];
var updateTipsOutput = <Map<String, String>>[];
final updateTipsOutput = <Map<String, String>>[];
void updateTips(String refname, Oid oldOid, Oid newOid) {
updateTipsOutput.add({
'refname': refname,
@ -576,7 +576,7 @@ Total 69 (delta 0), reused 1 (delta 0), pack-reused 68
repo.createRemote(name: 'local', url: originDir.path);
final remote = repo.lookupRemote('local');
var updateRefOutput = <String, String>{};
final updateRefOutput = <String, String>{};
void updateRef(String refname, String message) {
updateRefOutput[refname] = message;
}

View file

@ -1,3 +1,5 @@
// ignore_for_file: avoid_positional_boolean_parameters
import 'dart:io';
import 'package:libgit2dart/libgit2dart.dart';
@ -101,13 +103,13 @@ void main() {
});
test('successfully clones repository with provided repository callback',
() async {
() {
final callbackPath =
Directory('${Directory.systemTemp.path}/callbackRepo');
if (await callbackPath.exists()) {
callbackPath.delete(recursive: true);
if (callbackPath.existsSync()) {
callbackPath.deleteSync(recursive: true);
}
callbackPath.create();
callbackPath.createSync();
Repository repository(String path, bool bare) =>
Repository.init(path: callbackPath.path);
@ -123,7 +125,7 @@ void main() {
expect(clonedRepo.path, '${callbackPath.path}/.git/');
clonedRepo.free();
callbackPath.delete(recursive: true);
callbackPath.deleteSync(recursive: true);
});
test('throws when cloning repository with invalid repository callback', () {

View file

@ -8,7 +8,7 @@ void main() {
late Repository repo;
group('Repository.open', () {
test('throws when repository isn\'t found at provided path', () {
test("throws when repository isn't found at provided path", () {
expect(
() => Repository.open(''),
throwsA(isA<LibGit2Error>()),
@ -71,7 +71,7 @@ void main() {
);
});
test('returns path to parent repo\'s .git folder for the repository', () {
test("returns path to parent repo's .git folder for the repository", () {
expect(
repo.commonDir,
'${Directory.current.path}/test/assets/empty_standard/.gitdir/',

View file

@ -13,7 +13,6 @@ void main() {
name: name,
email: email,
time: time,
offset: offset,
);
});
@ -80,7 +79,6 @@ void main() {
name: name,
email: email,
time: time,
offset: offset,
);
expect(signature == otherSignature, true);