#Git 2.51 is out:
https://github.blog/open-source/git/highlights-from-git-2-51/
https://lore.kernel.org/all/xmqqikikk1hr.fsf@gitster.g/
A few quotes from the former URL:
Cruft-free multi-pack indexes […] Using this at GitHub has allowed us to write significantly smaller MIDXs, in a fraction of the time, and resulting in faster repository read performance overall.
Smaller packs with path walk […] As a result, Git can generate packs using the path walk approach that are often significantly smaller
[…] Git 2.51 introduces a variant of the internal stash representation that allows multiple stash entries to be represented as a sequence of commits. […]
[…] git switch and git restore […] are no longer considered experimental […]
[…] git whatchanged […] is now marked as deprecated with eventual plans to remove it in Git 3.0. […]
Speaking of Git 3.0, this release saw a few more entries added to the BreakingChanges list (https://github.com/git/git/blob/v2.51.0/Documentation/BreakingChanges.adoc ). […]
[…] this release saw an update to Git’s guidelines on submitting patches, which have historically required contributions to be non-anonymous, and submitted under a contributor’s legal name. Git now aligns more closely with the Linux kernel’s approach, to permit submitting patches with an identity other than the contributor’s legal name. […]
I missed the anniversary in April, but #git celebrated 20 years since the first git commit by @torvalds https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/
#software #development #linux
Highlights from Git 2.51
https://github.blog/open-source/git/highlights-from-git-2-51/
Starting to wonder if the modern ubiquity of #versioncontrol was more about people having "you have to use #git!" beaten into them, than actually learning to appreciate the value of preserving history. We managed to teach the tools, but not the mindset?
It'd certainly help explain the recent rise of #jjVCS too.
There's this one old open source project thing I made back in the day. I only published tarballs of it.
I really want to publish as an archived #Git repository or something.
Problem is, I found the original private work tree... and yes, it does have a version control stuff...
...in CVS.
*very sad sigh*
Converting a CVS repository might be a real headache, I just know it.
The latest Git 2.51 release brings cruft-free multi-pack indexes, path-walk packing, and improvements to the stash format.
https://linuxiac.com/git-2-51-introduces-cruft-free-midxs/

Latest cursed #git command line:
git push origin :/!-^local:master
Explanation below, if you want to try to figure it out yourself, I suggest perusing git-rev-parse(1) and git-push(1).
[Перевод] С чем едят GitOps
В современном ИТ ландшафте множество методологий имеют в своем названии упоминание Ops: DevOps, ChatOps, MLOps и другие. По сути, все они так или иначе являются порождением философии DevOps и сегодня мы поговорим о GitOps — подходе к управлению инфраструктурой и развёртыванием приложений, который использует репозиторий Git в качестве центрального механизма. GitOps позволяет командам декларативно определять конфигурацию инфраструктуры и приложений, а затем автоматически развёртывать их. Основная идея GitOps заключается в использовании Git как единого источника данных для декларативной инфраструктуры и приложений. В этой статье мы рассмотрим, те преимущества, которые дает использование GitOps, а также развеем некоторые мифы вокруг GitOps..
https://habr.com/ru/companies/otus/articles/937564/
#gitops #devops #git #Kubernetes #ArgoCD #Crossplane #инфраструктура_как_код #декларативная_инфраструктура #автоматизация_развертывания #согласование_состояния
Why, oh why do I have a git tag in my repo called «list»? 🤦♂️
I re-organised my documents today which created a lot of memory churn in #emacs due to #magit needing to process a shitton of #git output.
Afterwards, memory usage was at 7GiB O.o
However, I could explain like 1GiB of that via (memory-report).
Turns out: This is a glibc malloc issue that dates back to ancient UNIX syscalls and all of it is just fucked.
Workaround is to call (malloc-trim) which frees the free memory using a workaround. No idea why it doesn't just do that by default on free().