Hi,
We’re a team of 4 developers and we’ve been using SubGit with a starter license for about 6 months.
Yesterday, one of the developer tried to push from a new workstation and was informed by SubGit that the number of users was exhausted, we had reached the 10-th commiter on the git side. This is surprising since we are only 4.
I used “git shortlog -sne” to try to find the root of the problem and discovered that each of us had 2-3 variations of our names and mails, because they were not carefully configured on each workstation that we use. This is amplified with the current covid crisis because we all had to work on our personal machines at some point, where our personal email was configured in git.
We temporarily fixed the issue by correctly configuring the user.name and user.email of my coworker who had the problem. But we have a new colleague arriving in october.
Is there a clean way to fix this problem? We are using GitLab and we’d really like to avoid having to rebuild the git repository.
Thanks!
Hello Julien,
you found the right cause: SubGit counts licensed users by using the Git names developers creating commits with. So if a developer uses different Git names committing to a mirrored repository, then they will be counted more than once. Git name consists of name and email, like
John Doe <john_doe@example.com>
so if either name or email differ, then SubGit treats such Git names as different, thus the following names:
John Doe <john_doe@example.com>
John Doe <johndoe@example.com>
are considered to be different names and thus will be counted as two committers.
There’s an easier way to find all the licensed committers on a server than parsing Git log. For that, use the following command:
subgit register --print-committers <REPO>
Note, that this command prints licensed committers across all the registered repositories.
To resolve this committers duplication issue map the duplicated Git users to the same name in authors mapping. That is, if the above committers names are counted twice, then this can be resolved by mapping them both to the same SVN name in authors mapping:
john_doe = John Doe <john_doe@example.com>
john_doe = John Doe <johndoe@example.com>
This change in authors mapping file does not require other commands or actions, SubGit should recognise this change by itself.
2 Likes
I did not expect such an easy answer, this is great, thank you very much!!