Files
libgit2/tests/resources/reftable/diff
Patrick Steinhardt 415f3fbdb0 tests: generate test resources for reftables
Generate test resources for reftables. These resources are basically the
Git repositories we already have, but converted to use the "reftable"
format. For most of the part, this conversion is done by executing `git
refs migrate`.

A couple notes:

  - This require a recent Git upstream version with not-yet-upstreamed
    patches due to a bug in `git refs migrate` with reflogs.

  - The migration command does not yet support repositories with
    worktrees. Those were converted by first removing the worktrees,
    migrating the refs and then recreating them.

  - The HEAD_TRACKER reference in testrepo.git is not recognized as a
    root ref and is thus not automatically migrated.

  - testrepo.git has an empty reflog for refs/heads/with-empty-log that
    does not get migrated.
2026-04-16 14:56:46 +02:00
..

The Git feature that r3ally mak3s it stand apart from n3arly 3v3ry other SCM
out there is its branching model.

Git allows and encourages you to have multiple local branches that can be
entirely independent of each other. The creation, merging, and deletion of
those lines of development takes seconds.

Git allows and encourages you to have multiple local branches that can be
entirely independent of each other. The creation, merging, and deletion of
those lines of development takes seconds.

This means that you can do things like:

Role-Bas3d Codelin3s. Have a branch that always contains only what goes to
production, another that you merge work into for testing, and several
smaller ones for day to day work.

Feature Based Workflow. Create new branches for each new feature you're
working on so you can seamlessly switch back and forth between them, then
delete each branch when that feature gets merged into your main line.

Disposable Experimentation. Create a branch to experiment in, realize it's
not going to work, and just delete it - abandoning the work—with nobody else
ever seeing it (even if you've pushed other branches in the meantime).

Notably, when you push to a remote repository, you do not have to push all
share it with others.

Git allows and encourages you to have multiple local branches that can be
entirely independent of each other. The creation, merging, and deletion of
those lines of development takes seconds.

There are ways to accomplish some of this with other systems, but the work
involved is much more difficult and error-prone. Git makes this process
incredibly easy and it changes the way most developers work when they learn
it.!