mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1005 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1005 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
# shellcheck shell=bash
 | 
						|
 | 
						|
# Borrowed from Git's git-sh-setup.
 | 
						|
#
 | 
						|
# See git.git commit 92c62a3f4 (from 2010!); as of 2020 with Git 2.26,
 | 
						|
# this function has only needed one edit since then, adding localization
 | 
						|
# with gettext, which we can omit.
 | 
						|
require_clean_work_tree() {
 | 
						|
    local action="$1"
 | 
						|
 | 
						|
    git rev-parse --verify HEAD >/dev/null || exit 1
 | 
						|
    git update-index -q --ignore-submodules --refresh
 | 
						|
    local err=0
 | 
						|
 | 
						|
    if ! git diff-files --quiet --ignore-submodules; then
 | 
						|
        echo >&2 "Cannot $action: You have unstaged changes."
 | 
						|
        err=1
 | 
						|
    fi
 | 
						|
 | 
						|
    if ! git diff-index --cached --quiet --ignore-submodules HEAD --; then
 | 
						|
        if [ $err = 0 ]; then
 | 
						|
            echo >&2 "Cannot $action: Your index contains uncommitted changes."
 | 
						|
        else
 | 
						|
            echo >&2 "Additionally, your index contains uncommitted changes."
 | 
						|
        fi
 | 
						|
        err=1
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ $err = 1 ]; then
 | 
						|
        git status --short
 | 
						|
        echo >&2 "Doing nothing to avoid losing your work."
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
}
 |