Jeff King <peff@xxxxxxxx> writes: > This patch converts file contents according to textconv attributes. The > implementation is slightly ugly; because the textconv code is tightly > linked with the diff_filespec code, we temporarily create a > diff_filespec during conversion. After reading this patch again, I think this aversion to diff_filespec is probably unjustified. It is primarily a structure that records what path has which blob by recording its object name and what mode, and also in-core data when we make the contents available. There are small diff specific data associated with it, but that could be separated out if you really wanted to, perhaps like: struct diff_filespec { struct filespec { ... the generic and essential part ... } spec; /* diff specific part follows */ const char *funcname_pattern_ident; int xfrm_flags; int rename_used; unsigned dirty_submodule :2; struct userdiff_driver *driver; int is_binary; }; and let most users use "struct filespec". If anything else, we should be using the type in _more_ codepaths that are not diff related but want to represent a path with its contents in the git namespace (be it from working tree, index or a tree), not less, and in the longer term weaken functions like fill_textconv() that take diff_filespec to take filespec so that they can be made more reusable. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html