On Sun, 14 Apr 2019 at 04:45, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Wouldn't this make it impossible to tell between what's done by such > a commit that was marked to be ignored, and what's done locally only > in the working tree, which the users have long accustomed to see > with the ^0*$ object name? I think it would make a lot more sense > to show the object name of the "ignored" commit, which would be > recognizable by the user who fed such an object name to the command > in the first place. Alternatively, perhaps the same idea as replacing > one of the hexdigits with '*' used by the other configuration can be > applied to this as well? I had the same objection to zeroing out hashes, but this option is off by default so I think it's OK. If you enable both blame.markIgnoredLines and blame.maskIgnoredUnblamables then the hash does appear as "*0000000000" like you suggest. I think it's appropriate that the '*' is only added if you opt in with the markIgnoredLines option. If you only enable blame.markIgnoredLines then the hash for "unblamable" lines appears as e.g. "*3252488f5" - this doesn't seem right to me because the commit *wasn't* ignored, it is in fact the commit in which that line was added. I think '*' should denote "this information may be inaccurate" as that's what a typical user needs to be aware of. However given that "unblamable" lines tend to be either empty or a single character I'm not going to insist :)