Fetch the remote crypto branch, rather than cloning it
diff --git a/scripts/abi_check.py b/scripts/abi_check.py
index 1931691..d23b038 100755
--- a/scripts/abi_check.py
+++ b/scripts/abi_check.py
@@ -151,29 +151,31 @@
return
if version.crypto_repository:
- shutil.rmtree(os.path.join(git_worktree_path, "crypto"))
- clone_process = subprocess.Popen(
- [self.git_command, "clone", version.crypto_repository,
- "--branch", version.crypto_revision, "crypto"],
- cwd=git_worktree_path,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT
- )
- clone_output, _ = clone_process.communicate()
- self.log.info(clone_output.decode("utf-8"))
- if clone_process.returncode != 0:
- raise Exception("git clone failed, aborting")
- else:
- checkout_process = subprocess.Popen(
- [self.git_command, "checkout", version.crypto_revision],
+ fetch_process = subprocess.Popen(
+ [self.git_command, "fetch", version.crypto_repository,
+ version.crypto_revision],
cwd=os.path.join(git_worktree_path, "crypto"),
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT
)
- checkout_output, _ = checkout_process.communicate()
- self.log.info(checkout_output.decode("utf-8"))
- if checkout_process.returncode != 0:
- raise Exception("git checkout failed, aborting")
+ fetch_output, _ = fetch_process.communicate()
+ self.log.info(fetch_output.decode("utf-8"))
+ if fetch_process.returncode != 0:
+ raise Exception("git fetch failed, aborting")
+ crypto_rev = "FETCH_HEAD"
+ else:
+ crypto_rev = version.crypto_revision
+
+ checkout_process = subprocess.Popen(
+ [self.git_command, "checkout", crypto_rev],
+ cwd=os.path.join(git_worktree_path, "crypto"),
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT
+ )
+ checkout_output, _ = checkout_process.communicate()
+ self.log.info(checkout_output.decode("utf-8"))
+ if checkout_process.returncode != 0:
+ raise Exception("git checkout failed, aborting")
def _build_shared_libraries(self, git_worktree_path, version):
"""Build the shared libraries in the specified worktree."""