|
I committed two minor fixes to my local veracity repo. After that i realized I did this without having set any whoami, so my log looks like this now:
My questions are now: |
|
There is definitely an issue here, and we're working on the right way to deal with it. I'll explain what's happening. The Short AnswerThere is another repository on your machine that has the user record in question. A push/pull from that repository into the one displaying only user ids will correct the problem. The Long AnswerEach instance of a Veracity's repository has its own user list. That user list is pushed/pulled alongside version control changesets and all the other Veracity repository data. The user list is also designed to be shared between different repositories, when correctly set up. When a repository is created, it gets an adminid. This is the unique identifier for its list of users. Two repositories having the same adminid can share their user lists via push/pull: Create an empty repo with 2 users
Create a different repo that can share the user list using --shared-users
Create a new user in repo2 and push it to repo1
That's mostly just background for this point: the scope for a Veracity user is its adminid. You can have n repositories on your machine with a given adminid. You can retrieve the adminid of a repository with 'vv repo info' and the '--verbose' flag:
Because the scope of a user is the adminid, it's stored that way in the configuration:
Note that g761d... is the adminid of the 2 repositories we created above, and g879b... is the id for 'user1'. The problem is that we check for user validity on 'whoami', but not on commit. So you can set 'whoami' using a repo that has a user, then commit into a repo with the same adminid but missing the relevant user record. This was deliberate, and if you squint just right you can imagine a case for that being the correct behavior, but at this point everyone agrees it's not: it's too confusing. We're working on a fix. 1
Ok, I think that somehow fits my situation: I had two clones of the public Veracity repo on my machine. I did one commit into VVClone1 but decided to start all over, so I deleted the whole CCVlone1 repo. I did not check in anything in VVCLone2, but I got me a new clone VVClone3 where the checkins did end up with the gid instead of the username.
(Feb 23 at 01:09)
Arne Mertz
@Arne Mertz Okay if the repo is deleted, there's no reasonable way to fix it with 1.5.1. There's no significant data problem here, though. It's mostly cosmetic that you don't see a username. The next release will prevent this scenario. It will also include a routine in the JS API allowing you to fix your existing repo, if you still care to.
(Feb 24 at 11:36)
Ian Olsen ♦♦
|
My question was similar: http://veracity-scm.com/qa/questions/563/username-who-showing-as-gibberish-string
I didn't get a clear understanding of the underlying issue, but it definitely seems like this shouldn't be possible.
I had seen your question, but as far as I could see in your scenario it was not even clear where those userIDs came from. So here's a possible answer to your question: perhaps someone just committed something without whoami. Howerver, the question remains why he and I could do that...