File:  [NetBSD Developer Wiki] / wikisrc / Wifi_renewal_on_hg.mdwn
Revision 1.3: download - view: text, annotated - select for diffs
Sun Apr 26 16:35:39 2020 UTC (4 months, 3 weeks ago) by wiz
Branches: MAIN
CVS tags: HEAD
Fix some typos, uppercase CVS.

    1: #How to help with the Wifi renewal "branch" in hg
    2: 
    3: The wifi renewal project is trying to sync our sys/net80211 with FreeBSD as far as possible, to allow easier sharing of drivers.
    4: 
    5: ## Why hg?
    6: 
    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.
    8: 
    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).
   11: 
   12: ## Helping with testing
   13: 
   14: ** Note that this project is not ready for general testing yet! **
   15: 
   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:
   17: 
   18:     > hg clone https://anonhg.netbsd.org/src-draft
   19: 
   20: Now enable the 'topic' extension by adding
   21: 
   22:     [extensions]
   23:     topic=
   24: 
   25: to the .hg/hgrc file in your clone directory and then update to the 'wifi' topic:
   26: 
   27:     > hg up wifi
   28: 
   29: ## Helping with development
   30: 
   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.
   32: 
   33: The development happens using the topic and evolve extensions, which unfortunately slows down some hg operations.
   34: 
   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:
   36: 
   37:     [ui]
   38:     user=Martin Husemann <martin@NetBSD.org>
   39:     color = no
   40:     ignore = ~/.hgignore
   41:     [paths]
   42:     default:pushrev = .
   43:     [extensions]
   44:     evolve=
   45:     topic=
   46:     share=
   47:     purge=
   48:     pager=
   49:     rebase=
   50: 
   51: The .hgignore file referenced there tells hg to leave editor backups and compiled kernels alone. Mine looks like:
   52: 
   53:     syntax: glob
   54:     *~
   55:     *.o
   56:     sys/arch/amd64/compile/*
   57: 
   58: Finally the clone local config (.hg/hgrc) looks like this:
   59: 
   60:     [paths]
   61:     default = ssh://hgmaster.netbsd.org//repo/src-draft
   62:     final = ssh://hgmaster.netbsd.org//repo/src-public
   63:     [phases]
   64:     publish=false
   65: 
   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