NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Checking out src with Mercurial



Hi,

some closing words from someone whose arguments in the previous thread were more for Git...

I have tried several times during the week to clone the NetBSD repository using Mercurial. I had observed a high CPU load and an apparently unfinished checkout. I tried again and now the experiences have shifted somewhat positively.

First a tip for everyone who has an unstable internet connection: The effects appear more clearly with Mercurial, because in the current constellation (internet bandwidth, speed of the anonhg server?, ....) it takes a few operations longer than Git and this increases the likelihood of becoming a victim of network fluctuations during an operation. My observation is that sometimes an error message (timeout) occurs and the transaction is rolled back. In this case, everything called up to that point is invalid and you have to start over. Depending on the phase, the process does not seem to notice this when a network fluctuation occurs and instead is stuck in a state in which 100% CPU is used without noticeable progress. That was obviously also the cause of my original experience, in which the cloning of src did not come to an end even after 11 hours on a relatively modern i5 PC.

Fortunately, there is a solution. My lessons learned:

* If possible, clone the repository over wired LAN and not over WLAN
* If necessary, perform the cloning iteratively (restriction of the number of change sets via parameter --rev)

hg clone --rev 10000 https://anonhg.NetBSD.org/src
...
cd src
hg pull --rev 20000
hg pull --rev 30000
...

I could also take a few positive aspects with me from a developer's perspective:

* TortoiseHg is a cross-platform GUI client that I really like
* The migration to Mercurial seems to be very well prepared on the NetBSD side (you can find nice instructions in the wiki how the workflows are implemented with Mercurial)

...and from an administrator's perspective:

* It is relatively easy to set up and operate a local repository with a Web GUI
* Mercurial has relatively moderate dependencies for a Python program

What still bothers apart from the lower gross speed is the resource consumption and the inability to run on weaker hardware. However, if I look at the fact that Git also only works with difficulty on systems with no more than 128 MB RAM, this argument is irrelevant anyway. If necessary, you can pull a tgz for these systems and perform some versioning with RCS locally. Or maybe one day a BSD-licensed Mercurial "light" as a re-implementation in Golang will exist.

All in all, I'm a little more confident now :-)

Kind regards & happy weekend
Matthias


Home | Main Index | Thread Index | Old Index