Re: [PATCH v2 4/5] Makefile: add the ".DELETE_ON_ERROR" flag
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 31, 2021, 22:29 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2104010026440.54@tvgsbejvaqbjf.bet>
- In-Reply-To
- <xmqq35wb891a.fsf@gitster.g>
Hi,
On Wed, 31 Mar 2021, Junio C Hamano wrote:
Show 17 quoted lines
> Jeff King <peff@peff.net> writes: > > > I don't know how paranoid we want to be about this, especially the > > latter. My general inclination is to prefer "commit" systems as more > > robust, but it is just a Makefile. > > ;-) > > As an old timer, I've written "gen >$@+ && mv $@+ $@" all the time > myself, but it is ugly and felt a bit too conservative. I do not > think it is wise to overnight remove all the existing "generate in > temporary, move to the final" patterns and delegate $(MAKE) to take > care of failed generator with this mechanism, but I actually would > feel it probably gives us a cleaner Makefile in the longer term. At > least "bugs in $(MAKE)" won't be our sole problem (i.e. all other > projects that rely on the feature would share the incentives to see > them fixed).
Another point in favor of removing that hack is this: `+` is not a valid character in Windows' filenames. It just so _happens_ that Cygwin (and therefore the MSYS2 Bash/`make` we use to compile Git for Windows) _pretends_ that it is a valid filename character, but regular Win32 programs cannot read/write such files, and it would preclude Git from being compiled with more native versions of a POSIX shell or `make`.
Ciao, Dscho