Download link to MacHg

Jason Harris jason at jasonfharris.com
Fri May 28 07:21:15 CDT 2010


On May 28, 2010, at 1:28 PM, Martin Geisler wrote:

> Masklinn <masklinn at masklinn.net> writes:
> 
>> On 2010-05-28, at 11:59 , Martin Geisler wrote:
>>> 
>>> Should we put a link to MacHg on
>>> 
>>> http://mercurial.selenic.com/downloads/
>>> 
>>> just like we do for TortoiseHg? As I understand it, MacHg is also
>>> bundling Mercurial and in that sense it is similar to TortoiseHg.
>>> 
>>> That will of course require that MacHg ships an uptodate version of
>>> Mercurial.
>> Maybe when Jason tags it 1.0?
> 
> Sounds good, if Jason is up for making a monthly release like the rest
> of the Mercurial community.

Yep. I was waiting to go 1.0. There is still two niggling issues before I go 1.0.

i) One is some international users are having problems with non-passwordless ssh. Strangely its related to the LANG environment variable... This should be fixed in my next update. I can go into details...

ii) Also I am going to try to find a solution to http://www.bitbucket.org/jfh/machg/issue/31/p3d2-the-graph-jiggles-back-and-forth History has to be local (if you jump into the middle of a repo with 200,000 commits you just don't have time to figure out the entire graph topography in user time to color it, so one has to at least start local. From there on under continuous scrolls I'd like to maintain a jiggle-less graph history, or at least maintain the same colors on the branches as they scroll...


previously I haven't matched Mercurial versions since I wanted something super stable before I rolled onto the 1.0 version. i was planning after 1.0 to have some version that was a beta version for my testers and an alpha version which was development and cutting edge stuff...

In reference to matching the current version of Mercurial I noticed in my quick testing that for quick status commands 1.4.2 was some 20% faster than 1.5.3. Status is one of the critical paths for MacHg since I use it whenever things change. (If someone can write a stable inotify extension for OSX then of course this requirement will hopefully go away... But this might be difficult, remember that discussion about the temporary files which are test written to see if the user has the correct privileges, and they go wizzing by and cause race conditions since OSX thinks something has changed in the directory because... well... something *did* change: a test file was written, so the status was taken again, which caused the temp file to be written again, which cause the status to change, etc...) Anyways if someone can write an inotify for OSX which just works, that would be great! :)

Anyway 20% slower isn't a killer but since MacHg doesn't actually use any of the 1.5 features yet I didn't see a reason to upgrade. (I will hook up 'hg progress' at some stage to the progress bars inside MacHg when its cloning / pulling / pushing, etc and I can see other 1.5 features being useful as well... :) So I will bite the bullet at some stage, but I didn't see the necessity at the moment. If there are some nasty bugs or something in 1.4.2 or 1.4.3 that I should be aware of and move to 1.5.3 because of these please tell me! But for me 1.4.2 has been rock stable. (In fact all my Mercurial versions I have played with have been rock stable :) Good going guys. Give yourselves a huge pat on the back :) :) )

But anyways to see this speed difference for me clone for instance:

(It would be interesting to see if others can repeat this time difference or is it only an OSX thing, or is it only something strange with my configuration?)

http://hg.services.openoffice.org/DEV300

then execute:
   time hg status --all > /dev/null

Here is my first run with 1.4.2 and then following that the same run with 1.5.3

[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.822s
user	0m0.905s
sys	0m1.647s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.577s
user	0m0.901s
sys	0m1.615s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.606s
user	0m0.902s
sys	0m1.656s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.579s
user	0m0.899s
sys	0m1.619s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.564s
user	0m0.898s
sys	0m1.618s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m2.545s
user	0m0.899s
sys	0m1.618s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ hg version
Mercurial Distributed SCM (version 1.4+20091117)

Copyright (C) 2005-2009 Matt Mackall <mpm at selenic.com> and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


-----------------------

[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m3.318s
user	0m1.459s
sys	0m1.732s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m3.296s
user	0m1.462s
sys	0m1.741s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m3.301s
user	0m1.464s
sys	0m1.761s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m3.293s
user	0m1.461s
sys	0m1.747s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ time hg status --all > /dev/null 
real	0m3.282s
user	0m1.461s
sys	0m1.736s
[Bolt:QuickSilver/Development/sandbox/openOffice] openOffice 262741(262741) ⌘ hg version
Mercurial Distributed SCM (version 1.5.3+20100514)

Copyright (C) 2005-2010 Matt Mackall <mpm at selenic.com> and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


And here is the time difference:

In[1]:= Mean[{2.822, 2.577, 2.606, 2.579, 2.564, 2.545}]
Out[1]= 2.6155

In[2]:= Mean[{3.318, 3.296, 2.301, 3.293, 3.282}]
Out[2]= 3.098

In[3]:= %/%%
Out[3]= 1.18448


Cheers,
  Jason

> -- 
> Martin Geisler
> 
> aragost Trifork
> Professional Mercurial support
> http://aragost.com/mercurial/



More information about the Mercurial-devel mailing list