On 10/25, Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > > > Brandon Williams <bmwill@xxxxxxxxxx> writes: > > > >> One simple idea would be to convert the single 'flag' into various bit > >> fields themselves, that way if you need to add a new flag you would just > >> make a new bit field. I'm unaware of any downsides of doing so (though > >> i may be missing something) but doing so would probably cause a bit of > >> code churn. > > > > The reason why people want to have their own bit in the flags word > > is because they want to use DIFF_OPT_{SET,CLR,TST,TOUCHED} but they > > do not want to do the work to extend them beyond a single word. > > > > I think it is doable by making everything a 1-bit wide bitfield > > without affecting existing users. > > ... but the "touched" thing may be harder---I haven't thought it > through. >From what I can tell the 'touched' thing is implemented as a parallel flag field so we would just need to have each flag use 2-bits, one for the flag itself and one for the 'touched' field. Then when using those macros it would just need to update the corresponding 'touched' field as well as what ever happens with the flag itself. It may be a little more involved than the current scheme but it should be doable if we need to extend the flag space past 32 bits. -- Brandon Williams