From 16aaac483a68842392175b291d7f219bbade6747 Mon Sep 17 00:00:00 2001 From: Chirsophe <cbsmith2@uab.edu> Date: Wed, 2 Apr 2025 10:57:11 -0500 Subject: [PATCH] Added git version checking. --- SaveTranscriptions.m | 49 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/SaveTranscriptions.m b/SaveTranscriptions.m index 7efbc0c..9c35e81 100644 --- a/SaveTranscriptions.m +++ b/SaveTranscriptions.m @@ -3,7 +3,7 @@ % Prepare work space clc -% checkVersion() +checkVersion() % Check for miscelaneous transcriptions in the work space miscLS = who('-regexp', '^ls(([0-9]*$)|($))'); @@ -128,4 +128,51 @@ for iTrial = 1:nTrials end end +end + +%% Git managment +function checkVersion() + % Check if the current directory is a Git repository + if ~isGitRepository() + error('This is not a Git repository.'); + end + + % Fetch the latest changes from the remote repository + system('git fetch origin'); + + % Get the current branch name + [~, currentBranch] = system('git rev-parse --abbrev-ref HEAD'); + currentBranch = strtrim(currentBranch); + + % Get the local and remote commit hashes + localCommit = getGitCommitHash(); + remoteCommit = getRemoteCommit_hash(currentBranch); + + % Compare the local and remote commits + if strcmp(localCommit, remoteCommit) + disp('Your local branch is up-to-date with the remote branch.'); + else + fprintf(2, 'WARNING: Your local branch is out of date with the remote.\n'); + fprintf(['\tLocal commit: ' localCommit '\n']); + fprintf(['\tRemote commit: ' remoteCommit '\n']); + fprintf('\tPlease run "git pull" to update your local code.\n'); + error('Invalid version.') + end +end + +function isGit = isGitRepository() + % Check if the current directory is a Git repository by checking for the existence of a .git directory + isGit = exist('.git', 'dir') == 7; +end + +function commitHash = getGitCommitHash() + % Get the commit hash of the current branch locally + [~, commitHash] = system('git rev-parse HEAD'); + commitHash = strtrim(commitHash); % Remove any trailing newline or space +end + +function remoteCommit = getRemoteCommit_hash(branch) + % Get the commit hash of the remote branch + [~, remoteCommit] = system(['git rev-parse origin/' branch]); + remoteCommit = strtrim(remoteCommit); % Remove any trailing newline or space end \ No newline at end of file -- GitLab