git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Method for Calculating Statistics of Developer Contribution to a Specified Branch.
@ 2023-10-16 14:10 Hongyi Zhao
  2023-10-16 21:25 ` brian m. carlson
  0 siblings, 1 reply; 7+ messages in thread
From: Hongyi Zhao @ 2023-10-16 14:10 UTC (permalink / raw)
  To: Git List

Dear Git Mailing List,

I am a developer currently working on a project and I wanted to
establish statistics for each team member's contribution to a specific
branch.

Say, for a user "JianboLin", I am currently using the following method:

$ git clone https://github.com/OrderN/CONQUEST-release.git
$ cd CONQUEST-release
$ git log --author="JianboLin" --stat --summary origin/f-mlff | awk
'NF ==4 && $2 =="|" && $3 ~/[0-9]+/ && $4 ~/[+-]+|[+]+|[-]+/ {s+=$3}
END {print s}'

Using the above command, I am able to calculate the number of lines
contributed by a specific author on a specific branch, which allows me
to quantify the contribution to a branch by each team member.

However, I would like to know if a more efficient or accurate method
exists to carry out this task. Are there any other parameters,
commands, or aspects I need to consider to get a more comprehensive
measure of contribution?

I greatly appreciate your expertise and look forward to your valuable input.

Best Regards,

Zhao
-- 
Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com>
Theory and Simulation of Materials
Hebei Vocational University of Technology and Engineering
No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-16 14:10 Method for Calculating Statistics of Developer Contribution to a Specified Branch Hongyi Zhao
@ 2023-10-16 21:25 ` brian m. carlson
  2023-10-17 11:37   ` Hongyi Zhao
  0 siblings, 1 reply; 7+ messages in thread
From: brian m. carlson @ 2023-10-16 21:25 UTC (permalink / raw)
  To: Hongyi Zhao; +Cc: Git List

[-- Attachment #1: Type: text/plain, Size: 2070 bytes --]

On 2023-10-16 at 14:10:01, Hongyi Zhao wrote:
> Dear Git Mailing List,
> 
> I am a developer currently working on a project and I wanted to
> establish statistics for each team member's contribution to a specific
> branch.
> 
> Say, for a user "JianboLin", I am currently using the following method:
> 
> $ git clone https://github.com/OrderN/CONQUEST-release.git
> $ cd CONQUEST-release
> $ git log --author="JianboLin" --stat --summary origin/f-mlff | awk
> 'NF ==4 && $2 =="|" && $3 ~/[0-9]+/ && $4 ~/[+-]+|[+]+|[-]+/ {s+=$3}
> END {print s}'
> 
> Using the above command, I am able to calculate the number of lines
> contributed by a specific author on a specific branch, which allows me
> to quantify the contribution to a branch by each team member.
> 
> However, I would like to know if a more efficient or accurate method
> exists to carry out this task. Are there any other parameters,
> commands, or aspects I need to consider to get a more comprehensive
> measure of contribution?

Can you maybe explain what you want to measure and what your goal is in
doing so?

The problem is that lines of code isn't really that useful as a measure
of contribution value or developer productivity, which are the reasons
people typically measure that metric.  For example, with three lines, a
colleague fixed a persistently difficult-to-reproduce problem which had
been affecting many of our largest customers.  That was a very valuable
contribution, but not very large.  I've made similar kinds of changes
myself, both at work and in open source projects.

Certainly you can compute the number of lines of code changed by a
developer, but that is not typically a very useful metric, since it
doesn't lead you to any interesting conclusions about the benefits or
value of the contributions or developer in question.  However, perhaps
you have a different goal in mind, and if you can explain what that is,
we may be able to help you find a better way of doing it.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-16 21:25 ` brian m. carlson
@ 2023-10-17 11:37   ` Hongyi Zhao
  2023-10-30 21:49     ` Taylor Blau
  0 siblings, 1 reply; 7+ messages in thread
From: Hongyi Zhao @ 2023-10-17 11:37 UTC (permalink / raw)
  To: brian m. carlson, Hongyi Zhao, Git List

On Tue, Oct 17, 2023 at 5:26 AM brian m. carlson
<sandals@crustytoothpaste.net> wrote:
>
> On 2023-10-16 at 14:10:01, Hongyi Zhao wrote:
> > Dear Git Mailing List,
> >
> > I am a developer currently working on a project and I wanted to
> > establish statistics for each team member's contribution to a specific
> > branch.
> >
> > Say, for a user "JianboLin", I am currently using the following method:
> >
> > $ git clone https://github.com/OrderN/CONQUEST-release.git
> > $ cd CONQUEST-release
> > $ git log --author="JianboLin" --stat --summary origin/f-mlff | awk
> > 'NF ==4 && $2 =="|" && $3 ~/[0-9]+/ && $4 ~/[+-]+|[+]+|[-]+/ {s+=$3}
> > END {print s}'
> >
> > Using the above command, I am able to calculate the number of lines
> > contributed by a specific author on a specific branch, which allows me
> > to quantify the contribution to a branch by each team member.
> >
> > However, I would like to know if a more efficient or accurate method
> > exists to carry out this task. Are there any other parameters,
> > commands, or aspects I need to consider to get a more comprehensive
> > measure of contribution?
>
> Can you maybe explain what you want to measure and what your goal is in
> doing so?
>
> The problem is that lines of code isn't really that useful as a measure
> of contribution value or developer productivity, which are the reasons
> people typically measure that metric.  For example, with three lines, a
> colleague fixed a persistently difficult-to-reproduce problem which had
> been affecting many of our largest customers.  That was a very valuable
> contribution, but not very large.  I've made similar kinds of changes
> myself, both at work and in open source projects.
>
> Certainly you can compute the number of lines of code changed by a
> developer, but that is not typically a very useful metric, since it
> doesn't lead you to any interesting conclusions about the benefits or
> value of the contributions or developer in question.  However, perhaps
> you have a different goal in mind, and if you can explain what that is,
> we may be able to help you find a better way of doing it.

I want to calculate a certain developer's contribution based on
different standards of code line count and the importance of the code.

> --
> brian m. carlson (he/him or they/them)
> Toronto, Ontario, CA

Regards,
Zhao

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-17 11:37   ` Hongyi Zhao
@ 2023-10-30 21:49     ` Taylor Blau
  2023-10-31  5:09       ` Hongyi Zhao
  0 siblings, 1 reply; 7+ messages in thread
From: Taylor Blau @ 2023-10-30 21:49 UTC (permalink / raw)
  To: Hongyi Zhao; +Cc: brian m. carlson, Git List

On Tue, Oct 17, 2023 at 07:37:46PM +0800, Hongyi Zhao wrote:
> I want to calculate a certain developer's contribution based on
> different standards of code line count and the importance of the code.

I agree with brian that "number of lines added/removed" is not a perfect
measure of productivity ;-).

But I think that there is a slightly cleaner way to compute the result
you're after, like so:

    git rev-list --author="$who" origin/main |
    git diff-tree --stdin -r --numstat --no-commit-id |
    awk '{ s += $1 + $2 } END { print s }'

Thanks,
Taylor

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-30 21:49     ` Taylor Blau
@ 2023-10-31  5:09       ` Hongyi Zhao
  2023-10-31  6:25         ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Hongyi Zhao @ 2023-10-31  5:09 UTC (permalink / raw)
  To: Taylor Blau; +Cc: brian m. carlson, Git List

On Tue, Oct 31, 2023 at 5:49 AM Taylor Blau <me@ttaylorr.com> wrote:
>
> On Tue, Oct 17, 2023 at 07:37:46PM +0800, Hongyi Zhao wrote:
> > I want to calculate a certain developer's contribution based on
> > different standards of code line count and the importance of the code.
>
> I agree with brian that "number of lines added/removed" is not a perfect
> measure of productivity ;-).
>
> But I think that there is a slightly cleaner way to compute the result
> you're after, like so:
>
>     git rev-list --author="$who" origin/main |
>     git diff-tree --stdin -r --numstat --no-commit-id |
>     awk '{ s += $1 + $2 } END { print s }'

See below:

werner@X10DAi:~/Public/repo/github.com/OrderN/CONQUEST-release.git$
git log --author="JianboLin" --stat --summary origin/f-mlff | awk 'NF
==4 && $2 =="|" && $3 ~/[0-9]+/ && $4 ~/[+-]+|[+]+|[-]+/ {s+=$3} END
{print s}'
8519
werner@X10DAi:~/Public/repo/github.com/OrderN/CONQUEST-release.git$
git rev-list --author="JianboLin" origin/f-mlff |     git diff-tree
--stdin -r --numstat --no-commit-id |     awk '{ s += $1 + $2 } END {
print s }'
8519

So, your method and my original one give exactly the same result.
Therefore, I can't see what their fundamental difference is.

> Thanks,
> Taylor

Regards,
Zhao

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-31  5:09       ` Hongyi Zhao
@ 2023-10-31  6:25         ` Junio C Hamano
  2023-10-31 19:05           ` Taylor Blau
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2023-10-31  6:25 UTC (permalink / raw)
  To: Hongyi Zhao; +Cc: Taylor Blau, brian m. carlson, Git List

Hongyi Zhao <hongyi.zhao@gmail.com> writes:

>> But I think that there is a slightly cleaner way to compute the result
>> you're after, like so:
>> ...
> So, your method and my original one give exactly the same result.
> Therefore, I can't see what their fundamental difference is.

I think Taylor offered a "slightly cleaner way", and not a
"different way that computes better result".  So it is not
surprising, at least to me who is watching from the sideline, that
you cannot see any fundamental difference.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Method for Calculating Statistics of Developer Contribution to a Specified Branch.
  2023-10-31  6:25         ` Junio C Hamano
@ 2023-10-31 19:05           ` Taylor Blau
  0 siblings, 0 replies; 7+ messages in thread
From: Taylor Blau @ 2023-10-31 19:05 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Hongyi Zhao, brian m. carlson, Git List

On Tue, Oct 31, 2023 at 03:25:36PM +0900, Junio C Hamano wrote:
> Hongyi Zhao <hongyi.zhao@gmail.com> writes:
>
> >> But I think that there is a slightly cleaner way to compute the result
> >> you're after, like so:
> >> ...
> > So, your method and my original one give exactly the same result.
> > Therefore, I can't see what their fundamental difference is.
>
> I think Taylor offered a "slightly cleaner way", and not a
> "different way that computes better result".  So it is not
> surprising, at least to me who is watching from the sideline, that
> you cannot see any fundamental difference.

Indeed.

Thanks,
Taylor

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-10-31 19:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-16 14:10 Method for Calculating Statistics of Developer Contribution to a Specified Branch Hongyi Zhao
2023-10-16 21:25 ` brian m. carlson
2023-10-17 11:37   ` Hongyi Zhao
2023-10-30 21:49     ` Taylor Blau
2023-10-31  5:09       ` Hongyi Zhao
2023-10-31  6:25         ` Junio C Hamano
2023-10-31 19:05           ` Taylor Blau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).