mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Removing accidental file addition
This commit is contained in:
parent
c3d5498041
commit
41f7e5bd27
106
git-sync.sh
106
git-sync.sh
@ -1,106 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
REMOTE_TO_SYNC='upstream' # default remote if none passed
|
|
||||||
QUIET=false # run in quiet mode
|
|
||||||
DO_PUSH=false # push to the branches upstream as part of the sync
|
|
||||||
ONLY_LOCAL=false # Only sync local branches (don't pull down from remote)
|
|
||||||
SKIP_FETCH=false # Skip the fetch step - really only useful if you know your up to date
|
|
||||||
Q_FLAG='' # the -q flag for CLI commands - changes to `-q` when running in quiet mode
|
|
||||||
|
|
||||||
# Our help function
|
|
||||||
function usage() {
|
|
||||||
echo -e "Syntax `basename $0` [-h] [-p] [-q] [-l] [-s] [-r remote-name]
|
|
||||||
-h Show this help
|
|
||||||
-p Push changes up to the repo
|
|
||||||
-q Quiet - minise output
|
|
||||||
-l Only sync local branches
|
|
||||||
-s Skip fetching the remote (may cause stale commits to be pushed)
|
|
||||||
-r [remote-name] Use this remote to sync with, defaults to ${REMOTE_TO_SYNC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Heavy lifting function to coordinate the parts
|
|
||||||
function run() {
|
|
||||||
# store the local branch as we need this later to avoid a git error with forcing branch commits
|
|
||||||
local current_branch
|
|
||||||
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
|
||||||
|
|
||||||
# if the remote exists, we can continue
|
|
||||||
if find_remote `git remote`; then
|
|
||||||
|
|
||||||
# Fetch the remote if required
|
|
||||||
${SKIP_FETCH} || (${QUIET} || echo "Fetching remote") && git fetch "${REMOTE_TO_SYNC}"
|
|
||||||
|
|
||||||
# populate the global BRANCHES var
|
|
||||||
get_branches_to_sync
|
|
||||||
|
|
||||||
# go through all the candidate branches and sync them if needed
|
|
||||||
for branch in ${BRANCHES[@]}; do
|
|
||||||
|
|
||||||
# If we want to sync all branches OR check a branch exists locally
|
|
||||||
#if [[ ! ${ONLY_LOCAL} ]] || branch_exists_locally "${branch}"; then
|
|
||||||
${QUIET} || echo -e "Resetting branch ${branch}"
|
|
||||||
# If the branch is currently checkedout we have to use git reset
|
|
||||||
if [[ "${current_branch}" == "${branch}" ]]; then
|
|
||||||
git reset -q --hard "${REMOTE_TO_SYNC}/${branch}"
|
|
||||||
else
|
|
||||||
# force the branch name to point to the remote ref
|
|
||||||
git branch -f --no-track "${branch}" "${REMOTE_TO_SYNC}/${branch}"
|
|
||||||
fi
|
|
||||||
# Push up to the default remote if needed
|
|
||||||
${DO_PUSH} && git push ${Q_FLAG} -f `git config --get branch."${branch}".remote` "${branch}":"${branch}"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "Couldn't find remote: ${REMOTE_TO_SYNC}"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Confirm the remote is in a list of passed remotes
|
|
||||||
function find_remote() {
|
|
||||||
local e
|
|
||||||
for e in "$@"; do
|
|
||||||
[[ "$e" == "$REMOTE_TO_SYNC" ]] && return 0;
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get the name of all the branches on the remote
|
|
||||||
function get_branches_to_sync() {
|
|
||||||
${QUIET} || echo "getting branches"
|
|
||||||
BRANCHES=$(git branch -r | grep -e "^ *${REMOTE_TO_SYNC}\/" | sed "s/ *${REMOTE_TO_SYNC}\///")
|
|
||||||
}
|
|
||||||
|
|
||||||
# Configm the passed branch name exists locally
|
|
||||||
function branch_exists_locally() {
|
|
||||||
local e
|
|
||||||
for e in $(git branch | sed 's/\** *//'); do
|
|
||||||
[[ "$e" == "$1" ]] && return 0
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Handle the CLI params
|
|
||||||
while getopts "hr:pqls" OPTION; do
|
|
||||||
case ${OPTION} in
|
|
||||||
r ) REMOTE_TO_SYNC="$OPTARG"
|
|
||||||
;;
|
|
||||||
p ) DO_PUSH=true
|
|
||||||
;;
|
|
||||||
q ) QUIET=true
|
|
||||||
Q_FLAG='-q'
|
|
||||||
;;
|
|
||||||
l ) ONLY_LOCAL=true
|
|
||||||
;;
|
|
||||||
s ) SKIP_FETCH=true
|
|
||||||
;;
|
|
||||||
h ) usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
run
|
|
||||||
exit $?
|
|
Loading…
Reference in New Issue
Block a user