At a glance, there's no impediment to allowing this for pack-based repositories. Just delete the "is_in_write_group" check and it should Just Work, it simply does reload_pack_names. I haven't tested this so perhaps I'm missing something. A visual inspection of the relevant code does suggest it should Just Work though.
The difficult bit seems to be that the implementation of refresh_data for knit repositories currently depends on being outside a write group.
Rather than spend effort on making something work on a format that has been deprecated for a long time, perhaps we should just relax refresh_data's implementation to say that it *might* work in a write group, and if it can't it will raise some appropriate error? We'd make knit-format repos raise the error, and let pack-based repos refresh.
At a glance, there's no impediment to allowing this for pack-based repositories. Just delete the "is_in_write_group" check and it should Just Work, it simply does reload_pack_names. I haven't tested this so perhaps I'm missing something. A visual inspection of the relevant code does suggest it should Just Work though.
The difficult bit seems to be that the implementation of refresh_data for knit repositories currently depends on being outside a write group.
Rather than spend effort on making something work on a format that has been deprecated for a long time, perhaps we should just relax refresh_data's implementation to say that it *might* work in a write group, and if it can't it will raise some appropriate error? We'd make knit-format repos raise the error, and let pack-based repos refresh.