Commit c99f3c50 authored by Marc Cornellà's avatar Marc Cornellà
Browse files

git: go back to previous main branch detection logic

Fixes #9114
parent ff7618cf
...@@ -183,8 +183,8 @@ plugins=(... git) ...@@ -183,8 +183,8 @@ plugins=(... git)
Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using
a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means
that any aliases and functions that previously used `master`, will use `main` if `master` doesn't exist. We do this via that any aliases and functions that previously used `master`, will use `main` if that branch exists. We do this via the
the function `git_main_branch`. function `git_main_branch`.
### Deprecated aliases ### Deprecated aliases
...@@ -209,12 +209,12 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa ...@@ -209,12 +209,12 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa
### Current ### Current
| Command | Description | | Command | Description |
|:-----------------------|:---------------------------------------------------------------------------------------| |:-----------------------|:-----------------------------------------------------------------------------|
| `grename <old> <new>` | Rename `old` branch to `new`, including in origin remote | | `grename <old> <new>` | Rename `old` branch to `new`, including in origin remote |
| current_branch | Return the name of the current branch | | current_branch | Return the name of the current branch |
| git_current_user_name | Returns the `user.name` config value | | git_current_user_name | Returns the `user.name` config value |
| git_current_user_email | Returns the `user.email` config value | | git_current_user_email | Returns the `user.email` config value |
| git_main_branch | Returns the name of the main branch: from origin or from local branches, else 'master' | | git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise |
### Work in Progress (WIP) ### Work in Progress (WIP)
......
...@@ -25,29 +25,13 @@ function work_in_progress() { ...@@ -25,29 +25,13 @@ function work_in_progress() {
fi fi
} }
# Get the default 'main' branch: from origin, from local branches, or else just 'master' # Check if main exists and use instead of master
function git_main_branch() { function git_main_branch() {
# Get default branch from the origin remote if [[ -n "$(git branch --list main)" ]]; then
local branch echo main
branch="${$(command git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)#refs/remotes/origin/}" else
if [[ -n "$branch" ]]; then
echo "$branch"
return
fi
# Look up list of local branches and return the first one that exists
local -a branches
branches=(${(@f)"$(command git for-each-ref --format='%(refname:short)' refs/heads 2>/dev/null)"})
for branch in master main; do
if (( ${branches[(Ie)$branch]} )); then
echo "$branch"
return
fi
done
echo master echo master
return 1 fi
} }
# #
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment