X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/0a18766caadb944db32b21891fd4cdec60410783..ad0ecd05b0768d16be08f04593d0295a4eaf8e07:/unitproc/bktemp-initGitRepo diff --git a/unitproc/bktemp-initGitRepo b/unitproc/bktemp-initGitRepo index e5d117c..10cfe40 100644 --- a/unitproc/bktemp-initGitRepo +++ b/unitproc/bktemp-initGitRepo @@ -31,11 +31,15 @@ initGitRepo() { # arg2: repoDir # arg3: remoteName # arg4: branchName - # Version: 0.0.4 + # Version: 0.0.9 # Depends: checkURL() 0.0.2, yell(), Bash 5.0.3 # Ref/Attrib: [1]: Test for space-less alphanuemric string. https://unix.stackexchange.com/a/416120 # [2]: Test for argument count. https://stackoverflow.com/q/18568706 # [3]: Test if dir is (in) git repository. https://stackoverflow.com/a/39518382 + # Note: Pulls use '--ff-only' option which requires an upstream branch be set. + # This can be done by using: + # $ git branch --set-upstream-to origin/master master + # #==BEGIN Validate input arguments== arg1="$1"; arg2="$2"; @@ -45,6 +49,9 @@ initGitRepo() { if checkURL "$arg1"; then repoURL="$arg1"; else yell "ERROR:Not a valid URL:$arg1"; return 1; fi; + # Passthrough repoDir (it may not exist yet) + repoDir="$arg2"; + # Validate remoteName if [[ "$arg3" =~ ^[[:alnum:]]+$ ]]; then remoteName="$arg3"; else yell "ERROR:Not a valid remote name:$arg3"; return 1; fi; # See [1]. @@ -65,15 +72,17 @@ initGitRepo() { else yell "STATUS:Already a git repository:$repoDir"; git status; git remote -v; - yell "STATUS:Pausing 4 seconds..."; sleep 4; fi; yell "STATUS:Adding $repoURL as remote $remoteName"; git remote add "$remoteName" "$repoURL"; + git branch --set-upstream-to "$remoteName"/"$branchName" "$branchName"; yell "STATUS:Pulling branch $branchName from remote $remoteName"; - git pull "$remoteName" "$branchName"; + git pull --ff-only "$remoteName" "$branchName"; + git fetch "$remoteName"; unset repoURL repoDir remoteName branchName; popd || exit 1; #==END create and populate git repository== + yell "================================"; } # Init Git Repository #===END Declare local script functions=== #==END Define script parameters==