Highlights from Git 2.38
github.blog
github.blog
This just automates the previously-manual process of checking out branch2 and rebasing it to point to branch1, instead of pointing to the commit that branch1 referenced pre-rebase.
This approach feels... wrong.
I agree it seems quite strange that it's not a git subcommand now that it seems like it's been incorporated into the git core release. I'm not exactly sure of it's utility...seems kinda heavy weight to just be setting recommended configurations? I guess it does some background automation for fetching and gc?
[0] https://devblogs.microsoft.com/devops/introducing-scalar/
According to the email linked in your sibling, that's exactly why it's a separate command in /contrib and not integrated into git proper.
Remaining a seperate command rather than a subcommand is motivated by command line backwards compatibility for users of the c version from microsoft/git, but also for users of the older C# version.
If they did git-scalar then they would still need a contrib subfolder command wrapper executable (not just a script, as many users are on windows and rely on it being an executable, not just a bash script).
The original commit adding it to contrib anticipated moving parts of it into git proper:
For example, we previously discussed the idea of a "git big-clone" that does
much of what "scalar clone" is doing. This patch series is a step to make
such functionality exist in the Git code base while we simmer on what such a
"git big-clone" command-line interface would look like.
This is one of many possible ways to do this. Creating a 'git big-clone'
could lock Git into backwards compatibility concerns so it is necessary to
approach such an endeavor with caution.
Seems like now it is locked into backwards compatability concerns around including the scalar command.I'm also curious how they managed to drive it into the Git project. Presumably there can't be that many orgs out there for whom git repo size is a bottleneck. My rationale there is that the Linux kernel has thousands of contributors and vanilla Git scales ok there. Maybe I'm being naïve about something?
The Scalar feature of git is answered prayer for devs at such companies where an average git status command can take upwards of 30s!
Source: I attended the Git Merge 2022 conference in Chicago, IL last month.
Obviously MS devised such tooling and here we are... but have others just been quietly doing similar internally and never showing it the light of day?
There are many large orgs that are using pretty large monorepos. Which surprised me.
Source: see my profile :)
What am I missing? Which somewhat newer Git feature or configuration are you using that is useful?
https://www.git-scm.com/docs/git-sparse-checkout
It's another feature that's mainly useful for large repos.
Everything else I use was there a decade or more ago, I think.
https://git-scm.com/docs/git-diff#Documentation/git-diff.txt...
https://medium.com/@karol.rossa/git-3-way-merge-addc2728c300
EDIT: Ok, it used to be a .NET application (not any more), but .NET runs fine on Linux.