On Fri, Dec 16 2022, Karthik Nayak wrote: > v1: https://lore.kernel.org/git/20221206103736.53909-1-karthik.188@xxxxxxxxx/ > v2: https://lore.kernel.org/git/CAOLa=ZSsFGBw3ta1jWN8cmUch2ca=zTEjp1xMA6Linafx9W53g@xxxxxxxxxxxxxx/T/#t > > Given a pathname, git-check-attr(1) will list the attributes which apply to that > pathname by reading all relevant gitattributes files. Currently there is no way > to specify a revision to read the gitattributes from. > > This is specifically useful in bare repositories wherein the gitattributes are > only present in the git working tree but not available directly on the > filesystem. > > This series aims to add a new flag `-r|--revisions` to git-check-attr(1) which > allows us to read gitattributes from the specified revision. > > Changes since version 2: > - Changes to the commit message [1/2] to use more specific terms and to > be more descriptive. > - Moved the flag's position in the documentation to be before the unbound > list of non-options. Aside from the UX concerns with this series, this segfaults with it, but not on "master": ./git check-attr diff git-send-email.perl foo.perl git-send-email.perl AddressSanitizer:DEADLYSIGNAL ================================================================= ==1828755==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x0000008ee4a8 bp 0x7fffe4cef820 sp 0x7fffe4cef800 T0) ==1828755==The signal is caused by a READ memory access. ==1828755==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used. #0 0x8ee4a8 in hasheq_algop hash.h:236 #1 0x8ee632 in oideq hash.h:253 #2 0x8ee657 in is_null_oid hash.h:258 #3 0x8f79e2 in do_oid_object_info_extended object-file.c:1550 #4 0x8f8206 in oid_object_info_extended object-file.c:1640 #5 0x8f860c in read_object object-file.c:1672 #6 0x8f8a8a in read_object_file_extended object-file.c:1715 #7 0x8f01ef in repo_read_object_file object-store.h:253 #8 0x8f8e37 in read_object_with_reference object-file.c:1756 #9 0xafb411 in get_tree_entry tree-walk.c:612 #10 0x6d1975 in read_attr_from_blob attr.c:776 #11 0x6d1b80 in read_attr attr.c:826 #12 0x6d1f35 in bootstrap_attr_stack attr.c:912 #13 0x6d2173 in prepare_attr_stack attr.c:948 #14 0x6d3285 in collect_some_attrs attr.c:1143 #15 0x6d33e1 in git_check_attr attr.c:1157 #16 0x453581 in check_attr builtin/check-attr.c:72 #17 0x453f1f in cmd_check_attr builtin/check-attr.c:190 #18 0x40b63d in run_builtin git.c:466 #19 0x40bf7f in handle_builtin git.c:721 #20 0x40c686 in run_argv git.c:788 #21 0x40d42f in cmd_main git.c:926 #22 0x6885b5 in main common-main.c:57 #23 0x7f96725a8189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #24 0x7f96725a8244 in __libc_start_main_impl ../csu/libc-start.c:381 #25 0x407230 in _start (git+0x407230) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV hash.h:236 in hasheq_algop ==1828755==ABORTING Aborted If the tests are still passing for you (I didn't check) then we probably have a bad test blind spot with kthat we should start by addressing before adding the new feature.