# Listing authors of each file in branch HEAD since given revision

4 messages from 2008-05-29 to 2008-05-29. Participants: Alexander Gladysh, Johannes Schindelin, Petr Baudis.
Thread: https://gitlist.dev/t/13718

## Alexander Gladysh, 2008-05-29 08:43

Subject: Listing authors of each file in branch HEAD since given revision
Message-ID: <c6c947f60805290143r731b4a80v8d8297124899be22@mail.gmail.com>
URL: https://gitlist.dev/e/c6c947f60805290143r731b4a80v8d8297124899be22%40mail.gmail.com

```
Hi, list!

For each file in the head of my current branch I need to get a list of
all people who altered it since given revision. If file was not
changed, it should be not listed.

Something like:

  my/file1.ext user1 user2 user3
  my/file2.ext user1

I also need to be able to get closer view with commit names and
messages for along with author names:

  my/file1.ext
    <hash> user1 commit text1
    <hash> user2 commit text2
    <hash> user3 commit text2

  my/file2.ext
    <hash> user1 commit text1

I believe there should be such tool already, or it should be simple
enough to glue it from existing pieces. Please point me to the right
direction.

Thanks in advance,
Alexander.

```

## Johannes Schindelin, 2008-05-29 12:47

Subject: Re: Listing authors of each file in branch HEAD since given revision
Message-ID: <alpine.DEB.1.00.0805291344400.13507@racer.site.net>
URL: https://gitlist.dev/e/alpine.DEB.1.00.0805291344400.13507%40racer.site.net
In-Reply-To: <c6c947f60805290143r731b4a80v8d8297124899be22@mail.gmail.com>

```
Hi,

On Thu, 29 May 2008, Alexander Gladysh wrote:

> For each file in the head of my current branch I need to get a list of 
> all people who altered it since given revision. If file was not changed, 
> it should be not listed.
> 
> Something like:
> 
>   my/file1.ext user1 user2 user3
>   my/file2.ext user1

You will be able to do something like this easily from the output of

git log --pretty=format:%an --name-only HEAD

Probably just a Perl script which reads the author name, and then attaches 
that author name to all following file names until an empty lines occurs, 
recursively.

Hth,
Dscho

```

## Petr Baudis, 2008-05-29 19:53

Subject: Re: Listing authors of each file in branch HEAD since given revision
Message-ID: <20080529195314.GB18781@machine.or.cz>
URL: https://gitlist.dev/e/20080529195314.GB18781%40machine.or.cz
In-Reply-To: <alpine.DEB.1.00.0805291344400.13507@racer.site.net>

```
Hi!

On Thu, May 29, 2008 at 01:47:29PM +0100, Johannes Schindelin wrote:
> On Thu, 29 May 2008, Alexander Gladysh wrote:
> 
> > For each file in the head of my current branch I need to get a list of 
> > all people who altered it since given revision. If file was not changed, 
> > it should be not listed.
> > 
> > Something like:
> > 
> >   my/file1.ext user1 user2 user3
> >   my/file2.ext user1
> 
> You will be able to do something like this easily from the output of
> 
> git log --pretty=format:%an --name-only HEAD
> 
> Probably just a Perl script which reads the author name, and then attaches 
> that author name to all following file names until an empty lines occurs, 
> recursively.

No rocket science:

git log --pretty=format:%an --no-merges -r --name-only HEAD~100..HEAD |
perl -lne 'our %i; $_ or $a = 0 or next; ++$a == 1 and $b = $_ and next;
$i{$_}{$b}++; END { print "$_: " . join(", ", keys %{$i{$_}}) for (keys
%i); }'

Sorry for the obfuscation. :-)

-- 
				Petr "Pasky" Baudis
Whatever you can do, or dream you can, begin it.
Boldness has genius, power, and magic in it.	-- J. W. von Goethe

```

## Johannes Schindelin, 2008-05-29 22:57

Subject: Re: Listing authors of each file in branch HEAD since given revision
Message-ID: <alpine.DEB.1.00.0805292356470.13507@racer.site.net>
URL: https://gitlist.dev/e/alpine.DEB.1.00.0805292356470.13507%40racer.site.net
In-Reply-To: <20080529195314.GB18781@machine.or.cz>

```
Hi,

On Thu, 29 May 2008, Petr Baudis wrote:

> On Thu, May 29, 2008 at 01:47:29PM +0100, Johannes Schindelin wrote:
> > On Thu, 29 May 2008, Alexander Gladysh wrote:
> > 
> > > For each file in the head of my current branch I need to get a list of 
> > > all people who altered it since given revision. If file was not changed, 
> > > it should be not listed.
> > > 
> > > Something like:
> > > 
> > >   my/file1.ext user1 user2 user3
> > >   my/file2.ext user1
> > 
> > You will be able to do something like this easily from the output of
> > 
> > git log --pretty=format:%an --name-only HEAD
> > 
> > Probably just a Perl script which reads the author name, and then attaches 
> > that author name to all following file names until an empty lines occurs, 
> > recursively.
> 
> No rocket science:
>
> [snipped]

I know, but I wanted to give Alexander room to grow ;-)

Ciao,
Dscho

```
