On Mon, Feb 20, 2023 at 7:32 AM John Cai <johncai86@xxxxxxxxx> wrote: [...] > > I'm still curious if this should this also include warnings/caveats, such as: > > * The diff attribute specified in .gitattributes will be ignored in > > a bare clone > > * The diff attribute specified in .gitattributes will be ignored if > > it is only specified in another branch (e.g. on a branch "special-file > > diff=patience" recorded in .gitattributes, then checkout master but > > run `git log -1 -p $branch`) > > * When a file is renamed, the diff attribute for the pre-image name > > is the only one the system pays attention to (thus adding "-R" can > > flip which diff algorithm is run for the renamed file). > > I would be fine with adding that--though originally I was thinking that these > can be inferred from the way that gitattributes are documented in [1]. Calling > these out would make it more clear though, so I could go either way. > > > > > Also, since I tested the three items above to verify they are valid > > warnings, I'm a bit confused. I thought your intent was to use this > > server-side[1], so isn't the bare clone aspect a deal-breaker for your > > intended usecase? > > > > [1] https://lore.kernel.org/git/7852AC7B-7A4E-4DD0-ADEA-CFFD5D16C595@xxxxxxxxx/ > > yes, indeed. I was planning on adding bare repository support in a separate > patch series, since the additions in [2] allows .gitattributes to be read from a > bare repository. > > 1. https://git-scm.com/docs/gitattributes > 2. https://lore.kernel.org/git/0ca8b2458921fc40269b0c43b5ec86eba77d6b54.1673684790.git.karthik.188@xxxxxxxxx/ > > thanks! > John Oh, interesting, I didn't know about [2]. So, is the plan to take the --source option from that series and add it to diff (perhaps with a different name, since log tends to consume diff options and --source is already taken)? And do you expect to get the tree-ish from the two the users are already specifying to diff? If so, which one do you use (the two commits being diffed might have differing .gitattributes files)? If not, what does that mean for users of e.g. the GitLab UI who have to specify a third tree when diffing?