From: Konstantin Khomoutov Date: Mon, 30 May 2016 18:24:38 GMT Subject: Re: How to add custom metadata to Git commit object Message-ID: <20160530212438.32d863cf1448361d286bdcb4@domain007.com> In-Reply-To: <959E96F7-0FF3-4336-B098-58836136DB08@jetbrains.com> On Mon, 30 May 2016 20:58:08 +0300 Kirill Likhodedov wrote: > Is it possible to add custom metadata to Git commit object? > Such metadata should be ignored by Git commands, but could be used by > a 3-party tool which knows the format and knows where to look. > > I assume that this should be possible, given that Git objects are > actually patches, and patches can contain additional details. But can > this be done with the help of Git commands? [...] > There are git-notes, which could be used for the purpose, but they > are visible to the user via standard Git command, and could be used > by the user for other purposes, so they are not very suitable for the > task. AFAIK, within your restrictions, it's not possible because there are only two ways to add meta information for a Git commit: * Store it externally and somehow correlate it with the commit. This is what git-notes does. * Encode it directly into a commit object. Since you can't use your own headers in commit objects, you have to encode this information into the commit message in some form parsable by a machine. This is what, say, git-svn does to make it possible to correlate the commits it creates with their source Subversion revisions. In both cases the information can be viewed by the user. What I can't really understand is what is so bad about the user being able to peer at that data.