diff --git a/example/example.dart b/example/example.dart index ccc7c31..5f856f1 100644 --- a/example/example.dart +++ b/example/example.dart @@ -5,6 +5,4 @@ import 'package:libgit2dart/libgit2dart.dart'; void main() { final repo = Repository.open(Directory.current.path); print(repo.path); - - stdout.write(repo.headCommit); } diff --git a/lib/src/bindings/repository.dart b/lib/src/bindings/repository.dart index 8d6dac6..97dc662 100644 --- a/lib/src/bindings/repository.dart +++ b/lib/src/bindings/repository.dart @@ -27,10 +27,11 @@ Pointer> open(String path) { /// The [bare_path] can point to only a bare repository. /// /// Throws a [LibGit2Error] if error occured. -Pointer> openBare(String bare_path) { +Pointer> openBare(String barePath) { final out = calloc>(); - final error = libgit2.git_repository_open_bare( - out, bare_path.toNativeUtf8().cast()); + final barePathC = barePath.toNativeUtf8().cast(); + final error = libgit2.git_repository_open_bare(out, barePathC); + calloc.free(barePathC); if (error < 0) { throw LibGit2Error(error, libgit2.git_error_last()); @@ -75,11 +76,13 @@ Pointer> revParseSingle( String spec, ) { final out = calloc>(); + final specC = spec.toNativeUtf8().cast(); final error = libgit2.git_revparse_single( out, repo, - spec.toNativeUtf8().cast(), + specC, ); + calloc.free(specC); if (error < 0) { throw LibGit2Error(error, libgit2.git_error_last()); diff --git a/lib/src/repository.dart b/lib/src/repository.dart index 09b34c1..6ea7fdf 100644 --- a/lib/src/repository.dart +++ b/lib/src/repository.dart @@ -15,25 +15,18 @@ class Repository { Repository.open(String dir) { libgit2.git_libgit2_init(); - _repoPointer = repository.open(dir); - _head = repository.revParseSingle(_repoPointer.value, 'HEAD^{commit}'); - headCommit = libgit2 - .git_commit_message(_head.value.cast()) - .cast() - .toDartString(); + final _repoPointer = repository.open(dir); path = repository.path(_repoPointer.value); namespace = repository.getNamespace(_repoPointer.value); isBare = repository.isBare(_repoPointer.value); // free up neccessary pointers calloc.free(_repoPointer); - calloc.free(_head); libgit2.git_libgit2_shutdown(); } - late Pointer> _repoPointer; - late Pointer> _head; - late String headCommit; + /// Path to the `.git` folder for normal repositories + /// or path to the repository itself for bare repositories. late String path; late String namespace; late bool isBare;