I'm using SourceTree with a few of my projects, and so far I've really enjoyed it. However, one issue that seems to keep coming back up is that SourceTree seems to have its own rules when it comes to what username to pick as the author when creating commits. Specifically, in a Mercurial repostiroy, it should be using the repo-local `.hg/hgrc` to determine username. If not set there, then it should be using global settings as defined in `~/.hgrc` (in POSIX systems). Both these rules can be overridden directly in SourceTree (although why anyone would want to do that is beyond me).
It doesn't seem to be following these rules. I have a repository in which there is no username set, and I have SourceTree configured to use global settings, but the wrong username is still chosen. See here:
Redacted contents of my `~/.hgrc`:
Also, I do not allow SourceTree to modify any settings:
SourceTree *seems* to - absent any other guidance - want to use "Full Name <firstname.lastname@example.org>" as the author rather than what's configured in my global `~/.hgrc`, and I don't get where that's coming from at all.
Version 1.9.1 force the user to have non-empty email field in the commit dialog(because now it is separate inputfield). That's really annoying because now it is impossible to follow the rule, when commit message should store username only, like in openjdk project. Is it possible to relax this requirement?
I'm afraid I don't fully understand this: SourceTree is using a personal email address to do check ins even though I have checked the "Use global User Settings" and provided details.
I don't fully udnerstand where is it getting my other email from - where is this (I am using a GIT repo and a Mecurial repo and it does it in both.
UPDATE: I found the problem: it was stored incorrectly in the .girconfig file in my Windows User Profiel
The part of your config that you've blurred out in your first post seems too short to include your e-mail address. It should be in the format of:
username = Kieran Senior <email@example.com>
See this web page: http://hgtip.com/tips/beginner/2009-09-30-configuring-mercurial/
If your config does indeed only include the username portion then SourceTree is behaving correctly because it's taking the config files in their rightful order. You've turned on the option for SourceTree to use the global config settings. To me it looks like the global setting doesn't have an e-mail specified.
I don't see any reason why username has to include an email address, despite the fact that the examples all use that format. I can see from the commit history that Sourcetree actually does respect my settings when it writes the commit (presumably because Sourcetree doesn't actually write the commit), but the value used to populate the Author text input is misleading and should match the value resolved from the configs.
I completely agree with this, there is no reason why the email should be enforced despite the global settings. I have actually had to stop using Source tree because of this. Each time I commit I have to setup a fake email and the use an alternative user and when I do this I need to remember the correct way to avoid it changing my global settings and local settings. This is easy to forget and I have made many commits using the wrong username because of this. It becomes quite frustrating to micro manage. Great program otherwise but unfortunately I cannot use it anymore.
As an asides, it looks like you're using a very old version there as you've got the old icon set. We don't publish to the Mac App Store any more. You can get it direct at sourcetreeapp.com. If the problem exists in the latest version I can take a look into this issue.
I did finally figure it out. Sourcetree has an embedded mercurial that has it's *own hgrc* where extensions and certain ui elements are configured. However, the name and email I used to activate Sourcetree are also there. Sourcetree also fails to patch my system mercurial, so I am forced to edit the embedded hgrc. I consider this to be a major fail:
Supported Platforms macOS Windows We recently introduced support for additional hosting services such as GitHub Enterprise, GitLab (Cloud, Community Edition, Enterprise Edition), and...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events