The change-id is exactly like a commit-id, it is an SHA-1 value, but it is a constant embedded in the commit message. Why does Gerrit need this value? Gerrit is based on the concept of revising/polishing a commit or a series of commits. For clarity, consider the case of revising a proposed bug fix. You checkout the current revision of a proposed bug fix commit that has a change-id value in it's message. You revise and _amend_ this commit, preserving the change-id in the commit message. Now your commit-id has changed, but your change-id is still the same. You then upload your amended commit to Gerrit which links the amended commit with the discussion/review. Commit-ids change all the time because of amend; change-ids are constant and they are the key that links commit revisions to a discussion. What I am requesting is a feature that generates and injects the Change-Id value for the very first commit revision. This commit is special because it will create the discussion in Gerrit for the commit. Gerrit relies on client-side change-id generation for this initial commit. This allows contributors to propose new ideas by implementing that idea and pushing the proposed implementation to Gerrit. Gerrit intercepts this and automatically creates a discussion/review keyed by the specified Change-Id value. And now through the --amend process, this commit can be revised and polished until it is blessed by a reviewer for merging to some integration branch. -J On Mon, Oct 21, 2013, at 10:51 AM, Jeremy Rosen wrote: > for those of us that are not using gerrit... > > what is a change-id (semantically, I got from your mail that it is some > sort > of unit id set at commit time) and in what way is it different from the > commit-id ? > > Cordialement > > Jérémy Rosen > +33 (0)1 42 68 28 04 > > fight key loggers : write some perl using vim > > > Open Wide Ingenierie > > 23, rue Daviel > 75012 Paris - France > www.openwide.fr > > > > > > ----- Mail original ----- > > Hello Git Community, > > > > TL;DR: > > It would be a really nice enhancement if the commit command natively > > supported _optionally_ injecting a "Change-Id: I000..." footer in the > > last paragraph of the commit message template and then substituting > > the > > "I000..." value, on commit, with a generated value _without_ having > > to > > rely on a per-repository, native hook or a global hook that affects > > every local repository. > > > > Full Request: > > Gerrit has established the change-id footer as a prominent and > > wide-spread collaboration identifier. For those contributing new > > patches to a Gerrit server, it is required to either use EGit/JGit > > (Eclipse) to generate commits [1] OR to use a commit hook script with > > native git to insert a change-id footer during the commit process > > [2]. > > This per-repository hook script requirement is an obstacle. These > > communities would be better served and it would lower the > > contribution > > barrier for many open source projects if native git supported > > change-id > > generation & injection. > > > > I acknowledge that not everyone uses nor wants to use Gerrit and the > > change-id footer. That is fine, but it would be a _tremendous_ > > usability improvement for those contributing to open source projects > > (myself included) if something like a "--change-id" flag was > > implemented and maybe even a config setting to always generate a > > change-id on commit (EGit currently supports this as > > "gerrit.createchangeid=true"). > > > > Sadly, my C skills are lacking as I live mostly in the world of > > managed > > code, but I'd be very happy to cheer for a change-id champion; I > > suspect > > there are some out there who might rally to this cause. > > > > Thanks for your consideration. > > James Moger > > gitblit.com > > > > [1] > > https://git.eclipse.org/c/jgit/jgit.git/tree/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java?h=stable-3.1#n288 > > [2] > > http://gerrit-documentation.googlecode.com/svn/Documentation/2.0/cmd-hook-commit-msg.html > > -- > > 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 > > -- 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