mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-05 04:39:07 -04:00
style: stricter linting
This commit is contained in:
parent
f3fbc80f8e
commit
4717aab57f
84 changed files with 773 additions and 653 deletions
|
@ -1,13 +1,50 @@
|
||||||
include: package:lints/recommended.yaml
|
include: package:lints/recommended.yaml
|
||||||
linter:
|
|
||||||
rules:
|
|
||||||
- prefer_const_constructors
|
|
||||||
- sort_constructors_first
|
|
||||||
- directives_ordering
|
|
||||||
- lines_longer_than_80_chars
|
|
||||||
analyzer:
|
analyzer:
|
||||||
strong-mode:
|
strong-mode:
|
||||||
implicit-casts: false
|
implicit-casts: false
|
||||||
implicit-dynamic: false
|
implicit-dynamic: false
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- lib/src/bindings/libgit2_bindings.dart
|
- 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
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// ignore_for_file: avoid_print
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import '../test/helpers/util.dart';
|
import '../test/helpers/util.dart';
|
||||||
|
@ -28,8 +30,10 @@ void main() {
|
||||||
|
|
||||||
// Set value of config variable
|
// Set value of config variable
|
||||||
repoConfig['core.variable'] = 'value';
|
repoConfig['core.variable'] = 'value';
|
||||||
print('\nNew value for variable '
|
print(
|
||||||
'"core.variable": ${repoConfig['core.variable']}');
|
'\nNew value for variable '
|
||||||
|
'"core.variable": ${repoConfig['core.variable']}',
|
||||||
|
);
|
||||||
|
|
||||||
// Delete variable
|
// Delete variable
|
||||||
repoConfig.delete('core.variable');
|
repoConfig.delete('core.variable');
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// ignore_for_file: avoid_print
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import '../test/helpers/util.dart';
|
import '../test/helpers/util.dart';
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// ignore_for_file: avoid_print
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Look up the value of one git attribute for path.
|
/// Look up the value of one git attribute for path.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../oid.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/oid.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Get the blame for a single file.
|
/// Get the blame for a single file.
|
||||||
///
|
///
|
||||||
|
|
|
@ -2,9 +2,9 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Lookup a blob object from a repository.
|
/// 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
|
/// Searching for NUL bytes and looking for a reasonable ratio of printable to
|
||||||
/// non-printable characters among the first 8000 bytes.
|
/// non-printable characters among the first 8000 bytes.
|
||||||
bool isBinary(Pointer<git_blob> blob) {
|
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.
|
/// Get a read-only buffer with the raw content of a blob.
|
||||||
|
|
|
@ -2,11 +2,10 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/reference.dart' as reference_bindings;
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'reference.dart' as reference_bindings;
|
|
||||||
|
|
||||||
/// Return a list of branches.
|
/// Return a list of branches.
|
||||||
///
|
///
|
||||||
|
@ -27,7 +26,7 @@ List<Pointer<git_reference>> list({
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = <Pointer<git_reference>>[];
|
final result = <Pointer<git_reference>>[];
|
||||||
var error = 0;
|
var error = 0;
|
||||||
|
|
||||||
while (error == 0) {
|
while (error == 0) {
|
||||||
|
@ -163,7 +162,7 @@ bool isHead(Pointer<git_reference> branch) {
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +178,7 @@ bool isCheckedOut(Pointer<git_reference> branch) {
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Updates files in the index and the working tree to match the content of the
|
/// Updates files in the index and the working tree to match the content of the
|
||||||
/// commit pointed at by HEAD.
|
/// commit pointed at by HEAD.
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Lookup a commit object from a repository.
|
/// Lookup a commit object from a repository.
|
||||||
///
|
///
|
||||||
|
|
|
@ -3,10 +3,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Create a new config instance containing a single on-disk file
|
/// Create a new config instance containing a single on-disk file
|
||||||
Pointer<git_config> open(String path) {
|
Pointer<git_config> open(String path) {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Create a new plain-text username and password credential object.
|
/// Create a new plain-text username and password credential object.
|
||||||
Pointer<git_credential> userPass({
|
Pointer<git_credential> userPass({
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Describe a commit.
|
/// Describe a commit.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Create a diff between the repository index and the workdir directory.
|
/// Create a diff between the repository index and the workdir directory.
|
||||||
Pointer<git_diff> indexToWorkdir({
|
Pointer<git_diff> indexToWorkdir({
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Determine if a commit is the descendant of another commit.
|
/// Determine if a commit is the descendant of another commit.
|
||||||
///
|
///
|
||||||
|
@ -26,7 +25,7 @@ bool descendantOf({
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Update the contents of an existing index object in memory by reading from
|
/// Update the contents of an existing index object in memory by reading from
|
||||||
/// the hard disk.
|
/// the hard disk.
|
||||||
|
@ -88,7 +87,7 @@ bool find({required Pointer<git_index> indexPointer, required String path}) {
|
||||||
|
|
||||||
calloc.free(pathC);
|
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.
|
/// Get the count of entries currently in the index.
|
||||||
|
@ -209,7 +208,7 @@ void addAll({
|
||||||
required Pointer<git_index> indexPointer,
|
required Pointer<git_index> indexPointer,
|
||||||
required List<String> pathspec,
|
required List<String> pathspec,
|
||||||
}) {
|
}) {
|
||||||
var pathspecC = calloc<git_strarray>();
|
final pathspecC = calloc<git_strarray>();
|
||||||
final pathPointers =
|
final pathPointers =
|
||||||
pathspec.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
pathspec.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
||||||
final strArray = calloc<Pointer<Int8>>(pathspec.length);
|
final strArray = calloc<Pointer<Int8>>(pathspec.length);
|
||||||
|
@ -290,7 +289,7 @@ void removeAll({
|
||||||
|
|
||||||
/// Determine if the index contains entries representing file conflicts.
|
/// Determine if the index contains entries representing file conflicts.
|
||||||
bool hasConflicts(Pointer<git_index> index) {
|
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.
|
/// 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>>();
|
final iterator = calloc<Pointer<git_index_conflict_iterator>>();
|
||||||
libgit2.git_index_conflict_iterator_new(iterator, index);
|
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;
|
var error = 0;
|
||||||
|
|
||||||
while (error >= 0) {
|
while (error >= 0) {
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Allocate a new mailmap object.
|
/// Allocate a new mailmap object.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Find a merge base between two commits.
|
/// Find a merge base between two commits.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Returns list of notes for repository.
|
/// 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());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = <Map<String, Pointer>>[];
|
final result = <Map<String, Pointer>>[];
|
||||||
var nextError = 0;
|
var nextError = 0;
|
||||||
|
|
||||||
while (nextError >= 0) {
|
while (nextError >= 0) {
|
||||||
final noteOid = calloc<git_oid>();
|
final noteOid = calloc<git_oid>();
|
||||||
var annotatedOid = calloc<git_oid>();
|
final annotatedOid = calloc<git_oid>();
|
||||||
nextError = libgit2.git_note_next(noteOid, annotatedOid, iterator.value);
|
nextError = libgit2.git_note_next(noteOid, annotatedOid, iterator.value);
|
||||||
if (nextError >= 0) {
|
if (nextError >= 0) {
|
||||||
final out = calloc<Pointer<git_note>>();
|
final out = calloc<Pointer<git_note>>();
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Get the object type of an object.
|
/// Get the object type of an object.
|
||||||
int type(Pointer<git_object> obj) => libgit2.git_object_type(obj);
|
int type(Pointer<git_object> obj) => libgit2.git_object_type(obj);
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/oid.dart' as oid_bindings;
|
||||||
import '../oid.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/oid.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'oid.dart' as oid_bindings;
|
|
||||||
|
|
||||||
/// Create a new object database with no backends.
|
/// Create a new object database with no backends.
|
||||||
///
|
///
|
||||||
|
@ -66,7 +65,7 @@ bool exists({
|
||||||
required Pointer<git_odb> odbPointer,
|
required Pointer<git_odb> odbPointer,
|
||||||
required Pointer<git_oid> oidPointer,
|
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.
|
/// List of objects in the database.
|
||||||
|
@ -91,7 +90,9 @@ List<Oid> objects(Pointer<git_odb> odb) {
|
||||||
const except = -1;
|
const except = -1;
|
||||||
final cb =
|
final cb =
|
||||||
Pointer.fromFunction<Int32 Function(Pointer<git_oid>, Pointer<Void>)>(
|
Pointer.fromFunction<Int32 Function(Pointer<git_oid>, Pointer<Void>)>(
|
||||||
_forEachCb, except);
|
_forEachCb,
|
||||||
|
except,
|
||||||
|
);
|
||||||
final error = libgit2.git_odb_foreach(odb, cb, nullptr);
|
final error = libgit2.git_odb_foreach(odb, cb, nullptr);
|
||||||
|
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Parse N characters of a hex formatted object id into a git_oid.
|
/// Parse N characters of a hex formatted object id into a git_oid.
|
||||||
Pointer<git_oid> fromStrN(String hex) {
|
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.
|
/// Copy an already raw oid into a git_oid structure.
|
||||||
Pointer<git_oid> fromRaw(Array<Uint8> raw) {
|
Pointer<git_oid> fromRaw(Array<Uint8> raw) {
|
||||||
final out = calloc<git_oid>();
|
final out = calloc<git_oid>();
|
||||||
var rawC = calloc<Uint8>(20);
|
final rawC = calloc<Uint8>(20);
|
||||||
|
|
||||||
for (var i = 0; i < 20; i++) {
|
for (var i = 0; i < 20; i++) {
|
||||||
rawC[i] = raw[i];
|
rawC[i] = raw[i];
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Initialize a new packbuilder.
|
/// Initialize a new packbuilder.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Directly generate a patch from the difference between two buffers.
|
/// Directly generate a patch from the difference between two buffers.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Initializes a rebase operation to rebase the changes in [branchPointer]
|
/// Initializes a rebase operation to rebase the changes in [branchPointer]
|
||||||
/// relative to [upstreamPointer] onto [ontoPointer] another branch. To begin
|
/// relative to [upstreamPointer] onto [ontoPointer] another branch. To begin
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Suggests that the given refdb compress or optimize its references.
|
/// Suggests that the given refdb compress or optimize its references.
|
||||||
/// This mechanism is implementation specific. For on-disk reference databases,
|
/// This mechanism is implementation specific. For on-disk reference databases,
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Get the type of a reference.
|
/// Get the type of a reference.
|
||||||
///
|
///
|
||||||
|
@ -126,16 +125,17 @@ Pointer<git_reference> rename({
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
List<String> list(Pointer<git_repository> repo) {
|
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);
|
final error = libgit2.git_reference_list(array, repo);
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
|
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < array.ref.count; i++) {
|
for (var i = 0; i < array.ref.count; i++) {
|
||||||
result.add(
|
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);
|
calloc.free(refname);
|
||||||
|
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check if a reference is a local branch.
|
/// Check if a reference is a local branch.
|
||||||
bool isBranch(Pointer<git_reference> ref) {
|
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.
|
/// Check if a reference is a note.
|
||||||
bool isNote(Pointer<git_reference> ref) {
|
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.
|
/// Check if a reference is a remote tracking branch.
|
||||||
bool isRemote(Pointer<git_reference> ref) {
|
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.
|
/// Check if a reference is a tag.
|
||||||
bool isTag(Pointer<git_reference> ref) {
|
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.
|
/// Create a new direct reference.
|
||||||
|
@ -383,9 +383,7 @@ bool compare({
|
||||||
required Pointer<git_reference> ref1Pointer,
|
required Pointer<git_reference> ref1Pointer,
|
||||||
required Pointer<git_reference> ref2Pointer,
|
required Pointer<git_reference> ref2Pointer,
|
||||||
}) {
|
}) {
|
||||||
return libgit2.git_reference_cmp(ref1Pointer, ref2Pointer) == 0
|
return libgit2.git_reference_cmp(ref1Pointer, ref2Pointer) == 0 || false;
|
||||||
? true
|
|
||||||
: false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Recursively peel reference until object of the specified type is found.
|
/// Recursively peel reference until object of the specified type is found.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Read the reflog for the given reference.
|
/// Read the reflog for the given reference.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Get the source specifier.
|
/// Get the source specifier.
|
||||||
String source(Pointer<git_refspec> refspec) {
|
String source(Pointer<git_refspec> refspec) {
|
||||||
|
@ -18,7 +17,7 @@ String destination(Pointer<git_refspec> refspec) {
|
||||||
|
|
||||||
/// Get the force update setting.
|
/// Get the force update setting.
|
||||||
bool force(Pointer<git_refspec> refspec) {
|
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.
|
/// Get the refspec's string.
|
||||||
|
@ -40,7 +39,7 @@ bool matchesSource({
|
||||||
|
|
||||||
calloc.free(refnameC);
|
calloc.free(refnameC);
|
||||||
|
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check if a refspec's destination descriptor matches a reference.
|
/// Check if a refspec's destination descriptor matches a reference.
|
||||||
|
@ -53,7 +52,7 @@ bool matchesDestination({
|
||||||
|
|
||||||
calloc.free(refnameC);
|
calloc.free(refnameC);
|
||||||
|
|
||||||
return result == 1 ? true : false;
|
return result == 1 || false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Transform a reference to its target following the refspec's rules.
|
/// Transform a reference to its target following the refspec's rules.
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import '../callbacks.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
|
||||||
import '../oid.dart';
|
import 'package:libgit2dart/src/callbacks.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/oid.dart';
|
||||||
import 'remote_callbacks.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Get a list of the configured remotes for a repo.
|
/// 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>();
|
final out = calloc<git_strarray>();
|
||||||
libgit2.git_remote_list(out, repo);
|
libgit2.git_remote_list(out, repo);
|
||||||
|
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
for (var i = 0; i < out.ref.count; i++) {
|
for (var i = 0; i < out.ref.count; i++) {
|
||||||
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
|
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
|
||||||
}
|
}
|
||||||
|
@ -156,7 +157,7 @@ List<String> rename({
|
||||||
calloc.free(out);
|
calloc.free(out);
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
for (var i = 0; i < out.ref.count; i++) {
|
for (var i = 0; i < out.ref.count; i++) {
|
||||||
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
|
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>();
|
final out = calloc<git_strarray>();
|
||||||
libgit2.git_remote_get_fetch_refspecs(out, remote);
|
libgit2.git_remote_get_fetch_refspecs(out, remote);
|
||||||
|
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
for (var i = 0; i < out.ref.count; i++) {
|
for (var i = 0; i < out.ref.count; i++) {
|
||||||
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
|
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>();
|
final out = calloc<git_strarray>();
|
||||||
libgit2.git_remote_get_push_refspecs(out, remote);
|
libgit2.git_remote_get_push_refspecs(out, remote);
|
||||||
|
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
for (var i = 0; i < out.ref.count; i++) {
|
for (var i = 0; i < out.ref.count; i++) {
|
||||||
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
|
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>();
|
final size = calloc<Uint64>();
|
||||||
libgit2.git_remote_ls(out, size, remote);
|
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++) {
|
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['local'] = local;
|
||||||
remote['loid'] = local ? Oid.fromRaw(out[0][i].ref.loid) : null;
|
remote['loid'] = local ? Oid.fromRaw(out[0][i].ref.loid) : null;
|
||||||
|
@ -412,7 +413,7 @@ void fetch({
|
||||||
String? reflogMessage,
|
String? reflogMessage,
|
||||||
String? proxyOption,
|
String? proxyOption,
|
||||||
}) {
|
}) {
|
||||||
var refspecsC = calloc<git_strarray>();
|
final refspecsC = calloc<git_strarray>();
|
||||||
final refspecsPointers =
|
final refspecsPointers =
|
||||||
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
||||||
final strArray = calloc<Pointer<Int8>>(refspecs.length);
|
final strArray = calloc<Pointer<Int8>>(refspecs.length);
|
||||||
|
@ -468,7 +469,7 @@ void push({
|
||||||
required Callbacks callbacks,
|
required Callbacks callbacks,
|
||||||
String? proxyOption,
|
String? proxyOption,
|
||||||
}) {
|
}) {
|
||||||
var refspecsC = calloc<git_strarray>();
|
final refspecsC = calloc<git_strarray>();
|
||||||
final refspecsPointers =
|
final refspecsPointers =
|
||||||
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
refspecs.map((e) => e.toNativeUtf8().cast<Int8>()).toList();
|
||||||
final strArray = calloc<Pointer<Int8>>(refspecs.length);
|
final strArray = calloc<Pointer<Int8>>(refspecs.length);
|
||||||
|
|
|
@ -2,16 +2,16 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.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 '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 {
|
class RemoteCallbacks {
|
||||||
/// Callback function that reports transfer progress.
|
/// Callback function that reports transfer progress.
|
||||||
static void Function(TransferProgress)? transferProgress;
|
static void Function(TransferProgress)? transferProgress;
|
||||||
|
@ -108,7 +108,7 @@ class RemoteCallbacks {
|
||||||
) {
|
) {
|
||||||
repo[0] = repositoryFunction!(
|
repo[0] = repositoryFunction!(
|
||||||
path.cast<Utf8>().toDartString(),
|
path.cast<Utf8>().toDartString(),
|
||||||
bare == 1 ? true : false,
|
bare == 1 || false,
|
||||||
).pointer;
|
).pointer;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -146,7 +146,7 @@ class RemoteCallbacks {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (credentials is UserPass) {
|
if (credentials is UserPass) {
|
||||||
final cred = credentials as UserPass;
|
final cred = credentials! as UserPass;
|
||||||
credPointer[0] = credentials_bindings.userPass(
|
credPointer[0] = credentials_bindings.userPass(
|
||||||
username: cred.username,
|
username: cred.username,
|
||||||
password: cred.password,
|
password: cred.password,
|
||||||
|
@ -155,7 +155,7 @@ class RemoteCallbacks {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (credentials is Keypair) {
|
if (credentials is Keypair) {
|
||||||
final cred = credentials as Keypair;
|
final cred = credentials! as Keypair;
|
||||||
credPointer[0] = credentials_bindings.sshKey(
|
credPointer[0] = credentials_bindings.sshKey(
|
||||||
username: cred.username,
|
username: cred.username,
|
||||||
publicKey: cred.pubKey,
|
publicKey: cred.pubKey,
|
||||||
|
@ -166,13 +166,13 @@ class RemoteCallbacks {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (credentials is KeypairFromAgent) {
|
if (credentials is KeypairFromAgent) {
|
||||||
final cred = credentials as KeypairFromAgent;
|
final cred = credentials! as KeypairFromAgent;
|
||||||
credPointer[0] = credentials_bindings.sshKeyFromAgent(cred.username);
|
credPointer[0] = credentials_bindings.sshKeyFromAgent(cred.username);
|
||||||
payload.cast<Int8>().value++;
|
payload.cast<Int8>().value++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (credentials is KeypairFromMemory) {
|
if (credentials is KeypairFromMemory) {
|
||||||
final cred = credentials as KeypairFromMemory;
|
final cred = credentials! as KeypairFromMemory;
|
||||||
credPointer[0] = credentials_bindings.sshKeyFromMemory(
|
credPointer[0] = credentials_bindings.sshKeyFromMemory(
|
||||||
username: cred.username,
|
username: cred.username,
|
||||||
publicKey: cred.pubKey,
|
publicKey: cred.pubKey,
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../callbacks.dart';
|
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/callbacks.dart';
|
||||||
import '../remote.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../repository.dart';
|
import 'package:libgit2dart/src/remote.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/repository.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'remote_callbacks.dart';
|
|
||||||
|
|
||||||
/// Attempt to open an already-existing repository at [path].
|
/// Attempt to open an already-existing repository at [path].
|
||||||
///
|
///
|
||||||
|
@ -219,7 +218,7 @@ void setNamespace({
|
||||||
|
|
||||||
/// Check if a repository is bare or not.
|
/// Check if a repository is bare or not.
|
||||||
bool isBare(Pointer<git_repository> repo) {
|
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.
|
/// Check if a repository is empty.
|
||||||
|
@ -234,7 +233,7 @@ bool isEmpty(Pointer<git_repository> repo) {
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
return error == 1 ? true : false;
|
return error == 1 || false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +267,7 @@ bool isHeadDetached(Pointer<git_repository> repo) {
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
return error == 1 ? true : false;
|
return error == 1 || false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,7 +283,7 @@ bool isBranchUnborn(Pointer<git_repository> repo) {
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} 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 name = calloc<Pointer<Int8>>();
|
||||||
final email = calloc<Pointer<Int8>>();
|
final email = calloc<Pointer<Int8>>();
|
||||||
libgit2.git_repository_ident(name, email, repo);
|
libgit2.git_repository_ident(name, email, repo);
|
||||||
var identity = <String, String>{};
|
final identity = <String, String>{};
|
||||||
|
|
||||||
if (name.value == nullptr && email.value == nullptr) {
|
if (name.value == nullptr && email.value == nullptr) {
|
||||||
return identity;
|
return identity;
|
||||||
|
@ -369,12 +368,12 @@ Pointer<git_index> index(Pointer<git_repository> repo) {
|
||||||
|
|
||||||
/// Determine if the repository was a shallow clone.
|
/// Determine if the repository was a shallow clone.
|
||||||
bool isShallow(Pointer<git_repository> repo) {
|
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.
|
/// Check if a repository is a linked work tree.
|
||||||
bool isWorktree(Pointer<git_repository> repo) {
|
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.
|
/// Retrieve git's prepared message.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
/// Sets the current head to the specified commit oid and optionally resets the
|
/// Sets the current head to the specified commit oid and optionally resets the
|
||||||
/// index and working tree to match.
|
/// index and working tree to match.
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Parse a revision string for from, to, and intent.
|
/// 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.
|
/// The returned object and reference should be released when no longer needed.
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
List revParseExt({
|
List<Pointer> revParseExt({
|
||||||
required Pointer<git_repository> repoPointer,
|
required Pointer<git_repository> repoPointer,
|
||||||
required String spec,
|
required String spec,
|
||||||
}) {
|
}) {
|
||||||
|
@ -91,7 +90,7 @@ List revParseExt({
|
||||||
calloc.free(referenceOut);
|
calloc.free(referenceOut);
|
||||||
throw LibGit2Error(libgit2.git_error_last());
|
throw LibGit2Error(libgit2.git_error_last());
|
||||||
} else {
|
} else {
|
||||||
var result = <Pointer>[];
|
final result = <Pointer>[];
|
||||||
result.add(objectOut.value);
|
result.add(objectOut.value);
|
||||||
if (referenceOut.value != nullptr) {
|
if (referenceOut.value != nullptr) {
|
||||||
result.add(referenceOut.value);
|
result.add(referenceOut.value);
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/commit.dart' as commit_bindings;
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'commit.dart' as commit_bindings;
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Allocate a new revision walker to iterate through a repo.
|
/// 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_repository> repoPointer,
|
||||||
required Pointer<git_revwalk> walkerPointer,
|
required Pointer<git_revwalk> walkerPointer,
|
||||||
}) {
|
}) {
|
||||||
var result = <Pointer<git_commit>>[];
|
final result = <Pointer<git_commit>>[];
|
||||||
var error = 0;
|
var error = 0;
|
||||||
|
|
||||||
while (error == 0) {
|
while (error == 0) {
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Create a new action signature.
|
/// Create a new action signature.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/checkout.dart' as checkout_bindings;
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../oid.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../stash.dart';
|
import 'package:libgit2dart/src/oid.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/stash.dart';
|
||||||
import 'checkout.dart' as checkout_bindings;
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Save the local modifications to a new stash.
|
/// Save the local modifications to a new stash.
|
||||||
///
|
///
|
||||||
|
@ -148,18 +147,20 @@ int _stashCb(
|
||||||
Pointer<git_oid> oid,
|
Pointer<git_oid> oid,
|
||||||
Pointer<Void> payload,
|
Pointer<Void> payload,
|
||||||
) {
|
) {
|
||||||
_stashList.add(Stash(
|
_stashList.add(
|
||||||
index: index,
|
Stash(
|
||||||
message: message.cast<Utf8>().toDartString(),
|
index: index,
|
||||||
oid: Oid(oid),
|
message: message.cast<Utf8>().toDartString(),
|
||||||
));
|
oid: Oid(oid),
|
||||||
|
),
|
||||||
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Loop over all the stashed states.
|
/// Loop over all the stashed states.
|
||||||
List<Stash> list(Pointer<git_repository> repo) {
|
List<Stash> list(Pointer<git_repository> repo) {
|
||||||
const except = -1;
|
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);
|
libgit2.git_stash_foreach(repo, callBack, nullptr);
|
||||||
|
|
||||||
final result = _stashList.toList(growable: false);
|
final result = _stashList.toList(growable: false);
|
||||||
|
|
|
@ -2,10 +2,9 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Gather file status information and populate the git_status_list.
|
/// Gather file status information and populate the git_status_list.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../callbacks.dart';
|
import 'package:libgit2dart/src/bindings/remote_callbacks.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/callbacks.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import 'libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'remote_callbacks.dart';
|
|
||||||
|
|
||||||
/// List of submodule paths.
|
/// List of submodule paths.
|
||||||
///
|
///
|
||||||
|
@ -27,8 +26,10 @@ int _listCb(
|
||||||
List<String> list(Pointer<git_repository> repo) {
|
List<String> list(Pointer<git_repository> repo) {
|
||||||
const except = -1;
|
const except = -1;
|
||||||
final callback = Pointer.fromFunction<
|
final callback = Pointer.fromFunction<
|
||||||
Int32 Function(Pointer<git_submodule>, Pointer<Int8>, Pointer<Void>)>(
|
Int32 Function(Pointer<git_submodule>, Pointer<Int8>, Pointer<Void>)>(
|
||||||
_listCb, except);
|
_listCb,
|
||||||
|
except,
|
||||||
|
);
|
||||||
|
|
||||||
libgit2.git_submodule_foreach(repo, callback, nullptr);
|
libgit2.git_submodule_foreach(repo, callback, nullptr);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Fill a list with all the tags in the repository.
|
/// 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 out = calloc<git_strarray>();
|
||||||
final error = libgit2.git_tag_list(out, repo);
|
final error = libgit2.git_tag_list(out, repo);
|
||||||
|
|
||||||
var result = <String>[];
|
final result = <String>[];
|
||||||
|
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
calloc.free(out);
|
calloc.free(out);
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Get the id of a tree.
|
/// Get the id of a tree.
|
||||||
Pointer<git_oid> id(Pointer<git_tree> tree) => libgit2.git_tree_id(tree);
|
Pointer<git_oid> id(Pointer<git_tree> tree) => libgit2.git_tree_id(tree);
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Create a new tree builder.
|
/// Create a new tree builder.
|
||||||
///
|
///
|
||||||
|
|
|
@ -2,10 +2,9 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import '../error.dart';
|
import 'package:libgit2dart/src/error.dart';
|
||||||
import '../util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'libgit2_bindings.dart';
|
|
||||||
|
|
||||||
/// Add a new working tree.
|
/// Add a new working tree.
|
||||||
///
|
///
|
||||||
|
@ -81,7 +80,7 @@ bool isPrunable(Pointer<git_worktree> wt) {
|
||||||
GIT_WORKTREE_PRUNE_OPTIONS_VERSION,
|
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.
|
/// 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
|
/// A worktree may be locked if the linked working tree is stored on a portable
|
||||||
/// device which is not available.
|
/// device which is not available.
|
||||||
bool isLocked(Pointer<git_worktree> wt) {
|
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.
|
/// 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
|
/// A valid worktree requires both the git data structures inside the linked
|
||||||
/// parent repository and the linked working copy to be present.
|
/// parent repository and the linked working copy to be present.
|
||||||
bool isValid(Pointer<git_worktree> wt) {
|
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.
|
/// Free a previously allocated worktree.
|
||||||
|
|
|
@ -3,9 +3,8 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/blame.dart' as bindings;
|
||||||
import 'bindings/blame.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
|
||||||
|
|
||||||
class Blame with IterableMixin<BlameHunk> {
|
class Blame with IterableMixin<BlameHunk> {
|
||||||
/// Returns the blame for a single file.
|
/// Returns the blame for a single file.
|
||||||
|
@ -67,10 +66,12 @@ class Blame with IterableMixin<BlameHunk> {
|
||||||
///
|
///
|
||||||
/// Throws [RangeError] if index out of range.
|
/// Throws [RangeError] if index out of range.
|
||||||
BlameHunk operator [](int index) {
|
BlameHunk operator [](int index) {
|
||||||
return BlameHunk(bindings.getHunkByIndex(
|
return BlameHunk(
|
||||||
blamePointer: _blamePointer,
|
bindings.getHunkByIndex(
|
||||||
index: index,
|
blamePointer: _blamePointer,
|
||||||
));
|
index: index,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the hunk that relates to the given line number (1-based) in the
|
/// 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.
|
/// Throws [RangeError] if [lineNumber] is out of range.
|
||||||
BlameHunk forLine(int lineNumber) {
|
BlameHunk forLine(int lineNumber) {
|
||||||
return BlameHunk(bindings.getHunkByLine(
|
return BlameHunk(
|
||||||
blamePointer: _blamePointer,
|
bindings.getHunkByLine(
|
||||||
lineNumber: lineNumber,
|
blamePointer: _blamePointer,
|
||||||
));
|
lineNumber: lineNumber,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Releases memory allocated for blame object.
|
/// Releases memory allocated for blame object.
|
||||||
|
@ -105,7 +108,7 @@ class BlameHunk {
|
||||||
/// Whether the hunk has been tracked to a boundary commit
|
/// Whether the hunk has been tracked to a boundary commit
|
||||||
/// (the root, or the commit specified in [oldestCommit] argument).
|
/// (the root, or the commit specified in [oldestCommit] argument).
|
||||||
bool get isBoundary {
|
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
|
/// 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) {
|
if (index == count) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
currentHunk = BlameHunk(bindings.getHunkByIndex(
|
currentHunk = BlameHunk(
|
||||||
blamePointer: _blamePointer,
|
bindings.getHunkByIndex(
|
||||||
index: index,
|
blamePointer: _blamePointer,
|
||||||
));
|
index: index,
|
||||||
|
),
|
||||||
|
);
|
||||||
index++;
|
index++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/blob.dart' as bindings;
|
||||||
import 'bindings/blob.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/patch.dart' as patch_bindings;
|
||||||
import 'bindings/patch.dart' as patch_bindings;
|
|
||||||
|
|
||||||
class Blob {
|
class Blob {
|
||||||
/// Initializes a new instance of [Blob] class from provided pointer to
|
/// Initializes a new instance of [Blob] class from provided pointer to
|
||||||
|
@ -32,11 +31,13 @@ class Blob {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
static Oid create({required Repository repo, required String content}) {
|
static Oid create({required Repository repo, required String content}) {
|
||||||
return Oid(bindings.create(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.create(
|
||||||
buffer: content,
|
repoPointer: repo.pointer,
|
||||||
len: content.length,
|
buffer: content,
|
||||||
));
|
len: content.length,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new blob from the file in working directory of a repository and
|
/// Creates a new blob from the file in working directory of a repository and
|
||||||
|
@ -48,10 +49,12 @@ class Blob {
|
||||||
required Repository repo,
|
required Repository repo,
|
||||||
required String relativePath,
|
required String relativePath,
|
||||||
}) {
|
}) {
|
||||||
return Oid(bindings.createFromWorkdir(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.createFromWorkdir(
|
||||||
relativePath: relativePath,
|
repoPointer: repo.pointer,
|
||||||
));
|
relativePath: relativePath,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new blob from the file in filesystem and writes it to the ODB.
|
/// Creates a new blob from the file in filesystem and writes it to the ODB.
|
||||||
|
@ -115,7 +118,7 @@ class Blob {
|
||||||
);
|
);
|
||||||
|
|
||||||
return Patch(
|
return Patch(
|
||||||
result['patch'] as Pointer<git_patch>,
|
result['patch']! as Pointer<git_patch>,
|
||||||
result['a'],
|
result['a'],
|
||||||
result['b'],
|
result['b'],
|
||||||
);
|
);
|
||||||
|
@ -160,7 +163,7 @@ class Blob {
|
||||||
);
|
);
|
||||||
|
|
||||||
return Patch(
|
return Patch(
|
||||||
result['patch'] as Pointer<git_patch>,
|
result['patch']! as Pointer<git_patch>,
|
||||||
result['a'],
|
result['a'],
|
||||||
result['b'],
|
result['b'],
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/branch.dart' as bindings;
|
||||||
import 'bindings/branch.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/reference.dart' as reference_bindings;
|
||||||
import 'bindings/reference.dart' as reference_bindings;
|
|
||||||
|
|
||||||
class Branch {
|
class Branch {
|
||||||
/// Initializes a new instance of [Branch] class from provided pointer to
|
/// Initializes a new instance of [Branch] class from provided pointer to
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/commit.dart' as bindings;
|
||||||
import 'bindings/commit.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/tree.dart' as tree_bindings;
|
||||||
import 'bindings/tree.dart' as tree_bindings;
|
|
||||||
|
|
||||||
class Commit {
|
class Commit {
|
||||||
/// Initializes a new instance of [Commit] class from provided pointer to
|
/// Initializes a new instance of [Commit] class from provided pointer to
|
||||||
|
@ -67,17 +66,19 @@ class Commit {
|
||||||
required Tree tree,
|
required Tree tree,
|
||||||
required List<Commit> parents,
|
required List<Commit> parents,
|
||||||
}) {
|
}) {
|
||||||
return Oid(bindings.create(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.create(
|
||||||
updateRef: updateRef,
|
repoPointer: repo.pointer,
|
||||||
authorPointer: author.pointer,
|
updateRef: updateRef,
|
||||||
committerPointer: committer.pointer,
|
authorPointer: author.pointer,
|
||||||
messageEncoding: messageEncoding,
|
committerPointer: committer.pointer,
|
||||||
message: message,
|
messageEncoding: messageEncoding,
|
||||||
treePointer: tree.pointer,
|
message: message,
|
||||||
parentCount: parents.length,
|
treePointer: tree.pointer,
|
||||||
parents: parents.map((e) => e.pointer).toList(),
|
parentCount: parents.length,
|
||||||
));
|
parents: parents.map((e) => e.pointer).toList(),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Amends an existing commit by replacing only non-null values.
|
/// Amends an existing commit by replacing only non-null values.
|
||||||
|
@ -109,16 +110,18 @@ class Commit {
|
||||||
String? message,
|
String? message,
|
||||||
String? messageEncoding,
|
String? messageEncoding,
|
||||||
}) {
|
}) {
|
||||||
return Oid(bindings.amend(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.amend(
|
||||||
commitPointer: commit.pointer,
|
repoPointer: repo.pointer,
|
||||||
authorPointer: author?.pointer,
|
commitPointer: commit.pointer,
|
||||||
committerPointer: committer?.pointer,
|
authorPointer: author?.pointer,
|
||||||
treePointer: tree?.pointer,
|
committerPointer: committer?.pointer,
|
||||||
updateRef: updateRef,
|
treePointer: tree?.pointer,
|
||||||
message: message,
|
updateRef: updateRef,
|
||||||
messageEncoding: messageEncoding,
|
message: message,
|
||||||
));
|
messageEncoding: messageEncoding,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Wncoding for the message of a commit, as a string representing a standard
|
/// 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 of parent commits [Oid]s.
|
||||||
List<Oid> get parents {
|
List<Oid> get parents {
|
||||||
var parents = <Oid>[];
|
final parents = <Oid>[];
|
||||||
final parentCount = bindings.parentCount(_commitPointer);
|
final parentCount = bindings.parentCount(_commitPointer);
|
||||||
|
|
||||||
for (var i = 0; i < parentCount; i++) {
|
for (var i = 0; i < parentCount; i++) {
|
||||||
|
@ -161,10 +164,12 @@ class Commit {
|
||||||
|
|
||||||
/// Tree pointed to by a commit.
|
/// Tree pointed to by a commit.
|
||||||
Tree get tree {
|
Tree get tree {
|
||||||
return Tree(tree_bindings.lookup(
|
return Tree(
|
||||||
repoPointer: bindings.owner(_commitPointer),
|
tree_bindings.lookup(
|
||||||
oidPointer: bindings.tree(_commitPointer),
|
repoPointer: bindings.owner(_commitPointer),
|
||||||
));
|
oidPointer: bindings.tree(_commitPointer),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Releases memory allocated for commit object.
|
/// Releases memory allocated for commit object.
|
||||||
|
|
|
@ -4,10 +4,9 @@ import 'dart:io';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/config.dart' as bindings;
|
||||||
import 'bindings/config.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'util.dart';
|
|
||||||
|
|
||||||
class Config with IterableMixin<ConfigEntry> {
|
class Config with IterableMixin<ConfigEntry> {
|
||||||
/// Initializes a new instance of [Config] class from provided
|
/// Initializes a new instance of [Config] class from provided
|
||||||
|
@ -84,10 +83,12 @@ class Config with IterableMixin<ConfigEntry> {
|
||||||
|
|
||||||
/// Returns the [ConfigEntry] of a [variable].
|
/// Returns the [ConfigEntry] of a [variable].
|
||||||
ConfigEntry operator [](String variable) {
|
ConfigEntry operator [](String variable) {
|
||||||
return ConfigEntry(bindings.getEntry(
|
return ConfigEntry(
|
||||||
configPointer: _configPointer,
|
bindings.getEntry(
|
||||||
variable: variable,
|
configPointer: _configPointer,
|
||||||
));
|
variable: variable,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the [value] of config [variable].
|
/// Sets the [value] of config [variable].
|
||||||
|
|
|
@ -2,11 +2,10 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/diff.dart' as bindings;
|
||||||
import 'bindings/diff.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/patch.dart' as patch_bindings;
|
||||||
import 'bindings/patch.dart' as patch_bindings;
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'util.dart';
|
|
||||||
|
|
||||||
class Diff {
|
class Diff {
|
||||||
/// Initializes a new instance of [Diff] class from provided
|
/// Initializes a new instance of [Diff] class from provided
|
||||||
|
@ -43,12 +42,16 @@ class Diff {
|
||||||
/// revisions.
|
/// revisions.
|
||||||
List<DiffDelta> get deltas {
|
List<DiffDelta> get deltas {
|
||||||
final length = bindings.length(_diffPointer);
|
final length = bindings.length(_diffPointer);
|
||||||
var deltas = <DiffDelta>[];
|
final deltas = <DiffDelta>[];
|
||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
deltas.add(DiffDelta(bindings.getDeltaByIndex(
|
deltas.add(
|
||||||
diffPointer: _diffPointer,
|
DiffDelta(
|
||||||
index: i,
|
bindings.getDeltaByIndex(
|
||||||
)));
|
diffPointer: _diffPointer,
|
||||||
|
index: i,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return deltas;
|
return deltas;
|
||||||
}
|
}
|
||||||
|
@ -56,7 +59,7 @@ class Diff {
|
||||||
/// A List of [Patch]es.
|
/// A List of [Patch]es.
|
||||||
List<Patch> get patches {
|
List<Patch> get patches {
|
||||||
final length = bindings.length(_diffPointer);
|
final length = bindings.length(_diffPointer);
|
||||||
var patches = <Patch>[];
|
final patches = <Patch>[];
|
||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
patches.add(Patch.fromDiff(diff: this, index: i));
|
patches.add(Patch.fromDiff(diff: this, index: i));
|
||||||
}
|
}
|
||||||
|
@ -336,7 +339,7 @@ class DiffHunk {
|
||||||
|
|
||||||
/// Header of a hunk.
|
/// Header of a hunk.
|
||||||
String get header {
|
String get header {
|
||||||
var list = <int>[];
|
final list = <int>[];
|
||||||
for (var i = 0; i < _diffHunkPointer.ref.header_len; i++) {
|
for (var i = 0; i < _diffHunkPointer.ref.header_len; i++) {
|
||||||
list.add(_diffHunkPointer.ref.header[i]);
|
list.add(_diffHunkPointer.ref.header[i]);
|
||||||
}
|
}
|
||||||
|
@ -345,13 +348,17 @@ class DiffHunk {
|
||||||
|
|
||||||
/// List of lines in a hunk of a patch.
|
/// List of lines in a hunk of a patch.
|
||||||
List<DiffLine> get lines {
|
List<DiffLine> get lines {
|
||||||
var lines = <DiffLine>[];
|
final lines = <DiffLine>[];
|
||||||
for (var i = 0; i < linesCount; i++) {
|
for (var i = 0; i < linesCount; i++) {
|
||||||
lines.add(DiffLine(patch_bindings.lines(
|
lines.add(
|
||||||
patchPointer: _patchPointer,
|
DiffLine(
|
||||||
hunkIndex: index,
|
patch_bindings.lines(
|
||||||
lineOfHunk: i,
|
patchPointer: _patchPointer,
|
||||||
)));
|
hunkIndex: index,
|
||||||
|
lineOfHunk: i,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
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.
|
/// Details of the last error that occurred.
|
||||||
class LibGit2Error {
|
class LibGit2Error {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Features {
|
class Features {
|
||||||
/// Returns list of compile time options for libgit2.
|
/// Returns list of compile time options for libgit2.
|
||||||
|
|
|
@ -3,10 +3,9 @@ import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
|
||||||
import 'bindings/diff.dart' as diff_bindings;
|
import 'package:libgit2dart/src/bindings/index.dart' as bindings;
|
||||||
import 'bindings/index.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
|
||||||
|
|
||||||
class Index with IterableMixin<IndexEntry> {
|
class Index with IterableMixin<IndexEntry> {
|
||||||
/// Initializes a new instance of [Index] class from provided
|
/// 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.
|
/// [ArgumentError] if nothing found for provided path.
|
||||||
IndexEntry operator [](Object value) {
|
IndexEntry operator [](Object value) {
|
||||||
if (value is int) {
|
if (value is int) {
|
||||||
return IndexEntry(bindings.getByIndex(
|
return IndexEntry(
|
||||||
indexPointer: _indexPointer,
|
bindings.getByIndex(
|
||||||
position: value,
|
indexPointer: _indexPointer,
|
||||||
));
|
position: value,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return IndexEntry(bindings.getByPath(
|
return IndexEntry(
|
||||||
indexPointer: _indexPointer,
|
bindings.getByPath(
|
||||||
path: value as String,
|
indexPointer: _indexPointer,
|
||||||
stage: 0,
|
path: value as String,
|
||||||
));
|
stage: 0,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +59,7 @@ class Index with IterableMixin<IndexEntry> {
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
Map<String, ConflictEntry> get conflicts {
|
Map<String, ConflictEntry> get conflicts {
|
||||||
final conflicts = bindings.conflictList(_indexPointer);
|
final conflicts = bindings.conflictList(_indexPointer);
|
||||||
var result = <String, ConflictEntry>{};
|
final result = <String, ConflictEntry>{};
|
||||||
|
|
||||||
for (final entry in conflicts) {
|
for (final entry in conflicts) {
|
||||||
IndexEntry? ancestor, our, their;
|
IndexEntry? ancestor, our, their;
|
||||||
|
@ -166,10 +169,12 @@ class Index with IterableMixin<IndexEntry> {
|
||||||
if (repo == null) {
|
if (repo == null) {
|
||||||
return Oid(bindings.writeTree(_indexPointer));
|
return Oid(bindings.writeTree(_indexPointer));
|
||||||
} else {
|
} else {
|
||||||
return Oid(bindings.writeTreeTo(
|
return Oid(
|
||||||
indexPointer: _indexPointer,
|
bindings.writeTreeTo(
|
||||||
repoPointer: repo.pointer,
|
indexPointer: _indexPointer,
|
||||||
));
|
repoPointer: repo.pointer,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,13 +206,15 @@ class Index with IterableMixin<IndexEntry> {
|
||||||
int contextLines = 3,
|
int contextLines = 3,
|
||||||
int interhunkLines = 0,
|
int interhunkLines = 0,
|
||||||
}) {
|
}) {
|
||||||
return Diff(diff_bindings.indexToWorkdir(
|
return Diff(
|
||||||
repoPointer: bindings.owner(_indexPointer),
|
diff_bindings.indexToWorkdir(
|
||||||
indexPointer: _indexPointer,
|
repoPointer: bindings.owner(_indexPointer),
|
||||||
flags: flags.fold(0, (acc, e) => acc | e.value),
|
indexPointer: _indexPointer,
|
||||||
contextLines: contextLines,
|
flags: flags.fold(0, (acc, e) => acc | e.value),
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a diff between a tree and repository index.
|
/// Creates a diff between a tree and repository index.
|
||||||
|
@ -227,14 +234,16 @@ class Index with IterableMixin<IndexEntry> {
|
||||||
int contextLines = 3,
|
int contextLines = 3,
|
||||||
int interhunkLines = 0,
|
int interhunkLines = 0,
|
||||||
}) {
|
}) {
|
||||||
return Diff(diff_bindings.treeToIndex(
|
return Diff(
|
||||||
repoPointer: bindings.owner(_indexPointer),
|
diff_bindings.treeToIndex(
|
||||||
treePointer: tree.pointer,
|
repoPointer: bindings.owner(_indexPointer),
|
||||||
indexPointer: _indexPointer,
|
treePointer: tree.pointer,
|
||||||
flags: flags.fold(0, (acc, e) => acc | e.value),
|
indexPointer: _indexPointer,
|
||||||
contextLines: contextLines,
|
flags: flags.fold(0, (acc, e) => acc | e.value),
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Releases memory allocated for index object.
|
/// Releases memory allocated for index object.
|
||||||
|
@ -338,10 +347,12 @@ class _IndexIterator implements Iterator<IndexEntry> {
|
||||||
if (_index == count) {
|
if (_index == count) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
_currentEntry = IndexEntry(bindings.getByIndex(
|
_currentEntry = IndexEntry(
|
||||||
indexPointer: _indexPointer,
|
bindings.getByIndex(
|
||||||
position: _index,
|
indexPointer: _indexPointer,
|
||||||
));
|
position: _index,
|
||||||
|
),
|
||||||
|
);
|
||||||
_index++;
|
_index++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/mailmap.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/mailmap.dart' as bindings;
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Mailmap {
|
class Mailmap {
|
||||||
/// Initializes a new instance of [Mailmap] class.
|
/// 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.
|
/// Resolves a [signature] to use real names and emails with a mailmap.
|
||||||
Signature resolveSignature(Signature signature) {
|
Signature resolveSignature(Signature signature) {
|
||||||
return Signature(bindings.resolveSignature(
|
return Signature(
|
||||||
mailmapPointer: _mailmapPointer,
|
bindings.resolveSignature(
|
||||||
signaturePointer: signature.pointer,
|
mailmapPointer: _mailmapPointer,
|
||||||
));
|
signaturePointer: signature.pointer,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adds a single entry to the given mailmap object. If the entry already
|
/// Adds a single entry to the given mailmap object. If the entry already
|
||||||
|
@ -79,7 +81,7 @@ class Mailmap {
|
||||||
required String replaceEmail,
|
required String replaceEmail,
|
||||||
}) {
|
}) {
|
||||||
if (replaceEmail.trim().isEmpty) {
|
if (replaceEmail.trim().isEmpty) {
|
||||||
throw ArgumentError.value('replaceEmail can\'t be empty');
|
throw ArgumentError.value("replaceEmail can't be empty");
|
||||||
} else {
|
} else {
|
||||||
bindings.addEntry(
|
bindings.addEntry(
|
||||||
mailmapPointer: _mailmapPointer,
|
mailmapPointer: _mailmapPointer,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/note.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/note.dart' as bindings;
|
||||||
|
|
||||||
class Note {
|
class Note {
|
||||||
/// Initializes a new instance of the [Note] class from provided
|
/// Initializes a new instance of the [Note] class from provided
|
||||||
|
@ -64,15 +64,17 @@ class Note {
|
||||||
String notesRef = 'refs/notes/commits',
|
String notesRef = 'refs/notes/commits',
|
||||||
bool force = false,
|
bool force = false,
|
||||||
}) {
|
}) {
|
||||||
return Oid(bindings.create(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.create(
|
||||||
authorPointer: author.pointer,
|
repoPointer: repo.pointer,
|
||||||
committerPointer: committer.pointer,
|
authorPointer: author.pointer,
|
||||||
oidPointer: annotatedOid.pointer,
|
committerPointer: committer.pointer,
|
||||||
note: note,
|
oidPointer: annotatedOid.pointer,
|
||||||
notesRef: notesRef,
|
note: note,
|
||||||
force: force,
|
notesRef: notesRef,
|
||||||
));
|
force: force,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Deletes the note for an [annotatedOid].
|
/// Deletes the note for an [annotatedOid].
|
||||||
|
@ -111,10 +113,12 @@ class Note {
|
||||||
static List<Note> list(Repository repo) {
|
static List<Note> list(Repository repo) {
|
||||||
final notesPointers = bindings.list(repo.pointer);
|
final notesPointers = bindings.list(repo.pointer);
|
||||||
return notesPointers
|
return notesPointers
|
||||||
.map((e) => Note(
|
.map(
|
||||||
e['note'] as Pointer<git_note>,
|
(e) => Note(
|
||||||
e['annotatedOid'] as Pointer<git_oid>,
|
e['note']! as Pointer<git_note>,
|
||||||
))
|
e['annotatedOid']! as Pointer<git_oid>,
|
||||||
|
),
|
||||||
|
)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/odb.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/odb.dart' as bindings;
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Odb {
|
class Odb {
|
||||||
/// Initializes a new instance of [Odb] class from provided
|
/// Initializes a new instance of [Odb] class from provided
|
||||||
|
@ -64,10 +64,12 @@ class Odb {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
OdbObject read(Oid oid) {
|
OdbObject read(Oid oid) {
|
||||||
return OdbObject(bindings.read(
|
return OdbObject(
|
||||||
odbPointer: _odbPointer,
|
bindings.read(
|
||||||
oidPointer: oid.pointer,
|
odbPointer: _odbPointer,
|
||||||
));
|
oidPointer: oid.pointer,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Writes raw [data] to into the object database.
|
/// Writes raw [data] to into the object database.
|
||||||
|
@ -84,11 +86,13 @@ class Odb {
|
||||||
type == GitObject.refDelta) {
|
type == GitObject.refDelta) {
|
||||||
throw ArgumentError.value('$type is invalid type');
|
throw ArgumentError.value('$type is invalid type');
|
||||||
} else {
|
} else {
|
||||||
return Oid(bindings.write(
|
return Oid(
|
||||||
odbPointer: _odbPointer,
|
bindings.write(
|
||||||
type: type.value,
|
odbPointer: _odbPointer,
|
||||||
data: data,
|
type: type.value,
|
||||||
));
|
data: data,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/odb.dart' as odb_bindings;
|
||||||
import 'bindings/odb.dart' as odb_bindings;
|
import 'package:libgit2dart/src/bindings/oid.dart' as bindings;
|
||||||
import 'bindings/oid.dart' as bindings;
|
import 'package:libgit2dart/src/util.dart';
|
||||||
import 'util.dart';
|
|
||||||
|
|
||||||
class Oid {
|
class Oid {
|
||||||
/// Initializes a new instance of [Oid] class from provided
|
/// Initializes a new instance of [Oid] class from provided
|
||||||
|
@ -52,7 +51,7 @@ class Oid {
|
||||||
String get sha => bindings.toSHA(_oidPointer);
|
String get sha => bindings.toSHA(_oidPointer);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(other) {
|
bool operator ==(Object other) {
|
||||||
return (other is Oid) &&
|
return (other is Oid) &&
|
||||||
(bindings.compare(aPointer: _oidPointer, bPointer: other._oidPointer) ==
|
(bindings.compare(aPointer: _oidPointer, bPointer: other._oidPointer) ==
|
||||||
0);
|
0);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/packbuilder.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/packbuilder.dart' as bindings;
|
||||||
|
|
||||||
class PackBuilder {
|
class PackBuilder {
|
||||||
/// Initializes a new instance of [PackBuilder] class.
|
/// Initializes a new instance of [PackBuilder] class.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/patch.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/patch.dart' as bindings;
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Patch {
|
class Patch {
|
||||||
/// Initializes a new instance of [Patch] class from provided
|
/// 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');
|
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'];
|
_aPointer = result['a'];
|
||||||
_bPointer = result['b'];
|
_bPointer = result['b'];
|
||||||
}
|
}
|
||||||
|
@ -149,12 +149,14 @@ class Patch {
|
||||||
|
|
||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
final hunk = bindings.hunk(patchPointer: _patchPointer, hunkIndex: i);
|
final hunk = bindings.hunk(patchPointer: _patchPointer, hunkIndex: i);
|
||||||
hunks.add(DiffHunk(
|
hunks.add(
|
||||||
_patchPointer,
|
DiffHunk(
|
||||||
hunk['hunk'] as Pointer<git_diff_hunk>,
|
_patchPointer,
|
||||||
hunk['linesN'] as int,
|
hunk['hunk']! as Pointer<git_diff_hunk>,
|
||||||
i,
|
hunk['linesN']! as int,
|
||||||
));
|
i,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return hunks;
|
return hunks;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/rebase.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/rebase.dart' as bindings;
|
||||||
|
|
||||||
class Rebase {
|
class Rebase {
|
||||||
/// Initializes a rebase operation to rebase the changes in [branch] relative
|
/// Initializes a rebase operation to rebase the changes in [branch] relative
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
|
||||||
import 'bindings/object.dart' as object_bindings;
|
import 'package:libgit2dart/src/bindings/refdb.dart' as refdb_bindings;
|
||||||
import 'bindings/refdb.dart' as refdb_bindings;
|
import 'package:libgit2dart/src/bindings/reference.dart' as bindings;
|
||||||
import 'bindings/reference.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/repository.dart'
|
||||||
import 'bindings/repository.dart' as repository_bindings;
|
as repository_bindings;
|
||||||
|
|
||||||
class Reference {
|
class Reference {
|
||||||
/// Initializes a new instance of the [Reference] class.
|
/// Initializes a new instance of the [Reference] class.
|
||||||
|
@ -62,7 +62,8 @@ class Reference {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
throw ArgumentError.value(
|
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;
|
_refPointer = newPointer;
|
||||||
} else {
|
} else {
|
||||||
throw ArgumentError.value(
|
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));
|
Repository get owner => Repository(bindings.owner(_refPointer));
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(other) {
|
bool operator ==(Object other) {
|
||||||
return (other is Reference) &&
|
return (other is Reference) &&
|
||||||
bindings.compare(
|
bindings.compare(
|
||||||
ref1Pointer: _refPointer,
|
ref1Pointer: _refPointer,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'dart:collection';
|
import 'dart:collection';
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/reflog.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/reflog.dart' as bindings;
|
||||||
|
|
||||||
class RefLog with IterableMixin<RefLogEntry> {
|
class RefLog with IterableMixin<RefLogEntry> {
|
||||||
/// Initializes a new instance of [RefLog] class from provided [Reference].
|
/// 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
|
/// Requesting the reflog entry with an index of 0 will return the most
|
||||||
/// recently created entry.
|
/// recently created entry.
|
||||||
RefLogEntry operator [](int index) {
|
RefLogEntry operator [](int index) {
|
||||||
return RefLogEntry(bindings.getByIndex(
|
return RefLogEntry(
|
||||||
reflogPointer: _reflogPointer,
|
bindings.getByIndex(
|
||||||
index: index,
|
reflogPointer: _reflogPointer,
|
||||||
));
|
index: index,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Releases memory allocated for reflog object.
|
/// Releases memory allocated for reflog object.
|
||||||
|
@ -74,10 +76,12 @@ class _RefLogIterator implements Iterator<RefLogEntry> {
|
||||||
if (_index == _count) {
|
if (_index == _count) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
_currentEntry = RefLogEntry(bindings.getByIndex(
|
_currentEntry = RefLogEntry(
|
||||||
reflogPointer: _reflogPointer,
|
bindings.getByIndex(
|
||||||
index: _index,
|
reflogPointer: _reflogPointer,
|
||||||
));
|
index: _index,
|
||||||
|
),
|
||||||
|
);
|
||||||
_index++;
|
_index++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/refspec.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/refspec.dart' as bindings;
|
||||||
|
|
||||||
class Refspec {
|
class Refspec {
|
||||||
/// Initializes a new instance of the [Refspec] class
|
/// Initializes a new instance of the [Refspec] class
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/remote.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/remote.dart' as bindings;
|
||||||
|
|
||||||
class Remote {
|
class Remote {
|
||||||
/// Lookups remote with provided [name] in a [repo]sitory.
|
/// Lookups remote with provided [name] in a [repo]sitory.
|
||||||
|
@ -174,10 +174,12 @@ class Remote {
|
||||||
|
|
||||||
/// [Refspec] object from the remote at provided position.
|
/// [Refspec] object from the remote at provided position.
|
||||||
Refspec getRefspec(int index) {
|
Refspec getRefspec(int index) {
|
||||||
return Refspec(bindings.getRefspec(
|
return Refspec(
|
||||||
remotePointer: _remotePointer,
|
bindings.getRefspec(
|
||||||
position: index,
|
remotePointer: _remotePointer,
|
||||||
));
|
position: index,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// List of fetch refspecs.
|
/// List of fetch refspecs.
|
||||||
|
|
|
@ -3,19 +3,19 @@ import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
|
||||||
import 'bindings/attr.dart' as attr_bindings;
|
import 'package:libgit2dart/src/bindings/attr.dart' as attr_bindings;
|
||||||
import 'bindings/checkout.dart' as checkout_bindings;
|
import 'package:libgit2dart/src/bindings/checkout.dart' as checkout_bindings;
|
||||||
import 'bindings/commit.dart' as commit_bindings;
|
import 'package:libgit2dart/src/bindings/commit.dart' as commit_bindings;
|
||||||
import 'bindings/describe.dart' as describe_bindings;
|
import 'package:libgit2dart/src/bindings/describe.dart' as describe_bindings;
|
||||||
import 'bindings/diff.dart' as diff_bindings;
|
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
|
||||||
import 'bindings/graph.dart' as graph_bindings;
|
import 'package:libgit2dart/src/bindings/graph.dart' as graph_bindings;
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/merge.dart' as merge_bindings;
|
import 'package:libgit2dart/src/bindings/merge.dart' as merge_bindings;
|
||||||
import 'bindings/object.dart' as object_bindings;
|
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
|
||||||
import 'bindings/repository.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/repository.dart' as bindings;
|
||||||
import 'bindings/reset.dart' as reset_bindings;
|
import 'package:libgit2dart/src/bindings/reset.dart' as reset_bindings;
|
||||||
import 'bindings/status.dart' as status_bindings;
|
import 'package:libgit2dart/src/bindings/status.dart' as status_bindings;
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Repository {
|
class Repository {
|
||||||
/// Initializes a new instance of the [Repository] class from provided
|
/// Initializes a new instance of the [Repository] class from provided
|
||||||
|
@ -262,7 +262,8 @@ class Repository {
|
||||||
bindings.setHead(repoPointer: _repoPointer, refname: target);
|
bindings.setHead(repoPointer: _repoPointer, refname: target);
|
||||||
} else {
|
} else {
|
||||||
throw ArgumentError.value(
|
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,
|
required Commit ourCommit,
|
||||||
int mainline = 0,
|
int mainline = 0,
|
||||||
}) {
|
}) {
|
||||||
return Index(commit_bindings.revertCommit(
|
return Index(
|
||||||
repoPointer: _repoPointer,
|
commit_bindings.revertCommit(
|
||||||
revertCommitPointer: revertCommit.pointer,
|
repoPointer: _repoPointer,
|
||||||
ourCommitPointer: ourCommit.pointer,
|
revertCommitPointer: revertCommit.pointer,
|
||||||
mainline: mainline,
|
ourCommitPointer: ourCommit.pointer,
|
||||||
));
|
mainline: mainline,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds a single object and intermediate reference (if there is one) by a
|
/// Finds a single object and intermediate reference (if there is one) by a
|
||||||
|
@ -768,13 +771,14 @@ class Repository {
|
||||||
bool force = false,
|
bool force = false,
|
||||||
}) {
|
}) {
|
||||||
return Tag.create(
|
return Tag.create(
|
||||||
repo: this,
|
repo: this,
|
||||||
tagName: tagName,
|
tagName: tagName,
|
||||||
target: target,
|
target: target,
|
||||||
targetType: targetType,
|
targetType: targetType,
|
||||||
tagger: tagger,
|
tagger: tagger,
|
||||||
message: message,
|
message: message,
|
||||||
force: force);
|
force: force,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Deletes an existing tag reference with provided [name].
|
/// Deletes an existing tag reference with provided [name].
|
||||||
|
@ -880,9 +884,9 @@ class Repository {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
Map<String, Set<GitStatus>> get status {
|
Map<String, Set<GitStatus>> get status {
|
||||||
var result = <String, Set<GitStatus>>{};
|
final result = <String, Set<GitStatus>>{};
|
||||||
var list = status_bindings.listNew(_repoPointer);
|
final list = status_bindings.listNew(_repoPointer);
|
||||||
var count = status_bindings.listEntryCount(list);
|
final count = status_bindings.listEntryCount(list);
|
||||||
|
|
||||||
for (var i = 0; i < count; i++) {
|
for (var i = 0; i < count; i++) {
|
||||||
late String path;
|
late String path;
|
||||||
|
@ -945,11 +949,13 @@ class Repository {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
Oid mergeBase({required Oid a, required Oid b}) {
|
Oid mergeBase({required Oid a, required Oid b}) {
|
||||||
return Oid(merge_bindings.mergeBase(
|
return Oid(
|
||||||
repoPointer: _repoPointer,
|
merge_bindings.mergeBase(
|
||||||
aPointer: a.pointer,
|
repoPointer: _repoPointer,
|
||||||
bPointer: b.pointer,
|
aPointer: a.pointer,
|
||||||
));
|
bPointer: b.pointer,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Analyzes the given branch's [theirHead] oid and determines the
|
/// Analyzes the given branch's [theirHead] oid and determines the
|
||||||
|
@ -1058,14 +1064,16 @@ class Repository {
|
||||||
Set<GitMergeFlag> mergeFlags = const {GitMergeFlag.findRenames},
|
Set<GitMergeFlag> mergeFlags = const {GitMergeFlag.findRenames},
|
||||||
Set<GitMergeFileFlag> fileFlags = const {GitMergeFileFlag.defaults},
|
Set<GitMergeFileFlag> fileFlags = const {GitMergeFileFlag.defaults},
|
||||||
}) {
|
}) {
|
||||||
return Index(merge_bindings.mergeCommits(
|
return Index(
|
||||||
repoPointer: _repoPointer,
|
merge_bindings.mergeCommits(
|
||||||
ourCommitPointer: ourCommit.pointer,
|
repoPointer: _repoPointer,
|
||||||
theirCommitPointer: theirCommit.pointer,
|
ourCommitPointer: ourCommit.pointer,
|
||||||
favor: favor.value,
|
theirCommitPointer: theirCommit.pointer,
|
||||||
mergeFlags: mergeFlags.fold(0, (acc, e) => acc | e.value),
|
favor: favor.value,
|
||||||
fileFlags: fileFlags.fold(0, (acc, e) => acc | e.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
|
/// Merges two trees, producing an index that reflects the result of the
|
||||||
|
@ -1101,15 +1109,17 @@ class Repository {
|
||||||
List<GitMergeFlag> mergeFlags = const [GitMergeFlag.findRenames],
|
List<GitMergeFlag> mergeFlags = const [GitMergeFlag.findRenames],
|
||||||
List<GitMergeFileFlag> fileFlags = const [GitMergeFileFlag.defaults],
|
List<GitMergeFileFlag> fileFlags = const [GitMergeFileFlag.defaults],
|
||||||
}) {
|
}) {
|
||||||
return Index(merge_bindings.mergeTrees(
|
return Index(
|
||||||
repoPointer: _repoPointer,
|
merge_bindings.mergeTrees(
|
||||||
ancestorTreePointer: ancestorTree?.pointer ?? nullptr,
|
repoPointer: _repoPointer,
|
||||||
ourTreePointer: ourTree.pointer,
|
ancestorTreePointer: ancestorTree?.pointer ?? nullptr,
|
||||||
theirTreePointer: theirTree.pointer,
|
ourTreePointer: ourTree.pointer,
|
||||||
favor: favor.value,
|
theirTreePointer: theirTree.pointer,
|
||||||
mergeFlags: mergeFlags.fold(0, (acc, element) => acc | element.value),
|
favor: favor.value,
|
||||||
fileFlags: fileFlags.fold(0, (acc, element) => acc | element.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
|
/// 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);
|
final int flagsInt = flags.fold(0, (acc, e) => acc | e.value);
|
||||||
|
|
||||||
if (a is Tree && b is Tree) {
|
if (a is Tree && b is Tree) {
|
||||||
return Diff(diff_bindings.treeToTree(
|
return Diff(
|
||||||
repoPointer: _repoPointer,
|
diff_bindings.treeToTree(
|
||||||
oldTreePointer: a.pointer,
|
repoPointer: _repoPointer,
|
||||||
newTreePointer: b.pointer,
|
oldTreePointer: a.pointer,
|
||||||
flags: flagsInt,
|
newTreePointer: b.pointer,
|
||||||
contextLines: contextLines,
|
flags: flagsInt,
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else if (a is Tree && b == null) {
|
} else if (a is Tree && b == null) {
|
||||||
if (cached) {
|
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(
|
||||||
|
repoPointer: _repoPointer,
|
||||||
|
treePointer: a.pointer,
|
||||||
|
flags: flagsInt,
|
||||||
|
contextLines: contextLines,
|
||||||
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if (a == null && b == null) {
|
||||||
|
return Diff(
|
||||||
|
diff_bindings.indexToWorkdir(
|
||||||
repoPointer: _repoPointer,
|
repoPointer: _repoPointer,
|
||||||
treePointer: a.pointer,
|
|
||||||
indexPointer: index.pointer,
|
indexPointer: index.pointer,
|
||||||
flags: flagsInt,
|
flags: flagsInt,
|
||||||
contextLines: contextLines,
|
contextLines: contextLines,
|
||||||
interhunkLines: interhunkLines,
|
interhunkLines: interhunkLines,
|
||||||
));
|
),
|
||||||
} else {
|
);
|
||||||
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(
|
|
||||||
repoPointer: _repoPointer,
|
|
||||||
indexPointer: index.pointer,
|
|
||||||
flags: flagsInt,
|
|
||||||
contextLines: contextLines,
|
|
||||||
interhunkLines: interhunkLines,
|
|
||||||
));
|
|
||||||
} else {
|
} else {
|
||||||
throw ArgumentError.notNull('a');
|
throw ArgumentError.notNull('a');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/revparse.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/revparse.dart' as bindings;
|
||||||
|
|
||||||
class RevParse {
|
class RevParse {
|
||||||
/// Finds a single object and intermediate reference (if there is one) by a
|
/// Finds a single object and intermediate reference (if there is one) by a
|
||||||
|
@ -23,11 +23,9 @@ class RevParse {
|
||||||
repoPointer: repo.pointer,
|
repoPointer: repo.pointer,
|
||||||
spec: spec,
|
spec: spec,
|
||||||
);
|
);
|
||||||
object = Commit(pointers[0].cast<git_commit>() as Pointer<git_commit>);
|
object = Commit(pointers[0].cast<git_commit>());
|
||||||
if (pointers.length == 2) {
|
if (pointers.length == 2) {
|
||||||
reference = Reference(
|
reference = Reference(pointers[1].cast<git_reference>());
|
||||||
pointers[1].cast<git_reference>() as Pointer<git_reference>,
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
reference = null;
|
reference = null;
|
||||||
}
|
}
|
||||||
|
@ -47,12 +45,14 @@ class RevParse {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
static Commit single({required Repository repo, required String spec}) {
|
static Commit single({required Repository repo, required String spec}) {
|
||||||
return Commit(bindings
|
return Commit(
|
||||||
.revParseSingle(
|
bindings
|
||||||
repoPointer: repo.pointer,
|
.revParseSingle(
|
||||||
spec: spec,
|
repoPointer: repo.pointer,
|
||||||
)
|
spec: spec,
|
||||||
.cast());
|
)
|
||||||
|
.cast(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parses a revision string for from, to, and intent.
|
/// Parses a revision string for from, to, and intent.
|
||||||
|
@ -62,10 +62,12 @@ class RevParse {
|
||||||
///
|
///
|
||||||
/// Throws a [LibGit2Error] if error occured.
|
/// Throws a [LibGit2Error] if error occured.
|
||||||
static RevSpec range({required Repository repo, required String spec}) {
|
static RevSpec range({required Repository repo, required String spec}) {
|
||||||
return RevSpec(bindings.revParse(
|
return RevSpec(
|
||||||
repoPointer: repo.pointer,
|
bindings.revParse(
|
||||||
spec: spec,
|
repoPointer: repo.pointer,
|
||||||
));
|
spec: spec,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/revwalk.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/revwalk.dart' as bindings;
|
||||||
|
|
||||||
class RevWalk {
|
class RevWalk {
|
||||||
/// Initializes a new instance of the [RevWalk] class.
|
/// Initializes a new instance of the [RevWalk] class.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:ffi/ffi.dart';
|
import 'package:ffi/ffi.dart';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/signature.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/signature.dart' as bindings;
|
||||||
import 'util.dart';
|
import 'package:libgit2dart/src/util.dart';
|
||||||
|
|
||||||
class Signature {
|
class Signature {
|
||||||
/// Initializes a new instance of [Signature] class from provided pointer to
|
/// 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.
|
/// Creates a new action signature with default user and now timestamp.
|
||||||
///
|
///
|
||||||
/// This looks up the user.name and user.email from the configuration and
|
/// 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
|
/// uses the current time as the timestamp, and creates a new signature based
|
||||||
/// on that information.
|
/// on that information.
|
||||||
static Signature defaultSignature(Repository repo) =>
|
Signature.defaultSignature(Repository repo) {
|
||||||
Signature(bindings.defaultSignature(repo.pointer));
|
_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.
|
/// Full name of the author.
|
||||||
String get name => _signaturePointer.ref.name.cast<Utf8>().toDartString();
|
String get name => _signaturePointer.ref.name.cast<Utf8>().toDartString();
|
||||||
|
@ -65,7 +66,7 @@ class Signature {
|
||||||
int get offset => _signaturePointer.ref.when.offset;
|
int get offset => _signaturePointer.ref.when.offset;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(other) {
|
bool operator ==(Object other) {
|
||||||
return (other is Signature) &&
|
return (other is Signature) &&
|
||||||
(name == other.name) &&
|
(name == other.name) &&
|
||||||
(email == other.email) &&
|
(email == other.email) &&
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/stash.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/stash.dart' as bindings;
|
||||||
|
|
||||||
class Stash {
|
class Stash {
|
||||||
/// Initializes a new instance of [Stash] class from provided stash [index],
|
/// 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);
|
final int flagsInt = flags.fold(0, (acc, e) => acc | e.value);
|
||||||
|
|
||||||
return Oid(bindings.save(
|
return Oid(
|
||||||
repoPointer: repo.pointer,
|
bindings.save(
|
||||||
stasherPointer: stasher.pointer,
|
repoPointer: repo.pointer,
|
||||||
message: message,
|
stasherPointer: stasher.pointer,
|
||||||
flags: flagsInt,
|
message: message,
|
||||||
));
|
flags: flagsInt,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Applies a single stashed state from the stash list.
|
/// Applies a single stashed state from the stash list.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/submodule.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/submodule.dart' as bindings;
|
||||||
|
|
||||||
class Submodule {
|
class Submodule {
|
||||||
/// Lookups submodule information by [name] or path (they are usually the
|
/// Lookups submodule information by [name] or path (they are usually the
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/object.dart' as object_bindings;
|
||||||
import 'bindings/object.dart' as object_bindings;
|
import 'package:libgit2dart/src/bindings/tag.dart' as bindings;
|
||||||
import 'bindings/tag.dart' as bindings;
|
|
||||||
|
|
||||||
class Tag {
|
class Tag {
|
||||||
/// Initializes a new instance of [Tag] class from provided pointer to
|
/// Initializes a new instance of [Tag] class from provided pointer to
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
import 'package:libgit2dart/src/bindings/diff.dart' as diff_bindings;
|
||||||
import 'bindings/diff.dart' as diff_bindings;
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/tree.dart' as bindings;
|
||||||
import 'bindings/tree.dart' as bindings;
|
|
||||||
|
|
||||||
class Tree {
|
class Tree {
|
||||||
/// Initializes a new instance of [Tree] class from provided pointer to
|
/// 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 with tree entries of a tree.
|
||||||
List<TreeEntry> get entries {
|
List<TreeEntry> get entries {
|
||||||
final entryCount = bindings.entryCount(_treePointer);
|
final entryCount = bindings.entryCount(_treePointer);
|
||||||
var result = <TreeEntry>[];
|
final result = <TreeEntry>[];
|
||||||
for (var i = 0; i < entryCount; i++) {
|
for (var i = 0; i < entryCount; i++) {
|
||||||
result.add(TreeEntry(bindings.getByIndex(
|
result.add(
|
||||||
treePointer: _treePointer,
|
TreeEntry(
|
||||||
index: i,
|
bindings.getByIndex(
|
||||||
)));
|
treePointer: _treePointer,
|
||||||
|
index: i,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -54,23 +57,30 @@ class Tree {
|
||||||
/// Throws [ArgumentError] if provided [value] is not int or string.
|
/// Throws [ArgumentError] if provided [value] is not int or string.
|
||||||
TreeEntry operator [](Object value) {
|
TreeEntry operator [](Object value) {
|
||||||
if (value is int) {
|
if (value is int) {
|
||||||
return TreeEntry(bindings.getByIndex(
|
return TreeEntry(
|
||||||
treePointer: _treePointer,
|
bindings.getByIndex(
|
||||||
index: value,
|
treePointer: _treePointer,
|
||||||
));
|
index: value,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else if (value is String && value.contains('/')) {
|
} else if (value is String && value.contains('/')) {
|
||||||
return TreeEntry(bindings.getByPath(
|
return TreeEntry(
|
||||||
rootPointer: _treePointer,
|
bindings.getByPath(
|
||||||
path: value,
|
rootPointer: _treePointer,
|
||||||
));
|
path: value,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else if (value is String) {
|
} else if (value is String) {
|
||||||
return TreeEntry(bindings.getByName(
|
return TreeEntry(
|
||||||
treePointer: _treePointer,
|
bindings.getByName(
|
||||||
filename: value,
|
treePointer: _treePointer,
|
||||||
));
|
filename: value,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
throw ArgumentError.value(
|
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 contextLines = 3,
|
||||||
int interhunkLines = 0,
|
int interhunkLines = 0,
|
||||||
}) {
|
}) {
|
||||||
return Diff(diff_bindings.treeToWorkdir(
|
return Diff(
|
||||||
repoPointer: bindings.owner(_treePointer),
|
diff_bindings.treeToWorkdir(
|
||||||
treePointer: _treePointer,
|
repoPointer: bindings.owner(_treePointer),
|
||||||
flags: flags.fold(0, (acc, e) => acc | e.value),
|
treePointer: _treePointer,
|
||||||
contextLines: contextLines,
|
flags: flags.fold(0, (acc, e) => acc | e.value),
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a diff between a tree and repository index.
|
/// Creates a diff between a tree and repository index.
|
||||||
|
@ -122,14 +134,16 @@ class Tree {
|
||||||
int contextLines = 3,
|
int contextLines = 3,
|
||||||
int interhunkLines = 0,
|
int interhunkLines = 0,
|
||||||
}) {
|
}) {
|
||||||
return Diff(diff_bindings.treeToIndex(
|
return Diff(
|
||||||
repoPointer: bindings.owner(_treePointer),
|
diff_bindings.treeToIndex(
|
||||||
treePointer: _treePointer,
|
repoPointer: bindings.owner(_treePointer),
|
||||||
indexPointer: index.pointer,
|
treePointer: _treePointer,
|
||||||
flags: flags.fold(0, (acc, e) => acc | e.value),
|
indexPointer: index.pointer,
|
||||||
contextLines: contextLines,
|
flags: flags.fold(0, (acc, e) => acc | e.value),
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a diff with the difference between two tree objects.
|
/// Creates a diff with the difference between two tree objects.
|
||||||
|
@ -151,14 +165,16 @@ class Tree {
|
||||||
int contextLines = 3,
|
int contextLines = 3,
|
||||||
int interhunkLines = 0,
|
int interhunkLines = 0,
|
||||||
}) {
|
}) {
|
||||||
return Diff(diff_bindings.treeToTree(
|
return Diff(
|
||||||
repoPointer: bindings.owner(_treePointer),
|
diff_bindings.treeToTree(
|
||||||
oldTreePointer: _treePointer,
|
repoPointer: bindings.owner(_treePointer),
|
||||||
newTreePointer: tree.pointer,
|
oldTreePointer: _treePointer,
|
||||||
flags: flags.fold(0, (acc, e) => acc | e.value),
|
newTreePointer: tree.pointer,
|
||||||
contextLines: contextLines,
|
flags: flags.fold(0, (acc, e) => acc | e.value),
|
||||||
interhunkLines: interhunkLines,
|
contextLines: contextLines,
|
||||||
));
|
interhunkLines: interhunkLines,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Releases memory allocated for tree object.
|
/// Releases memory allocated for tree object.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/treebuilder.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/treebuilder.dart' as bindings;
|
||||||
|
|
||||||
class TreeBuilder {
|
class TreeBuilder {
|
||||||
/// Initializes a new instance of [TreeBuilder] class from provided
|
/// Initializes a new instance of [TreeBuilder] class from provided
|
||||||
|
@ -36,10 +36,12 @@ class TreeBuilder {
|
||||||
///
|
///
|
||||||
/// Throws [ArgumentError] if nothing found for provided [filename].
|
/// Throws [ArgumentError] if nothing found for provided [filename].
|
||||||
TreeEntry operator [](String filename) {
|
TreeEntry operator [](String filename) {
|
||||||
return TreeEntry(bindings.getByFilename(
|
return TreeEntry(
|
||||||
builderPointer: _treeBuilderPointer,
|
bindings.getByFilename(
|
||||||
filename: filename,
|
builderPointer: _treeBuilderPointer,
|
||||||
));
|
filename: filename,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adds or updates an entry to the tree builder with the given attributes.
|
/// Adds or updates an entry to the tree builder with the given attributes.
|
||||||
|
|
|
@ -3,12 +3,13 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
|
|
||||||
DynamicLibrary loadLibrary() {
|
DynamicLibrary loadLibrary() {
|
||||||
if (Platform.isLinux || Platform.isAndroid || Platform.isFuchsia) {
|
if (Platform.isLinux || Platform.isAndroid || Platform.isFuchsia) {
|
||||||
return DynamicLibrary.open(
|
return DynamicLibrary.open(
|
||||||
'${Directory.current.path}/libgit2/libgit2.so.1.3.0');
|
'${Directory.current.path}/libgit2/libgit2.so.1.3.0',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// if (Platform.isMacOS) {
|
// if (Platform.isMacOS) {
|
||||||
// return DynamicLibrary.open(
|
// return DynamicLibrary.open(
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
import 'bindings/libgit2_bindings.dart';
|
import 'package:libgit2dart/src/bindings/libgit2_bindings.dart';
|
||||||
import 'bindings/worktree.dart' as bindings;
|
import 'package:libgit2dart/src/bindings/worktree.dart' as bindings;
|
||||||
|
|
||||||
class Worktree {
|
class Worktree {
|
||||||
/// Creates new worktree.
|
/// Creates new worktree.
|
||||||
|
|
|
@ -8,10 +8,10 @@ environment:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
lints: ^1.0.1
|
|
||||||
ffigen: ^4.0.0
|
ffigen: ^4.0.0
|
||||||
test: ^1.17.5
|
lints: ^1.0.1
|
||||||
path: ^1.8.0
|
path: ^1.8.0
|
||||||
|
test: ^1.17.5
|
||||||
|
|
||||||
ffigen:
|
ffigen:
|
||||||
output: "lib/src/bindings/libgit2_bindings.dart"
|
output: "lib/src/bindings/libgit2_bindings.dart"
|
||||||
|
|
|
@ -118,7 +118,7 @@ void main() {
|
||||||
expect(config['core.bare'].value, 'false');
|
expect(config['core.bare'].value, 'false');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('throws when variable isn\'t found', () {
|
test("throws when variable isn't found", () {
|
||||||
expect(
|
expect(
|
||||||
() => config['not.there'],
|
() => config['not.there'],
|
||||||
throwsA(
|
throwsA(
|
||||||
|
@ -192,7 +192,7 @@ void main() {
|
||||||
expect(
|
expect(
|
||||||
config.multivar(
|
config.multivar(
|
||||||
variable: 'core.gitproxy',
|
variable: 'core.gitproxy',
|
||||||
regexp: 'for kernel.org\$',
|
regexp: r'for kernel.org$',
|
||||||
),
|
),
|
||||||
['proxy-command for kernel.org'],
|
['proxy-command for kernel.org'],
|
||||||
);
|
);
|
||||||
|
@ -234,20 +234,20 @@ void main() {
|
||||||
expect(
|
expect(
|
||||||
config.multivar(
|
config.multivar(
|
||||||
variable: 'core.gitproxy',
|
variable: 'core.gitproxy',
|
||||||
regexp: 'for kernel.org\$',
|
regexp: r'for kernel.org$',
|
||||||
),
|
),
|
||||||
['proxy-command for kernel.org'],
|
['proxy-command for kernel.org'],
|
||||||
);
|
);
|
||||||
|
|
||||||
config.deleteMultivar(
|
config.deleteMultivar(
|
||||||
variable: 'core.gitproxy',
|
variable: 'core.gitproxy',
|
||||||
regexp: 'for kernel.org\$',
|
regexp: r'for kernel.org$',
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
config.multivar(
|
config.multivar(
|
||||||
variable: 'core.gitproxy',
|
variable: 'core.gitproxy',
|
||||||
regexp: 'for kernel.org\$',
|
regexp: r'for kernel.org$',
|
||||||
),
|
),
|
||||||
<String>[],
|
<String>[],
|
||||||
);
|
);
|
||||||
|
|
|
@ -217,7 +217,7 @@ index e69de29..c217c63 100644
|
||||||
test('throws when trying to diff between null and tree', () {
|
test('throws when trying to diff between null and tree', () {
|
||||||
final tree = repo.lookupTree(repo['b85d53c']);
|
final tree = repo.lookupTree(repo['b85d53c']);
|
||||||
expect(
|
expect(
|
||||||
() => repo.diff(a: null, b: tree),
|
() => repo.diff(b: tree),
|
||||||
throwsA(
|
throwsA(
|
||||||
isA<ArgumentError>().having(
|
isA<ArgumentError>().having(
|
||||||
(e) => e.message,
|
(e) => e.message,
|
||||||
|
|
|
@ -172,7 +172,9 @@ void main() {
|
||||||
|
|
||||||
test('returns string representation of object', () {
|
test('returns string representation of object', () {
|
||||||
expect(
|
expect(
|
||||||
GitMergeFileFlag.defaults.toString(), 'GitMergeFileFlag.defaults');
|
GitMergeFileFlag.defaults.toString(),
|
||||||
|
'GitMergeFileFlag.defaults',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -413,7 +415,9 @@ void main() {
|
||||||
|
|
||||||
test('returns string representation of object', () {
|
test('returns string representation of object', () {
|
||||||
expect(
|
expect(
|
||||||
GitFetchPrune.unspecified.toString(), 'GitFetchPrune.unspecified');
|
GitFetchPrune.unspecified.toString(),
|
||||||
|
'GitFetchPrune.unspecified',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -552,7 +556,9 @@ void main() {
|
||||||
|
|
||||||
test('returns string representation of object', () {
|
test('returns string representation of object', () {
|
||||||
expect(
|
expect(
|
||||||
GitSubmoduleStatus.inHead.toString(), 'GitSubmoduleStatus.inHead');
|
GitSubmoduleStatus.inHead.toString(),
|
||||||
|
'GitSubmoduleStatus.inHead',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -89,7 +89,7 @@ void main() {
|
||||||
odb.free();
|
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;
|
final odb = repo.odb;
|
||||||
|
|
||||||
expect(odb.objects, isNot(isEmpty));
|
expect(odb.objects, isNot(isEmpty));
|
||||||
|
|
|
@ -70,7 +70,7 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('prune() successfully prunes branches', () {
|
test('prune() successfully prunes branches', () {
|
||||||
var pruned = <String>[];
|
final pruned = <String>[];
|
||||||
void updateTips(String refname, Oid oldOid, Oid newOid) {
|
void updateTips(String refname, Oid oldOid, Oid newOid) {
|
||||||
pruned.add(refname);
|
pruned.add(refname);
|
||||||
}
|
}
|
||||||
|
|
|
@ -315,7 +315,7 @@ void main() {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('successfully returns remote repo\'s reference list', () {
|
test("successfully returns remote repo's reference list", () {
|
||||||
Remote.setUrl(
|
Remote.setUrl(
|
||||||
repo: repo,
|
repo: repo,
|
||||||
remote: 'libgit2',
|
remote: 'libgit2',
|
||||||
|
@ -329,7 +329,7 @@ void main() {
|
||||||
expect(refs.first['name'], 'HEAD');
|
expect(refs.first['name'], 'HEAD');
|
||||||
expect(refs.first['symref'], 'refs/heads/master');
|
expect(refs.first['symref'], 'refs/heads/master');
|
||||||
expect(
|
expect(
|
||||||
(refs.first['oid'] as Oid).sha,
|
(refs.first['oid']! as Oid).sha,
|
||||||
'49322bb17d3acc9146f98c97d078513228bbf3c0',
|
'49322bb17d3acc9146f98c97d078513228bbf3c0',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -337,8 +337,8 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test(
|
test(
|
||||||
'throws when trying to get remote repo\'s reference list with '
|
"throws when trying to get remote repo's reference list with "
|
||||||
'invalid url', () {
|
"invalid url", () {
|
||||||
Remote.setUrl(repo: repo, remote: 'libgit2', url: 'invalid');
|
Remote.setUrl(repo: repo, remote: 'libgit2', url: 'invalid');
|
||||||
final remote = repo.lookupRemote('libgit2');
|
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');
|
final remote = repo.lookupRemote('libgit2');
|
||||||
|
|
||||||
var sidebandOutput = StringBuffer();
|
final sidebandOutput = StringBuffer();
|
||||||
void sideband(String message) {
|
void sideband(String message) {
|
||||||
sidebandOutput.write(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) {
|
void updateTips(String refname, Oid oldOid, Oid newOid) {
|
||||||
updateTipsOutput.add({
|
updateTipsOutput.add({
|
||||||
'refname': refname,
|
'refname': refname,
|
||||||
|
@ -576,7 +576,7 @@ Total 69 (delta 0), reused 1 (delta 0), pack-reused 68
|
||||||
repo.createRemote(name: 'local', url: originDir.path);
|
repo.createRemote(name: 'local', url: originDir.path);
|
||||||
final remote = repo.lookupRemote('local');
|
final remote = repo.lookupRemote('local');
|
||||||
|
|
||||||
var updateRefOutput = <String, String>{};
|
final updateRefOutput = <String, String>{};
|
||||||
void updateRef(String refname, String message) {
|
void updateRef(String refname, String message) {
|
||||||
updateRefOutput[refname] = message;
|
updateRefOutput[refname] = message;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// ignore_for_file: avoid_positional_boolean_parameters
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:libgit2dart/libgit2dart.dart';
|
import 'package:libgit2dart/libgit2dart.dart';
|
||||||
|
@ -101,13 +103,13 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('successfully clones repository with provided repository callback',
|
test('successfully clones repository with provided repository callback',
|
||||||
() async {
|
() {
|
||||||
final callbackPath =
|
final callbackPath =
|
||||||
Directory('${Directory.systemTemp.path}/callbackRepo');
|
Directory('${Directory.systemTemp.path}/callbackRepo');
|
||||||
if (await callbackPath.exists()) {
|
if (callbackPath.existsSync()) {
|
||||||
callbackPath.delete(recursive: true);
|
callbackPath.deleteSync(recursive: true);
|
||||||
}
|
}
|
||||||
callbackPath.create();
|
callbackPath.createSync();
|
||||||
|
|
||||||
Repository repository(String path, bool bare) =>
|
Repository repository(String path, bool bare) =>
|
||||||
Repository.init(path: callbackPath.path);
|
Repository.init(path: callbackPath.path);
|
||||||
|
@ -123,7 +125,7 @@ void main() {
|
||||||
expect(clonedRepo.path, '${callbackPath.path}/.git/');
|
expect(clonedRepo.path, '${callbackPath.path}/.git/');
|
||||||
|
|
||||||
clonedRepo.free();
|
clonedRepo.free();
|
||||||
callbackPath.delete(recursive: true);
|
callbackPath.deleteSync(recursive: true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('throws when cloning repository with invalid repository callback', () {
|
test('throws when cloning repository with invalid repository callback', () {
|
||||||
|
|
|
@ -8,7 +8,7 @@ void main() {
|
||||||
late Repository repo;
|
late Repository repo;
|
||||||
|
|
||||||
group('Repository.open', () {
|
group('Repository.open', () {
|
||||||
test('throws when repository isn\'t found at provided path', () {
|
test("throws when repository isn't found at provided path", () {
|
||||||
expect(
|
expect(
|
||||||
() => Repository.open(''),
|
() => Repository.open(''),
|
||||||
throwsA(isA<LibGit2Error>()),
|
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(
|
expect(
|
||||||
repo.commonDir,
|
repo.commonDir,
|
||||||
'${Directory.current.path}/test/assets/empty_standard/.gitdir/',
|
'${Directory.current.path}/test/assets/empty_standard/.gitdir/',
|
||||||
|
|
|
@ -13,7 +13,6 @@ void main() {
|
||||||
name: name,
|
name: name,
|
||||||
email: email,
|
email: email,
|
||||||
time: time,
|
time: time,
|
||||||
offset: offset,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -80,7 +79,6 @@ void main() {
|
||||||
name: name,
|
name: name,
|
||||||
email: email,
|
email: email,
|
||||||
time: time,
|
time: time,
|
||||||
offset: offset,
|
|
||||||
);
|
);
|
||||||
expect(signature == otherSignature, true);
|
expect(signature == otherSignature, true);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue