make/lib: podpora pro zatím neexistující větve
(pokud jsem to napsal správně.)
This commit is contained in:
		
							parent
							
								
									9a3f51ca6b
								
							
						
					
					
						commit
						485c4180da
					
				
					 1 changed files with 13 additions and 2 deletions
				
			
		
							
								
								
									
										15
									
								
								make/lib.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								make/lib.sh
									
									
									
									
									
								
							|  | @ -6,6 +6,7 @@ VENV_PATH="${VENV_PATH:-env}" | ||||||
| BRANCH="${BRANCH:-master}" | BRANCH="${BRANCH:-master}" | ||||||
| 
 | 
 | ||||||
| REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}" | REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}" | ||||||
|  | UPSTREAM_REMOTE='origin' | ||||||
| GIMLI='gimli.ms.mff.cuni.cz' | GIMLI='gimli.ms.mff.cuni.cz' | ||||||
| GIMLI_LOGIN="mam-web@$GIMLI" | GIMLI_LOGIN="mam-web@$GIMLI" | ||||||
| # Skutečné cesty, jak je vrátí `realpath` | # Skutečné cesty, jak je vrátí `realpath` | ||||||
|  | @ -70,16 +71,26 @@ function safe_checkout_branch { | ||||||
| 	local SCRIPT="$0" | 	local SCRIPT="$0" | ||||||
| 
 | 
 | ||||||
| 	git fetch --all | 	git fetch --all | ||||||
|  | 	local UPSTREAM_BRANCH | ||||||
|  | 	if git rev-parse "$BRANCH@{u}" >/dev/null 2>/dev/null | ||||||
|  | 	then | ||||||
|  | 		UPSTREAM_BRANCH="$BRANCH@{u}" # Stačí symbolicky. | ||||||
|  | 	else | ||||||
|  | 		# Tohle je jediná možná záchrana. | ||||||
|  | 		UPSTREAM_BRANCH="$UPSTREAM_REMOTE/$BRANCH" | ||||||
|  | 	fi | ||||||
|  | 	git rev-parse "$UPSTREAM_BRANCH" || die "Vzdálená větev $UPSTREAM_BRANCH neexistuje?" | ||||||
|  | 
 | ||||||
| 	# Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. | 	# Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. | ||||||
| 	# Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. | 	# Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. | ||||||
| 	# `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. | 	# `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. | ||||||
| 	# Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… | 	# Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… | ||||||
| 	if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH@{u}":make/lib.sh)" | 	if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$REMOTE_BRANCH":make/lib.sh)" | ||||||
| 	then | 	then | ||||||
| 		echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" | 		echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" | ||||||
| 		exit 1 | 		exit 1 | ||||||
| 	fi | 	fi | ||||||
| 	if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH@{u}":"$SCRIPT")" | 	if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$REMOTE_BRANCH":"$SCRIPT")" | ||||||
| 	then | 	then | ||||||
| 		echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" | 		echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" | ||||||
| 		exit 1 | 		exit 1 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky