Re: RFC: simple proposal for Internet-scoped IDs
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 4 Dec 2012 16:07:46 +0000 (GMT)
Ben Reser wrote:
>> [...] first I want to clearly
> [...] Frankly, I don't think the vast majority of the user
As evidence that this community thinks it makes sense to store the full name and email address of each contributor in our own project, I will point out that we already do so. We maintain a mapping from svn:author to full name and email address in the 'COMMITTERS' file in the repo. For non-committers, we write that information in the 'Patch by:' line that we put in the log message of each contributed patch.
That doesn't mean every project in the world will want it, of course, but there seems little objection to providing the facility in general.
It certainly makes sense to me to design-in an easy and consistent way to hold that kind of attribution.
Some important things seem not to have been discussed.
The proposals so far have focused on getting the new metadata into the repository (or more generally into the Subversion server). In order for a user to bother setting their id, any proposal needs another facet: visibility to the user. The only way a user will currently see an extra rev-prop is if they specifically query it with something like 'svn propget --revprop' or svn 'log --xml --with-revprop'); there needs to be easy and obvious visibility.
How and where will Subversion command-line client and GUIs show the attribution id? 'svn log', 'svn blame', 'svn:keywords=Author', etc.
What should this value be called? I'm calling it 'attribution' here but that might not be right.
If a user is asked to set their email address, they want to know why -- whether they're going to receive emails to that address, whether it's going to be publicly visible, whether it needs to be reachable for confirmation, whether it should be the address most associated with the project they're committing to or their current work address or personal address.
So it's important for us to decide what to call this thing and how to describe it.
What do other VCSs say? Is there a web page where we can read about it instead of waffling about it here?
Specific questions to be decided:
* Does it identify the 'author' or 'owner' of the content of the commit (it's an attribution for the work), or does it identify the committer? Can one commit list more than one attribution? No attribution?
* What is the formal degree of the mapping between committer ids and these ids? 1:1, 1:many, many:many? Is that per repo or per project (in a multi-project repo)?
* Does the name and email address recorded in each old commit mean the name and email address as they were at the date of that commit (svn:date revision property), or the user's current name and address (which might change over time)?
Should we allow adding an attribution id retrospectively to past commits?
Should we allow correcting a dummy or typo'd attribution on past commits?
Should we allow updating past attributions to reflect a changed email address or name?
If we decide to allow any of these, the design had better accommodate that.
This is an archived mail posted to the Subversion Dev mailing list.