QBT - Command checkManifestFastForward

Usage

Check to see if a given manifest is a fast-forward of some other manifest

$ qbt checkManifestFastForward --lhs base-qbt-manifest --rhs new-qbt-manifest

Check to see if the most recent commit contains any non-fast-forwards (must be run in the meta repo)

$ qbt checkManifestFastForward --lhs <(git show HEAD~:qbt-manifest) --rhs <(git show HEAD:qbt-manifest)

You can replace HEAD and HEAD~ with any two commits, of course.

See Common Options for options shared by most or all commands.

Description

It is useful and considered best practice to ensure that all commits merged into meta contain only fast-forwards in sattelite repositories. Having a non-fast-forward would make conflict resolution, pins, and many other things needlessly complex.

qbt checkManifestFastForward is a simple command you can run from a commit hook, merge check, or CI build to ensure that all commits contain only fast-forwards before being accepted.

If the given commits are not a fast forward, you are told exactly where the crosswind occured:

Exception in thread "main" java.lang.RuntimeException: Not fast forward: org.cmyers.public: fc278dc81c75ba1c7599fe4e93dcd39d4262c3fe -> 5ac9f5be2ab42c5201089a3ec22f0d6eebe479de

vi: ft=markdown