They have a common beginner's mistake in their example usage of sha256sum. Nothing that would affect the git usage, to be fair... unless they have related tooling that does this.
> echo "please hash this data" | sha256sum
f2ccc47bcb79799071eab33aa4311e6764769681bb9052ae444cb6e2d87427c8 -
This sum is not the sum of "please hash this data" but instead it is the sum of "please hash this data\n" where "\n" represents not a literal backslash and n, but a newline character. The unwanted newline is supplied by the echo command, obviously.
The proper way to have done this example (edit: on BSD, macOS, etc.) would be:
The newline may also be suppressed by appending `\c' to the end of the
string, as is done by iBCS2 compatible systems. Note that the -n option
as well as the effect of `\c' are implementation-defined in IEEE Std
1003.1-2001 ("POSIX.1") as amended by Cor. 1-2002. For portability, echo
should only be used if the first argument does not start with a hyphen
(`-') and does not contain any backslashes (`\'). If this is not suffi-
cient, printf(1) should be used.
\c Suppress the <newline> that otherwise follows
the final argument in the output. All
characters following the '\c' in the arguments
shall be ignored.
Because if you get in the habit of using printf instead of echo you can avoid having to remember to strip the newline when it matters and only add it when you need it. Though obviously echo is simpler to use for 95% of situations.
> Gitaly is a Git RPC service for handling all the git calls made by GitLab
So I think this means that a major piece of gitlab now supports sha256 git repos? But probably not everything and therefore we can't actually push sha256 git repos to gitlab yet?
Yeah, Gitaly is GitLab's approach to scaling up the actual Git operations. It's certainly a major part of the equation, but the article suggests the Rails app still has a bit of work to go before it's possible to use SHA256 repos.
> While there is still some work we need to do in other parts of the GitLab application before SHA-256 repositories can be used, this milestone is important.
Somehow I managed to skim over and miss that; I was expecting a "what this means for gitlab" or "next steps" section.
The proper way to have done this example (edit: on BSD, macOS, etc.) would be:
And then we would see the actual sha256sum for the example data used.Edit: Forget this, an even better way is posted by others below! Thanks!