mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
scripts/git: Cleanup and fix minor git scripts issues
Fix typos, clean up formatting, rewrite some comments, add headings. Preparation for 31314.
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##############################
|
||||
# Configuration (change me!) #
|
||||
##############################
|
||||
#################
|
||||
# Configuration #
|
||||
#################
|
||||
|
||||
# Don't change this configuration - set the env vars in your .profile
|
||||
#
|
||||
# The general setup that is suggested here is:
|
||||
#
|
||||
# GIT_PATH = /home/<user>/git/
|
||||
@@ -21,20 +23,23 @@ TOR_MASTER_NAME=${TOR_MASTER_NAME:-"tor"}
|
||||
# The worktrees location (directory).
|
||||
TOR_WKT_NAME=${TOR_WKT_NAME:-"tor-wkt"}
|
||||
|
||||
#########################
|
||||
# End of configuration. #
|
||||
#########################
|
||||
##########################
|
||||
# Git branches to manage #
|
||||
##########################
|
||||
|
||||
# The branches and worktrees need to be modified when there is a new branch,
|
||||
# and when an old branch is no longer supported.
|
||||
|
||||
# Configuration of the branches that needs merging. The values are in order:
|
||||
# (1) Branch name that we merge onto.
|
||||
# (2) Branch name to merge from. In other words, this is merge into (1)
|
||||
# (3) Full path of the git worktree.
|
||||
# (0) current maint/release branch name
|
||||
# (1) previous maint/release name to merge into (0)
|
||||
# (2) Full path of the git worktree
|
||||
#
|
||||
# As an example:
|
||||
# $ cd <PATH/TO/WORKTREE> (3)
|
||||
# $ git checkout maint-0.3.5 (1)
|
||||
# $ cd <PATH/TO/WORKTREE> (2)
|
||||
# $ git checkout maint-0.3.5 (0)
|
||||
# $ git pull
|
||||
# $ git merge maint-0.3.4 (2)
|
||||
# $ git merge maint-0.3.4 (1)
|
||||
#
|
||||
# First set of arrays are the maint-* branch and then the release-* branch.
|
||||
# New arrays need to be in the WORKTREE= array else they aren't considered.
|
||||
@@ -65,9 +70,28 @@ ${RELEASE_040[0]}
|
||||
${RELEASE_041[0]}
|
||||
EOF
|
||||
|
||||
##########################
|
||||
# Git Worktree to manage #
|
||||
##########################
|
||||
#######################
|
||||
# Argument processing #
|
||||
#######################
|
||||
|
||||
# Controlled by the -n option. The dry run option will just output the command
|
||||
# that would have been executed for each worktree.
|
||||
DRY_RUN=0
|
||||
|
||||
while getopts "n" opt; do
|
||||
case "$opt" in
|
||||
n) DRY_RUN=1
|
||||
echo " *** DRY RUN MODE ***"
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
###########################
|
||||
# Git worktrees to manage #
|
||||
###########################
|
||||
|
||||
# List of all worktrees to work on. All defined above. Ordering is important.
|
||||
# Always the maint-* branch BEFORE then the release-*.
|
||||
@@ -87,9 +111,9 @@ WORKTREE=(
|
||||
)
|
||||
COUNT=${#WORKTREE[@]}
|
||||
|
||||
# Controlled by the -n option. The dry run option will just output the command
|
||||
# that would have been executed for each worktree.
|
||||
DRY_RUN=0
|
||||
#############
|
||||
# Constants #
|
||||
#############
|
||||
|
||||
# Control characters
|
||||
CNRM=$'\x1b[0;0m' # Clear color
|
||||
@@ -150,7 +174,7 @@ function pull_branch
|
||||
fi
|
||||
}
|
||||
|
||||
# Merge the given branch name ($2) into the current branch ($1).
|
||||
# Merge the given branch name ($1) into the current branch ($2).
|
||||
function merge_branch
|
||||
{
|
||||
local cmd="git merge --no-edit $1"
|
||||
@@ -203,16 +227,6 @@ function fetch_origin
|
||||
# Entry point #
|
||||
###############
|
||||
|
||||
while getopts "n" opt; do
|
||||
case "$opt" in
|
||||
n) DRY_RUN=1
|
||||
echo " *** DRY DRUN MODE ***"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# First, fetch the origin.
|
||||
goto_repo "$ORIGIN_PATH"
|
||||
fetch_origin
|
||||
@@ -231,6 +245,7 @@ for ((i=0; i<COUNT; i++)); do
|
||||
switch_branch "$current"
|
||||
# Update the current branch with an origin merge to get the latest.
|
||||
merge_branch_origin "$current"
|
||||
# Merge the previous branch. Ex: merge maint-0.2.5 into maint-0.2.9.
|
||||
# Example:
|
||||
# merge maint-0.2.9 into maint-0.3.5.
|
||||
merge_branch "$previous" "$current"
|
||||
done
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Usage: git-push-all.sh
|
||||
# Usage: git-push-all.sh <git-opts>
|
||||
# env vars: TOR_UPSTREAM_REMOTE_NAME=upstream TOR_PUSH_DELAY=0
|
||||
# options: --no-atomic --dry-run (any other git push option)
|
||||
# git-opts: --no-atomic --dry-run (any other git push option)
|
||||
#
|
||||
# TOR_PUSH_DELAY pushes the master and maint branches separately, so that CI
|
||||
# runs in a sensible order.
|
||||
@@ -10,11 +10,21 @@
|
||||
|
||||
set -e
|
||||
|
||||
#################
|
||||
# Configuration #
|
||||
#################
|
||||
|
||||
# Don't change this configuration - set the env vars in your .profile
|
||||
#
|
||||
# The upstream remote which git.torproject.org/tor.git points to.
|
||||
UPSTREAM_REMOTE=${TOR_UPSTREAM_REMOTE_NAME:-"upstream"}
|
||||
# Add a delay between pushes, so CI runs on the most important branches first
|
||||
PUSH_DELAY=${TOR_PUSH_DELAY:-0}
|
||||
|
||||
########################
|
||||
# Git branches to push #
|
||||
########################
|
||||
|
||||
PUSH_BRANCHES=$(echo \
|
||||
master \
|
||||
{release,maint}-0.4.1 \
|
||||
@@ -23,6 +33,10 @@ PUSH_BRANCHES=$(echo \
|
||||
{release,maint}-0.2.9 \
|
||||
)
|
||||
|
||||
###############
|
||||
# Entry point #
|
||||
###############
|
||||
|
||||
if [ "$PUSH_DELAY" -le 0 ]; then
|
||||
echo "Pushing $PUSH_BRANCHES"
|
||||
# We know that there are no spaces in any branch within $PUSH_BRANCHES, so
|
||||
|
||||
Reference in New Issue
Block a user