Got a reply from the github support regarding our issues with assignments of accounts to authors found by the github importer:
Sorry for the trouble. If you're specifying GitHub usernames rather than a full email address the importer defaults to using the private email for that user. If the user has never enabled private emails on GitHub, then their private email address won't properly attribute to them. However, enabling it should resolve the issue.
Thumbs up for a prompt response (took them only a few hours).
However, I'm not entire satisfied with the explanation, because the one account that
did get his commits assigned correctly immediately was mine, which
did not have a private email (only a public one). The ones that
had (e.g. Geoffs),
did not get assigned correctly. Which is kind of just the other way round than it should be according to that explanation (I replied to that answer asking for further clarifications, lets see what they say).
Regardless, I did some further tests, which revealed several things:
- After a successfull import, the author email addresses of the imported commits are of the form <name>@<imported-svn-repo-uuid>.
- When you assign a github account to one of the authors the importer found for the first time, this email address gets replaced by whatever the importer pulls from the github account specified, by what rules/patterns, I can't reliable tell, my observations and what the support claims don't exactly match.
- Subsequent updated apparently don't work reliably, the results can be very confusing. Dilvish commits for example got partially assigned in the meantime: all his commits in the branches are now correctly associated with his account, but not the commits in master. Although I've entered his public email address in the authors list of the importer instead of just the account name.
- If you use a full email address instead of just the account name when you make the assignment for the first time, it apparently works more reliable.
- Apparently you also can forgo the assignments on the importer page entirely, and instead add the <name>@<imported-svn-repo-uuid> pseudo-email-address that is associated with your author entry to your github account. The github web interface even offers a button if it recognizes an author email of that pattern, that lets you claim this address and the commits associated with it.
None of the methods worked 100% reliably though. For example, one observation after I tried the last option (adding the <name>@<imported-svn-repo-uuid> address to my account via the "claim commits" feature): I do not show up on the committers stats screen of the repo, I do not show up when viewing the commit list, I
do show up when viewing the details of a commit. So apparently the link is there, but a lot of things don't get updated.
The one foolproof way to get the assignment right immediately apparently is when you have your <name>@<imported-svn-repo-uuid> already assigned to your account
before the import is done. Geoff did this, and his commits had been assigned to his account immediately in all my tests. The reason why that didn't work when I imported the freeorion repo is most likely because I (in my utter ignorance) immediately overrode the assignment that would have taken place automatically when I entered his account name in the found authors list. I just ran another test to verify that (with my account now having the pseudo email added too), and indeed, now both Geoffs and my commits have been immediately assigned correctly.
So, despite my earlier intentions, I re-raise the question if we shall redo the import, because I get the impression that the correct assignment of the imported commits actually is sufficiently important to us. Nothing important has been committed yet, and everyone who has forked/cloned the repo can repeat that too, so that wouldn't be too much work. The import itself is very quick (in my tests that usually took ~half an hour).
If we do that, I suggest that everyone adds the <name>@<imported-svn-repo-uuid> pseudo-email associated with his commits prior to my next import attempt. You can find yours on the import page for the freeorion repo I linked in one of my earlier posts here. This applies to the currently active committers: Geoff, Dilvish, Bigjoe, Mat and myself. The others (if anyone of them returns to active duty one day) will have to claim their commits afterwards by adding the corresponding pseudo email, and hope for the best (entering an email address set in their github account in the imports page authors list can still be a fallback if that really does not work, hopefully one or the other method will).
The question now is: Shall I redo the import? Dilvish? Geoff? Mat? Bigjoe?