# Tracking changes in git with a change number....

5 messages from 2011-07-11 to 2011-07-12. Participants: Rice, James M CIV NSWCDD, K73, Damien Wyart, Jeff King, Stephen Bash.
Thread: https://gitlist.dev/t/27790

## Rice, James M CIV NSWCDD, K73, 2011-07-11 17:29

Subject: Tracking changes in git with a change number....
Message-ID: <C785F567A08DDE449FD4590C91E6AD13CB34BE@naeamillez01v.nadsusea.nads.navy.mil>
URL: https://gitlist.dev/e/C785F567A08DDE449FD4590C91E6AD13CB34BE%40naeamillez01v.nadsusea.nads.navy.mil

```
We are getting ready to switch over to git as our CM tool, but have an issue.

In our organization we track changes via a Change Request (CR) number.  We may end up with multiple commits, by one or more users under a single CR number.  When we deliver our CM folks want to be able to see all the files that have changed for a particular CR number.  Is there an elegant way to do this in git? 

Restating the problem.  I wish for our developers to be able to reference multiple commits with one number, and then find those commits via that number.  And I don't mind scripting to accomplish this.  I know, that CR # can be put in the commit message, then I can grep and parse the log, that is the hard way.

It would seem that this would be a relatively common problem.  Any help would be greatly appreciated!

```

## Damien Wyart, 2011-07-12 05:37

Subject: Re: Tracking changes in git with a change number....
Message-ID: <20110712053735.GA4539@brouette>
URL: https://gitlist.dev/e/20110712053735.GA4539%40brouette
In-Reply-To: <C785F567A08DDE449FD4590C91E6AD13CB34BE@naeamillez01v.nadsusea.nads.navy.mil>

```
Hi,

* Rice, James M CIV NSWCDD, K73 <james.rice2@navy.mil> [2011-07-11 13:29]:
> In our organization we track changes via a Change Request (CR) number.
> We may end up with multiple commits, by one or more users under
> a single CR number. When we deliver our CM folks want to be able to
> see all the files that have changed for a particular CR number. Is
> there an elegant way to do this in git?

Hi. The Gerrit code review tool comes with such a feature, explained on
this page:
http://gerrit.googlecode.com/svn/documentation/2.2.0/user-changeid.html

Best,
-- 
Damien Wyart

```

## Jeff King, 2011-07-12 05:50

Subject: Re: Tracking changes in git with a change number....
Message-ID: <20110712055008.GC11644@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20110712055008.GC11644%40sigill.intra.peff.net
In-Reply-To: <C785F567A08DDE449FD4590C91E6AD13CB34BE@naeamillez01v.nadsusea.nads.navy.mil>

```
On Mon, Jul 11, 2011 at 01:29:52PM -0400, Rice, James M CIV NSWCDD, K73 wrote:

> Restating the problem.  I wish for our developers to be able to
> reference multiple commits with one number, and then find those
> commits via that number.  And I don't mind scripting to accomplish
> this.  I know, that CR # can be put in the commit message, then I can
> grep and parse the log, that is the hard way.

There are two ways to approach this: tell the CM tool about some git
commits, or tell some git commits about the CR number.

For telling the CM tool about git commits, refer to them by their sha1
commit ids.  If the commits are sequential, you can refer to the
sequence by its endpoints. And then if you want to know which files were
touched, you can just diff the endpoints, like:

  $ git diff-tree --name-only $start $end

It's not a number, exactly, but it is a fixed size (two 40-byte commit
ids). Would that work in your CM tool?

If the commits aren't sequential, you can do something similar, but you
have a variable-length list of commit ids, and you get the set of
changed files like:

  $ for i in $commits; do
      git diff-tree --name-only $i |
      tail -n +2
    done | sort -u

If you want to do the reverse and tell git about CR numbers, then I
don't think you have much option besides putting them in the commit
message. Which means you'll need to grep to get them out. You can do
something like:

  $ git log --grep='CR#' --pretty=format: --name-only

-Peff

```

## Stephen Bash, 2011-07-12 12:54

Subject: Re: Tracking changes in git with a change number....
Message-ID: <2077407.34684.1310475245616.JavaMail.root@mail.hq.genarts.com>
URL: https://gitlist.dev/e/2077407.34684.1310475245616.JavaMail.root%40mail.hq.genarts.com
In-Reply-To: <20110712055008.GC11644@sigill.intra.peff.net>

```
----- Original Message -----
> From: "Jeff King" <peff@peff.net>
> Sent: Tuesday, July 12, 2011 1:50:08 AM
> Subject: Re: Tracking changes in git with a change number....
> 
> > Restating the problem. I wish for our developers to be able to
> > reference multiple commits with one number, and then find those
> > commits via that number. And I don't mind scripting to accomplish
> > this. I know, that CR # can be put in the commit message, then I can
> > grep and parse the log, that is the hard way.
> 
> There are two ways to approach this: tell the CM tool about some git
> commits, or tell some git commits about the CR number.
>
> ... snip ...
> 
> If you want to do the reverse and tell git about CR numbers, then I
> don't think you have much option besides putting them in the commit
> message. Which means you'll need to grep to get them out. You can do
> something like:
> 
> $ git log --grep='CR#' --pretty=format: --name-only

To add to what Jeff said, in our office we automate the 'grep' step using a git post-receive hook in our central/canonical repo.  We happen to be using Trac for issue tracking, so the post-receive hook enumerates the new commit ids, calls Trac to parse the commit messages, and Trac then updates the appropriate tickets.  But I've seen the same done with many different issue trackers.

Thanks,
Stephen

```

## Rice, James M CIV NSWCDD, K73, 2011-07-12 21:28

Subject: RE: Tracking changes in git with a change number....
Message-ID: <C785F567A08DDE449FD4590C91E6AD13D2046E@naeamillez01v.nadsusea.nads.navy.mil>
URL: https://gitlist.dev/e/C785F567A08DDE449FD4590C91E6AD13D2046E%40naeamillez01v.nadsusea.nads.navy.mil
In-Reply-To: <2077407.34684.1310475245616.JavaMail.root@mail.hq.genarts.com>

```


> -----Original Message-----
> From: Stephen Bash [mailto:bash@genarts.com]
> Sent: Tuesday, July 12, 2011 8:54
> To: Jeff King
> Cc: git@vger.kernel.org; Rice, James M CIV NSWCDD, K73
> Subject: Re: Tracking changes in git with a change number....
> 
> ----- Original Message -----
> > From: "Jeff King" <peff@peff.net>
> > Sent: Tuesday, July 12, 2011 1:50:08 AM
> > Subject: Re: Tracking changes in git with a change number....
> >
> > > Restating the problem. I wish for our developers to be able to
> > > reference multiple commits with one number, and then find those
> > > commits via that number. And I don't mind scripting to accomplish
> > > this. I know, that CR # can be put in the commit message, then I
> can
> > > grep and parse the log, that is the hard way.
> >
> > There are two ways to approach this: tell the CM tool about some git
> > commits, or tell some git commits about the CR number.
> >
> > ... snip ...
> >
> > If you want to do the reverse and tell git about CR numbers, then I
> > don't think you have much option besides putting them in the commit
> > message. Which means you'll need to grep to get them out. You can do
> > something like:
> >
> > $ git log --grep='CR#' --pretty=format: --name-only
> 
> To add to what Jeff said, in our office we automate the 'grep' step
> using a git post-receive hook in our central/canonical repo.  We happen
> to be using Trac for issue tracking, so the post-receive hook
> enumerates the new commit ids, calls Trac to parse the commit messages,
> and Trac then updates the appropriate tickets.  But I've seen the same
> done with many different issue trackers.
> 
> Thanks,
> Stephen

Unfortunately our issue tracker is used by multiple organizations, is in windows and would be a pain to integrate in that manner, if it can be done at all.

That being said, Jeff's answer was what I was looking for!  Thanks to all of you for your help!

Thanks,
James.

```
