summaryrefslogtreecommitdiff
path: root/src/marlin.core/functional
diff options
context:
space:
mode:
Diffstat (limited to 'src/marlin.core/functional')
-rw-r--r--src/marlin.core/functional/GitBinaryClient.cs9
-rw-r--r--src/marlin.core/functional/IGitClient.cs1
2 files changed, 9 insertions, 1 deletions
diff --git a/src/marlin.core/functional/GitBinaryClient.cs b/src/marlin.core/functional/GitBinaryClient.cs
index 3a703da..b2751c0 100644
--- a/src/marlin.core/functional/GitBinaryClient.cs
+++ b/src/marlin.core/functional/GitBinaryClient.cs
@@ -41,6 +41,13 @@ public class GitBinaryClient : IGitClient
await this.RunAsync(authenticate: true, args.ToArray());
}
+ public async Task Checkout(string repoPath, string remote, string branch, string commit)
+ {
+ await this.RunAsync(authenticate: true, "clone", "--revision", branch, remote, repoPath);
+ // await this.RunAsync(authenticate: true, "clone", "--branch", branch, remote, repoPath);
+ await this.RunAsync(authenticate: false, "-C", repoPath, "checkout", commit);
+ }
+
public async Task<string[]> ListTree(string repoPath, string hash, string filterPath = ".")
{
string stdout = await this.RunAsync(
@@ -84,7 +91,7 @@ public class GitBinaryClient : IGitClient
foreach (string arg in arguments)
psi.ArgumentList.Add(arg);
-
+
psi.Environment["GIT_TERMINAL_PROMPT"] = "0";
IAsyncDisposable? credentialScope = authenticate && this._credential != null
diff --git a/src/marlin.core/functional/IGitClient.cs b/src/marlin.core/functional/IGitClient.cs
index 69cffa3..69476d3 100644
--- a/src/marlin.core/functional/IGitClient.cs
+++ b/src/marlin.core/functional/IGitClient.cs
@@ -5,6 +5,7 @@ public interface IGitClient
Task<Dictionary<string, string>> GetRemoteRefs(string remote);
Task Init(string repoPath);
Task FetchTrees(string repoPath, string remote, IEnumerable<string> refs, bool skipBlobs = false);
+ Task Checkout(string repoPath, string remote, string branch, string commit);
Task<string[]> ListTree(string repoPath, string hash, string filterPath = ".");
Task<byte[]> CatFile(string repoPath, string hash, string fileName);
} \ No newline at end of file