git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git: detect file creator

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jul 15, 2022, 13:22 UTC
Message-ID
<220715.86fsj2zeqn.gmgdl@evledraar.gmail.com>
In-Reply-To
<CA+X_a+ycefqvz0LaO0KK1LuTqgE=iUhooPRXeo3mq-zXkp+nCA@mail.gmail.com>
On Fri, Jul 15 2022, Sim Tov wrote:
> Hello,
>
> I run a book digitizing project and pay people certain rate per 10K
> characters for the text files they upload to a git repo. Till now I

It's nice to see that someone still believes in The Mythical Man- Month :)

Show 17 quoted lines
> was using following command to detect files authored by CertainEditor:
>
>     git log --use-mailmap --no-merges --author="CertainEditor"
> --name-only --pretty=format:""
>
> Then I would pipe this output in `wc -m` and get amount of characters
> authored by CertainEditor and pay him accordingly. Usually editors do
> not touch each other's files and everything worked well. However
> recently one editor spotted a typo in somebody else's file and
> corrected it. This behavior is actually good and I would like to
> encourage it. However, now the command above lists the corrected file
> also as his, and so he gets paid for all the characters in the file
> while he changed only one of them. This, obviously, is not good.
>
> 1. Do you have an idea how can I list all the files **created** (not
> authored / committed) by a user, so I can implement a fair characters
> counting?

If you want to adapt your current script perhaps --diff-filter helps, but...

> 2. Maybe some commit hooks can be used that will check whether the
> Author of a new commit is different from the previous one and if true
> - override it to the previous Author?

..it seems you should fundamentally stop using it, and instead iterate over the commits, and pay for a "diff". Then you'd get the original change, as well as the change-on-top.

> 3. Those small changes by a non-creator may be left not paid for (as
> this action is not so intensive and may be reciprocal), but if you
> have a good idea how I can pay for the "diff" the non-creator provides
> - it would be nice!

Just wc -l on the changed files(s) before & after, and pay the abs() difference.

> Do you think this "diff" should be deducted from the creator? And if
> yes - how?
You could walk it back with "git blame" I guess.

But you might want to consider the economic & social mis-incentives of lifting money from your co-workers coffers by pointing out a mistake to them...

Previous: Sim TovNext: Sim Tov
Message 2 of 6 in “git: detect file creator”
  1. Sim TovJul 15, 2022
  2. Ævar Arnfjörð BjarmasonJul 15, 2022
  3. Sim TovJul 16, 2022
  4. Sim TovJul 18, 2022
  5. Sim TovJul 18, 2022
  6. Junio C HamanoJul 22, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.