Go to file
Thomas Mühlbacher 922ba240c5 build(nix): filter src to reduce useless rebuilds
This in particular speeds up the dev/run/debug cycle for writing more
tests. Without this, the actual bcachefs-tools package will be rebuilt
by Nix all the time because of changes to files that are tracked by git.
Even when it's changes in parts that aren't relevant to that package
build such as `checks/*`.

Signed-off-by: Thomas Mühlbacher <tmuehlbacher@posteo.net>
2024-06-30 13:01:18 +02:00
.github workflows: add monthly flake lock update workflow 2024-05-29 01:12:56 +05:30
bch_bindgen Update bcachefs sources to f81dc88f0c80 bcachefs: bch2_btree_insert() - add btree iter flags 2024-06-03 20:08:06 -04:00
c_src Be explicit about which fsck implementation we're running 2024-06-29 11:55:03 -04:00
ccan treewide, docs: fix typos 2024-05-29 09:22:09 +05:30
checks test(nix): add basic functionality testing infra 2024-06-30 13:01:18 +02:00
debian treewide, docs: fix typos 2024-05-29 09:22:09 +05:30
doc treewide, docs: fix typos 2024-05-29 09:22:09 +05:30
fsck fix fsck service location 2024-01-11 23:55:39 -08:00
include Update bcachefs sources to 9404a01d3dc5 bcachefs: Make read_only a mount option again, but hidden 2024-06-28 18:26:04 -04:00
initramfs Make initramfs hook install mount.bcachefs 2024-02-04 14:44:54 +01:00
libbcachefs Update bcachefs sources to 9404a01d3dc5 bcachefs: Make read_only a mount option again, but hidden 2024-06-28 18:26:04 -04:00
linux Update bcachefs sources to 9404a01d3dc5 bcachefs: Make read_only a mount option again, but hidden 2024-06-28 18:26:04 -04:00
packaging treewide, docs: fix typos 2024-05-29 09:22:09 +05:30
raid Move c_src dirs back to toplevel 2024-01-16 17:17:23 -05:00
src feat(key): make UnlockPolicy::Fail more useful 2024-06-26 19:14:45 +02:00
tests Test 'fix'? 2024-02-23 08:37:23 +01:00
udev fix udev rules path 2023-12-06 15:41:05 -05:00
.bcachefs_revision Update bcachefs sources to 9404a01d3dc5 bcachefs: Make read_only a mount option again, but hidden 2024-06-28 18:26:04 -04:00
.editorconfig chore(editorconfig): extend for sh scripts 2024-06-18 20:56:06 +02:00
.gitignore workflows: add monthly flake lock update workflow 2024-05-29 01:12:56 +05:30
bcachefs Add bcachefs command compatibility symlink 2024-01-29 14:29:35 +01:00
bcachefs.8 bcachefs.8: subvolume delete -> subvolume snapshot 2024-04-19 22:36:17 -03:00
build.rs Move c_src dirs back to toplevel 2024-01-16 17:17:23 -05:00
Cargo.lock v1.9.1 2024-06-19 14:48:31 -04:00
Cargo.toml v1.9.1 2024-06-19 14:48:31 -04:00
COPYING bcache-tools are GPL 2013-07-17 13:13:31 -07:00
default.nix style(nix): run nix fmt 2024-05-22 22:35:05 +02:00
flake.lock flake.lock: Update 2024-06-17 18:20:02 +00:00
flake.nix build(nix): filter src to reduce useless rebuilds 2024-06-30 13:01:18 +02:00
INSTALL.md docs: udev.pc now in systemd-dev on Debian 2024-06-01 11:52:24 +02:00
make-release-tarball.sh move Rust sources to top level, C sources into c_src 2024-01-16 01:47:05 -05:00
Makefile Use the AR variable in Makefile 2024-06-24 21:00:08 +03:00
Makefile.compiler Update bcachefs sources to 09d4c2acbf4c bcachefs: reconstruct_inode() 2024-04-03 17:34:02 -04:00
mount.bcachefs.sh Add a shell script version of mount.bcachefs 2020-08-24 23:17:17 -04:00
README.md test(nix): add basic functionality testing infra 2024-06-30 13:01:18 +02:00
rustfmt.toml Format with rustfmt 2024-05-26 20:38:08 -04:00

bcachefs-tools

Userspace tools and docs for bcachefs

Bcachefs is an advanced new filesystem for Linux, with an emphasis on reliability and robustness and the complete set of features one would expect from a modern filesystem.

This repo primarily consists of the following:

  • bcachefs tool, the reason this repo exists.
  • {mkfs,mount,fsck}.bcachefs utils, which is just wrappers calling the corresponding subcommands in the main tool
  • docs in the form of man-pages and a user manual

Please refer to the main site for getting started An in-depth user manual is (also) found on the official website

Version semantics

The tools relies on an expected disk format structure which is reflected by your current kernel version. Disk format can be upgraded or downgraded automatically by the kernel, if needed.

  • Any patch-level change means no disk format change
  • Any minor-level change means a potential disk format change which is not breaking
  • Any major-level change means breaking changes

Build and install

Refer to INSTALL.md

Testing

Besides manual testing, which is also encouraged, there are also a number of checks defined that are used for CI (e.g. github actions).

These checks can be listed using nix flake show. You can, for example, test the current state of the repo or test every patch before publishing them.

$ nix flake check
$ git rev-list origin/master.. | xargs -I{} nix flake check "git+file://$(pwd)?rev={}"

Bug reports and contributions