Same two operations as the bash pair, for driving git from Windows rather than from the development box. CREDENTIALS ARE HANDLED DIFFERENTLY, ON PURPOSE The bash version reads a token out of secrets.md and feeds it to git through GIT_ASKPASS, because that box has no credential store. Windows has one: Git for Windows installs Git Credential Manager and enables it by default, so `git push` prompts once and Windows Credential Manager keeps it. So the token handling is deliberately NOT ported. Copying a token into a script, an environment variable or a remote URL on a machine that already has a credential store is strictly worse than the thing it would replace, and the comment in the file says so, because "make it match the other script" is exactly the tidying somebody would otherwise do later. THE PROMOTE SCRIPT REFUSES TO RUN WITHOUT BASH scripts/check-naming-and-style.sh is a shell script, and it carries the ADR-015 site-literal check - the one gate that makes a site branch survivable rather than a slow leak into the product. Skipping it on a machine without bash would defeat the entire point of the script, so it stops and says how to fix it instead of promoting without it. CRLF .gitattributes already pinned *.sh to LF so Git Bash can run them; *.cmd is now pinned to CRLF for the same class of reason in the other direction. cmd.exe parses a lone LF inconsistently around labels and goto, so an LF-only batch file can run its happy path and then jump nowhere on the error path - which in a promote script is the path that matters.
1.9 KiB
1.9 KiB