On 5/1/17, Warren Young <wyo...@tangentsoft.com> wrote:
> I’ve checked in my new Platform Quirks section.
>
> Oddly, I noticed only after doing the first checkin that it used my local
> user name (tangent) as the user name on the remote (i.e. fossil-scm.org)
> repository. I was able to fix it for a second clean-up checkin by re-cloning
> under my new wyoung user name.
>
> Why did it let me do that?  Shouldn’t it either have refused to accept a
> checkin from user “tangent” or silently used “wyoung” instead, even though
> my local clone was made as user “tangent”?
>
> It wasn’t that long ago that I was wishing for a way to retroactively fix
> user names in a repository.  Now we have a case outside my local
> repositories. :)

The username is recorded as plain text in the Manifest artifact of the
check-in, and is unrelated to the credentials used to log into the
server.  It is not possible to modify the username in a Manifest
artifact because that would change the hash name of the check-in.

It is possible to change the displayed username on a single check-in
at a time using tags.  For example, visit the "/ci_edit" page that is
reached from the "Edit" link on the check-in information page.
Changing the username for a check-in involves creating a "user" tag
for that check-in.  For some examples of where this has occurred in
the past include:

   https://www.fossil-scm.org/fossil/info/314cdab
   https://www.fossil-scm.org/fossil/info/413921cca04863b3
   https://www.fossil-scm.org/fossil/info/ad0d6aed

Notice how the original username is displayed in addition to the
revised username, in keeping with the Fossil tradition of always
leaving an audit trail.  On the timeline, however, only the revised
username is shown.  For example,
https://www.fossil-scm.org/fossil/timeline?c=314cdab0 shows "sdr"
instead of "scott".  In the Fossil repo database, the original
username is held in the EVENT.USER field and the more recent revision
is held in EVENT.EUSER.  EUSER is NULL if there have been no edits.
Hence, for display purposes, we normally show the name as
coalesce(event.euser,event.user);

There is not currently a way to globally change a username.  However,
it is reasonable to consider a "user alias" table that globally remaps
historical usernames into something new for display.


-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to