Browse Source

Merge pull request #2301 from RogueMacro/shallow-clone

Add shallow-cloning to PackMan
Brian Fiete 14 hours ago
parent
commit
d843455108
2 changed files with 10 additions and 2 deletions
  1. 5 0
      IDE/src/util/GitManager.bf
  2. 5 2
      IDE/src/util/PackMan.bf

+ 5 - 0
IDE/src/util/GitManager.bf

@@ -315,6 +315,11 @@ class GitManager
 		return StartGit(scope $"clone -v --progress --recurse-submodules {url} \"{path}\"");
 	}
 
+	public GitInstance CloneShallow(StringView url, StringView path, StringView hash)
+	{
+		return StartGit(scope $"clone -v --progress --recurse-submodules --shallow-submodules --revision={hash} --depth 1 {url} \"{path}\"");
+	}
+
 	public GitInstance Checkout(StringView path, StringView hash)
 	{
 		return StartGit(scope $"checkout -b BeefManaged {hash}", path);

+ 5 - 2
IDE/src/util/PackMan.bf

@@ -19,6 +19,7 @@ namespace IDE.util
 				None,
 				FindVersion,
 				Clone,
+				CloneShallow,
 				Checkout,
 				Setup
 			}
@@ -276,7 +277,7 @@ namespace IDE.util
 			}
 
 			WorkItem workItem = new .();
-			workItem.mKind = .Clone;
+			workItem.mKind = .CloneShallow;
 			workItem.mProjectName = new .(projectName);
 			workItem.mURL = new .(url);
 			workItem.mTag = new .(tag);
@@ -452,7 +453,7 @@ namespace IDE.util
 						}
 					case .Clone:
 						Checkout(workItem.mProjectName, workItem.mURL, workItem.mPath, workItem.mTag, workItem.mHash);
-					case .Checkout:
+					case .Checkout, .CloneShallow:
 						if (gApp.mVerbosity >= .Normal)
 							gApp.OutputLine($"Git cloning library '{workItem.mProjectName}' done.");
 
@@ -505,6 +506,8 @@ namespace IDE.util
 						workItem.mGitInstance = gApp.mGitManager.Checkout(workItem.mPath, workItem.mHash)..AddRef();
 					case .Clone:
 						workItem.mGitInstance = gApp.mGitManager.Clone(workItem.mURL, workItem.mPath)..AddRef();
+					case .CloneShallow:
+						workItem.mGitInstance = gApp.mGitManager.CloneShallow(workItem.mURL, workItem.mPath, workItem.mHash)..AddRef();
 					default:
 					}
 				}