Repository
ATF uses the Monotone version control system (VCS) to store and manage its development sources. As opposed to the most popular VCS systems, Monotone is a distributed VCS, which provides a lot of flexibility for development. This page describes how ATF sources are organized in Monotone and how to work with them.
Branches
The following branches are available:
Branch |
Description |
|---|---|
|
org.NetBSD.atf.htdocs |
ATF's web site source code. |
|
org.NetBSD.atf.src |
ATF's source code. |
|
org.NetBSD.src.atf-merge |
A set of patches and a script that ease the integration of ATF into an existing NetBSD source tree. Given that ATF is an external project, this puts a copy of it in src/dist/atf and adds reachover Makefiles to build all the components. It also migrates some of the existing tests in src/regress to work under the new infrastructure. |
If you want to browse any of the above branches online, the following ViewMTN servers are available:
Servers
Even though Monotone has many advantages over other VCSs, it is not as wide-spread as, for example, CVS or Subversion are. Therefore it is hard to find high-quality public hosting for Monotone repositories. However, this is not really a problem thanks to the distributed nature of this VCS: we can have as many public servers as we want, even if they are not highly reliable.
The following servers are available for read-only access:
Server |
Description |
|---|---|
|
atf.mtn-host.prjek.net |
Public server offered by Timothy Brownawell. |
|
jmmv.dyndns.org |
Julio M. Merino Vidal's home server. Not online, usually. |
You need not trust the servers to be able to trust the code you get from them: Monotone cryptographically signs every certificate stored in its database, so all you need to do is verify that what you got is properly signed. See the following section for more details.
Public keys
The following table shows information about the public keys of the official ATF authors:
Identifier |
Fingerprint |
Link |
|---|---|---|
|
jmmv@NetBSD.org |
9c8ed88a0605d2f8da2251d24df4829ec2a75bba |
Example
This section presents an example describing how to use Monotone to fetch all the ATF branches from one of the public servers.
The first step is to initialize an empty local database in which we will store a copy of the remote databases:
$ mtn --db=atf.mtn db init
Then proceed to pull the remote branches, which will effectively make an exact replica of what the server contains. It is recommended that you pull them all at once. Note that this is the only step that requires an Internet connection; in other words, after pulling the remote branches you can completely work in a local way.
$ mtn --db=atf.mtn pull atf.mtn-host.prjek.net "org.NetBSD.*atf*"
Once the remote branches are cloned into the local database, you can check out any of them. This will populate a directory with the contents of the most recent revision in the database (assuming there is no divergence). To check out the branch holding the sources, you could do:
$ $ mtn --db=atf.mtn checkout --branch=org.NetBSD.atf.src src
After that you can cd into src and inspect the code.
To keep the code up to date, you have to pull the new revisions from the/a server and then update your local copies. It usually goes as this:
$ cd src $ mtn pull $ mtn update
Links of interest
Best practices when using Monotone. Of special interest is the daggy fixes section.
