|
@@ -74,7 +74,18 @@ def git_load_json(repo_dir: str, object_reference: str) -> Union[Dict, List]:
|
|
|
return json.loads(git_load_str(repo_dir, object_reference))
|
|
|
|
|
|
|
|
|
-def git_read_tree_node(repo_dir,
|
|
|
+def git_init(repo_dir: str) -> None:
|
|
|
+ cmd_line = ["git", "init", repo_dir]
|
|
|
+ checked_execute(cmd_line)
|
|
|
+
|
|
|
+
|
|
|
+def git_object_exists(repo_dir: str,
|
|
|
+ object_reference) -> bool:
|
|
|
+ cmd_line = git_command_line(repo_dir, "cat-file", ["-e", object_reference])
|
|
|
+ return execute(cmd_line).returncode == 0
|
|
|
+
|
|
|
+
|
|
|
+def git_read_tree_node(repo_dir: str,
|
|
|
object_reference) -> List[str]:
|
|
|
cmd_line = git_command_line(repo_dir, "cat-file", ["-p", object_reference])
|
|
|
return checked_execute(cmd_line)[0]
|
|
@@ -131,3 +142,20 @@ def git_update_ref(repo_dir: str, ref_name: str, location: str) -> None:
|
|
|
"update-ref",
|
|
|
[ref_name, location])
|
|
|
checked_execute(cmd_line)
|
|
|
+
|
|
|
+
|
|
|
+def git_fetch_reference(repo_dir: str,
|
|
|
+ remote_repo: str,
|
|
|
+ remote_reference: str,
|
|
|
+ local_reference: str):
|
|
|
+ cmd_line = git_command_line(
|
|
|
+ repo_dir,
|
|
|
+ "fetch",
|
|
|
+ [
|
|
|
+ remote_repo,
|
|
|
+ "--no-tags",
|
|
|
+ "--no-recurse-submodules",
|
|
|
+ f"{remote_reference}:{local_reference}"
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ checked_execute(cmd_line)
|