The last release was nearly 5 months ago, and a lot happened since then.
First of all, gitoxide
is now sponsored which allows me to make developing it my full-time job. This job I intend to perform until it is done or I drop dead (of old age), whatever comes first. This will also be beneficial for another project of mine, GitPython, which will eventually become a front-end to gitoxide
using the marvellous PyO3.
Or in other words, this is the beginning of an exciting journey 😎.
Whats New
gix tool estimate-hours
With gix tool estimate-hours
(or gix t h
) you can now apply the git-hours algorithm to repositories of any size and estimate the time it would take a person to recreate its contents. It can do the linux kernel in 7.5s, even though it's not (yet) beating git shortlog
by a small margin.
gix tool organize
and gix tool find
Do you find yourself with 100's of repositories in your dev
directory because you keep cloning them just to have a look and keep them for reference? And by now, all that seems a bit messy and you wish there is a better way?
The organize
subcommand reads the origin remote's URL and suggests to place the repository in its path. For example, the repository cloned from https://github.com/byron/gitoxide
at ~/dev/gitoxide
could be moved to ~/dev/github.com/byron/gitoxide
. Actually perform the operation by passing --execute
as well.
The sibling command find
uses the same repository discovery algorithm used by organize
and lists the repository paths. This can be useful for building shell utilities to quickly jump to repositories in this new location.
Here is what works for me from ~/.zshrc
.
function select-repo() {
local root=~/dev
echo -n $root/
{
cd $root
gix t find
} | sk -q "$1"
}
function cd-repo() {
cd "$(select-repo $@)"
}
alias or="cd-repo"
Much less unsafe
Thanks to a fantastic PR a lot of code could be simplified into something that's easier to understand and contains only 2 one-liners of unsafe
. As a side-effect, certain operations involving decoding entire packs are now significantly faster.
There shall also be an honorable mention which makes traversing the android-base pack faster.
Easier contributions
Even though I keep management and planning very lean, there are now a few pointers which should help to find tasks to tackle and make your first contribution. If you were on the fence, now might be the time to join, and if something is holding you back, please let me know as well.
New crates
- git-diff - fast tree diffing
- git-traverse - commit and tree traversal
Whats cooking
Installation
Please refer to the installation instructions in the README.