Following src with got (sic!)

Christian Weisgerber naddy at
Wed Dec 23 19:30:14 UTC 2020

Got is a nascent version control system that uses the git repository
format and thus has some degree of interoperability with git.
People who don't need the full git experience may be able to use
got to check out the FreeBSD src repository.  There has been some
talk of importing got into base as a successor to svnlite.  Meanwhile,
there's a devel/got port.

If you feel overwhelmed by the flood of magic command lines and
configuration file sections that are being posted for git...
Well, here are some less imposing magic command lines that will
also be easier to make sense of from the got(1) man page:

Clone the repository:
$ cd /somewhere
$ got clone -a ssh://

Check out stable/12:
$ cd /usr
$ got checkout -b stable/12 /somewhere/src.git

I verified with "diff -uNr -x .got -x .svn -I '\$FreeBSD.*\$'" that
this is indeed identical to a svn checkout.

Update your source:
$ cd /usr/src
$ got fetch
$ got update -b origin/stable/12
$ got rebase stable/12

This is the standard configuration which allows you to have changes
on a local branch distinct from the upstream origin/* one.

If you are sure you don't need this, you can simplify things by
cloning a mirror of the original repository:
$ got clone -a -m ssh://
... and updating your checked out source will simply be:
$ cd /usr/src
$ got fetch
$ got update

You may also want to give the tog(1) repository browser a spin.
Very handy to figure out who, say, probably broke wcwidth()...

Check it out! (pun intended)

- - - - -

At this time, got does not yet support cloning/fetching over https,
pushing to a remote repository, or garbage collection.  Git can be
used to supply missing functionality for the time being.

Christian "naddy" Weisgerber                          naddy at

More information about the freebsd-git mailing list