- C 64%
- C++ 23%
- Roff 5%
- Shell 2.5%
- Makefile 1.5%
- Other 3.4%
Dear all, the FreeBSD project has switched their source of truth repository from Subversion to Git on 2020-12-23. The previously published commit hashes were missing required merge commits and were thus unsuitable to be the basis of the source of truth repository. They had to be changed (aka "force pushed"). We're sorry for the inconvenience this causes. The `master` branch will no longer see any updates and we will push to `main` going forward. The `stable/X` and `releng/X` branches will see a force-push directly. To transplant your work, it is recommended to head over to the wiki at https://github.com/freebsd/git_conv/wiki for instructions on how to rebase or remerge your in-flight work. A short outline will be provided below. Please note that the actual git "trees" are of course identical between the old and new conversions, so it's relatively easy to craft git commits that merge or rebase the work w/o any merge conflicts. Please reach out to git@FreeBSD.org or file an issue under https://github.com/freebsd/git_conv/issues if you need assistance. The mapping of the old to new commit hashes (for the same tree) are given below. We have archived a copy of the legacy repo under https://github.com/freebsd/freebsd-legacy which you can add as a remote to always have a reference to the old `master` or `stable/X` branches and names. This is a merge commit that brings both histories together, giving you common history ancestors, which should help with later merging. You should be able to cleanly merge into this "legacy" master, and then merge into "main" following from that. All the following commands assume you've checked out your own workbranch. -- Merge from master to main -- $ git remote add freebsd-legacy https://github.com/freebsd/freebsd-legacy.git $ git fetch --all $ git merge freebsd-legacy/master (this convenience commit) $ git merge origin/main -- Merge for stable/X or releng/Y branches -- $ git remote add freebsd-legacy https://github.com/freebsd/freebsd-legacy.git $ git fetch --all $ git merge freebsd-legacy/stable/X (to get to the legacy hashes from below) $ git merge -s ours --allow-unrelated-histories <new-hash-from-below> (this is guaranteed conflict free) $ git merge origin/stable/X PLEASE NOTE: You'll end up with twice the history and git log output will show old history twice and will likely confuse you. Please make an effort to migrate your work over to a fresh branch based off of main. A git replace --graft can be used to at least patch up git log output. -- Rebase your work -- Only for folks that always rebase their local work on top of an origin branch. $ git remote add freebsd-legacy https://github.com/freebsd/freebsd-legacy.git $ git fetch --all $ git branch -u freebsd-legacy/master $ git rebase --onto origin/main <your_rebased_work_branch> -- Old to new hash mappings -- BRANCH LEGACY HASH NEW HASH master / main |
||
|---|---|---|
| .github/workflows | ||
| bin | ||
| cddl | ||
| contrib | ||
| crypto | ||
| etc | ||
| gnu | ||
| include | ||
| kerberos5 | ||
| lib | ||
| libexec | ||
| release | ||
| rescue | ||
| sbin | ||
| secure | ||
| share | ||
| stand | ||
| sys | ||
| targets | ||
| tests | ||
| tools | ||
| usr.bin | ||
| usr.sbin | ||
| .arcconfig | ||
| .arclint | ||
| .cirrus.yml | ||
| .clang-format | ||
| .gitattributes | ||
| .gitignore | ||
| COPYRIGHT | ||
| LOCKS | ||
| MAINTAINERS | ||
| Makefile | ||
| Makefile.inc1 | ||
| Makefile.libcompat | ||
| Makefile.sys.inc | ||
| ObsoleteFiles.inc | ||
| README | ||
| README.md | ||
| RELNOTES | ||
| UPDATING | ||
This repository is being converted from Subversion to Git.
FreeBSD Source:
This is the top level of the FreeBSD source directory. This file
was last revised on:
FreeBSD
FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.
For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.
The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.
Source Roadmap:
bin System/user commands.
cddl Various commands and libraries under the Common Development
and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Various commands and libraries under the GNU Public License.
Please see gnu/COPYING* for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources.
sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
used in release builds. NOTES contains documentation of
all possible entries.
tests Regression tests which can be run by Kyua. See tests/README
for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.
For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html