Bookmark
chezmoi
https://www.chezmoi.io/, posted Jan '24 by peter in free linux shell software versioncontrol
Manage your dotfiles across multiple diverse machines, securely.
Bookmark
git-remote-gcrypt: PGP-encrypted git remotes
https://github.com/spwhitton/git-remote-gcrypt, posted Mar '23 by peter in development free opensource software versioncontrol
git-remote-gcrypt is a git remote helper to push and pull from repositories encrypted with GnuPG, using a custom format. This remote helper handles URIs prefixed with
gcrypt::
.
Bookmark
Git Notes: git's coolest, most unloved feature
https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/, posted 2022 by peter in development git versioncontrol
Once a commit cements itself in git’s history—that’s it. It’s impossible to amend a commit message buried deep in a repo’s log.
But git notes enable you to amend new information about old commits in a special namespace. And they’re capable of so much more.
Notes stow metadata about anything tracked by git—any object: commits, blobs, and trees. All without futzing with the object itself.
Bookmark
Git - git-worktree Documentation
https://git-scm.com/docs/git-worktree, posted 2022 by peter in development documentation howto reference versioncontrol
In its simplest form,
git worktree add <path>
automatically creates a new branch whose name is the final component of<path>
, which is convenient if you plan to work on a new topic. For instance,git worktree add ../hotfix
creates new branchhotfix
and checks it out at path../hotfix
. To instead work on an existing branch in a new worktree, usegit worktree add <path> <branch>
. On the other hand, if you just plan to make some experimental changes or do testing without disturbing existing development, it is often convenient to create a throwaway worktree not associated with any branch. For instance,git worktree add -d <path>
creates a new worktree with a detachedHEAD
at the same commit as the current branch.If a working tree is deleted without using
git worktree remove
, then its associated administrative files, which reside in the repository (see "DETAILS" below), will eventually be removed automatically (seegc.worktreePruneExpire
in git-config[1]), or you can rungit worktree prune
in the main or any linked worktree to clean up any stale administrative files.
Bookmark
Conventional Commits
https://www.conventionalcommits.org/, posted 2021 by peter in development documentation git reference versioncontrol
The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.
Bookmark
Configuration as Code (Jenkins plugin)
https://plugins.jenkins.io/configuration-as-code/, posted 2021 by peter in automation continuousdelivery development free software versioncontrol
The Configuration as Code plugin is an opinionated way to configure Jenkins based on human-readable declarative configuration files. Writing such a file should be feasible without being a Jenkins expert, just translating into code a configuration process one is used to executing in the web UI.
Bookmark
Palisade: Version Bumping at Scale in CI
https://tech.lightspeedhq.com/palisade-version-bumping-at-scale-in-ci/, posted 2020 by peter in automation continuousdelivery development versioncontrol
Palisade works by reading two files in the root of your repository:
- A CHANGELOG.md file that describes the changes made to the program
- A VERSION file that contains the current version of the program (ideally following semantic versioning)
Every time Palisade is run, it will check the git repository for version tags based on the contents of the VERSION file. If it finds that the current version has already been tagged, Palisade will do nothing and exit with the exit code 0. If Palisade finds that there is a new release, the software will then read the changelog file, scrape it for release notes, then use those release notes when creating a new release on GitHub.
Bookmark
Why Google Stores Billions of Lines of Code in a Single Repository | July 2016 | Communications of the ACM
cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext, posted 2016 by peter in development google management toread versioncontrol
This article outlines the scale of that codebase and details Google's custom-built monolithic source repository and the reasons the model was chosen. Google uses a homegrown version-control system to host one large codebase visible to, and used by, most of the software developers in the company. This centralized system is the foundation of many of Google's developer workflows. Here, we provide background on the systems and workflows that make feasible managing and working productively with such a large repository. We explain Google's "trunk-based development" strategy and the support systems that structure workflow and keep Google's codebase healthy, including software for static analysis, code cleanup, and streamlined code review.
Bookmark
Abandoning Gitflow and GitHub in favour of Gerrit
www.beepsend.com/2016/04/05/abandoning-gitflow-github-favour-gerrit/, posted 2016 by peter in development git opinion toread versioncontrol
GitHub is the go-to place to host your open source projects, that much is well known. A lot of companies also use their paid plans to get the ecosystem around GitHub for their own code. Why would you want to use anything else? We took the decision to move away from GitHub and in the end we benefitted hugely!
Bookmark
orrc/git-webhook-proxy
https://github.com/orrc/git-webhook-proxy, posted 2015 by peter in continuousdelivery development git networking software versioncontrol
Acts as a proxy for incoming webhooks between your Git hosting provider and your continuous integration server.
When a Git commit webhook is received, the repository in question will be mirrored locally (or updated, if it already exists), and then the webhook will be passed on to your CI server, where it can start a build, using the up-to-date local mirror.