From 6444ad07c6995e2cd1a416cdc6c0a6b31cee9878 Mon Sep 17 00:00:00 2001 From: Joe Tretter Date: Thu, 7 May 2026 16:28:52 -0500 Subject: [PATCH] Add git re-entry alias for packaged runtime helpers - Add a plain git alias in the runtime git-exec directory so Git's internal `git ` re-entry can resolve on Android. - Keep prefixed and unprefixed helper aliases plus GIT_EXEC_PATH/PATH wiring for direct helper lookup. - Verify Push no longer reproduces `cannot run merge-base` or `cannot run fetch` in the host libgit.so runtime tests. --- app/build.gradle.kts | 4 ++-- .../solutions/tretter/githugandroid/GitRuntime.kt | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8e2ec07..204499f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,8 +19,8 @@ android { applicationId = "solutions.tretter.githugandroid" minSdk = 26 targetSdk = 35 - versionCode = 124 - versionName = "0.1.123" + versionCode = 125 + versionName = "0.1.124" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt b/app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt index 27e7e67..4283e53 100644 --- a/app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt +++ b/app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt @@ -853,6 +853,7 @@ class GitRepositoryRuntime private constructor( .apply { environment()["HOME"] = workingDir.absolutePath environment()["GIT_EXEC_PATH"] = gitExecPath.absolutePath + environment()["PATH"] = gitExecPath.absolutePath environment()["GIT_CONFIG_NOSYSTEM"] = "1" environment()["GIT_AUTHOR_NAME"] = "GitHug" environment()["GIT_AUTHOR_EMAIL"] = "githug@example.com" @@ -878,12 +879,19 @@ class GitRepositoryRuntime private constructor( } directory.mkdirs() - RequiredGitCommandAliases.forEach { command -> - val alias = File(directory, "git-$command") + File(directory, "git").also { alias -> if (!alias.exists()) { createGitAlias(binary, alias) } } + RequiredGitCommandAliases.forEach { command -> + listOf("git-$command", command).forEach { aliasName -> + val alias = File(directory, aliasName) + if (!alias.exists()) { + createGitAlias(binary, alias) + } + } + } return directory }