1: #How to help with the Wifi renewal "branch" in hg
3: The wifi renewal project is trying to sync our sys/net80211 with FreeBSD as far as possible, to allow easier sharing of drivers.
5: ## Why hg?
7: The project started with a traditional CVS branch, but as we will be moving to mercurial anyway (and this "branch" could live for quite some time, even across the general repo switch), it is a good test case for the hg environment and also nice practice for the developers involved.
9: The development uses a "topic", which is a kind of lightweight branch that goes away after the project finished. The hg documentation includes
10: an [introduction to topics](https://www.mercurial-scm.org/doc/evolution/tutorials/topic-tutorial.html).
12: ## Helping with testing
14: ** Note that this project is not ready for general testing yet! **
16: If you just want to check out the wifi project source and build your own test kernel for it, you simply start by cloning the repository from anonhg:
18: > hg clone https://anonhg.netbsd.org/src-draft
20: Now enable the 'topic' extension by adding
25: to the .hg/hgrc file in your clone directory and then update to the 'wifi' topic:
27: > hg up wifi
29: ## Helping with development
31: As a developer, you should start with an anonhg clone as well, as that uses 'clonebundles' and the CDN to get your clone faster.
33: The development happens using the topic and evolve extensions, which unfortunately slows down some hg operations.
35: After initial cloning (see above) you will have to edit your global ~/.hgrc and the clone local .hg/hgrc files. Here is my ~/.hgrc:
38: user=Martin Husemann <martin@NetBSD.org>
39: color = no
40: ignore = ~/.hgignore
42: default:pushrev = .
51: The .hgignore file referenced there tells hg to leave editor backups and compiled kernels alone. Mine looks like:
53: syntax: glob
58: Finally the clone local config (.hg/hgrc) looks like this:
61: default = ssh://hgmaster.netbsd.org//repo/src-draft
62: final = ssh://hgmaster.netbsd.org//repo/src-public
66: This directs normal pushes to the src-draft repository and prevents publishing (that is what "merging the branch to HEAD" would have been in CVS). When it is time to do that, a "final" push will be done that moves the changes to the src-public repository (and empties the topic, which will make it vanish on next update).
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb