Karthik Nayak <karthik.188@xxxxxxxxx> writes: > If I remove the hardcoding, it would mean that > `--ignore-missing-links` would skip missing commits but for > non-commits objects, the user would have to pass > `--missing=allow-any` else rev-list would still error out with a > missing object error. > > Don't you think this would be confusing for the user? I'm happy > to send a revised version removing this hardcoding if you still > think otherwise :) Yes. This is an example of flexibility and ergonomics at odds, and for a low-level plumbing like rev-list, I would prefer not to limit the flexibility unnecessarily. I do not care about the ability to pass allow-any here. But when you traverse a range A..B with the --ignore-missing-links option, the reporting mechanism based on the --boundary cannot tell which ones are at the usual "traversal boundaries" and which ones are ones beyond the broken links, can it? If you allowed the users to pass 'print', then those reported with '?' prefix would be the missing ones. The ones that are reported with '-' prefix may still be mixture of the two kinds, but you can now subtract one set from the other set to see which ones are true boundaries and which ones are missing. The hardcoded "we do not let __ma() logic to kick in" makes it impossible, which is what I find disturbing. Thanks.