RE: Git question rewarding git merge and its exit codes
- From
rsbecker@nexbridge.com <rsbecker@nexbridge.com>
- Date
- Jun 26, 2023, 15:25 UTC
- Message-ID
- <004c01d9a842$77e75ee0$67b61ca0$@nexbridge.com>
- In-Reply-To
- <CAPDGPD5UK8+Z0ksX-tv2Rs8ESZ+LCY-Tic-dZSGV0QNStFN=Pg@mail.gmail.com>
On Monday, June 26, 2023 8:15 AM, Iván Expósito wrote:
Show 11 quoted lines
>Recently, we have been working on some automations for Git, especially auto- >merging some branches. Just noticed that when using: git merge --commit --no-ff -m >"test message", and no changes are needed, git returns "Already up-to-date" with >exit code 0. Is this correct? Git hasn't done anything, so not sure how correct is to >return 0 for success when nothing has been done. We have here a problem because >the only way we can detect if a commit has been made or not is to check the return >text, which is not the best idea for future-proof, or changes in the return text. > >Is this exit code as defined, or maybe is something we would need to look into for >future improvements? Is there any other alternatives to detect what has happened, >not comparing the standard output text?
If you want to script this, use --no-commit instead of --commit. After the merge runs, use git status --porcelain to determine whether merge performed any actions involving staging to unstaged (conflicts) files. This removes the need to use the completion code.
--Randall
-- Brief whoami: NonStop&UNIX developer since approximately UNIX(421664400) NonStop(211288444200000000) -- In real life, I talk too much.