Posts

How to find large files in Git history: a one-liner

One liner:

git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest

Credit SO: https://stackoverflow.com/a/42544963/88814

How to view Git changes on a single branch since its creation

The command: git log --oneline master..feature/some-branch Will show commits on feature branch since it was forked off master. Suppose you have a repo that looks like this: base - A - B - C - D (master) \ \- X - Y - Z (myBranch) Verify the repo status: > git checkout master Already on 'master' > git status ; git log --oneline On branch master nothing to commit, working directory clean d9addce D 110a9ab C 5f3f8db B 0f26e69 A e764ffa base and for myBranch:

How to remove "other search engines" from Chrome

Open the Chrome search engine settings page: chrome://settings/searchEngines Selector for topmost “Remove search engine” button in “Other search engines” list: document.querySelector("body > settings-ui").shadowRoot .querySelector("#main").shadowRoot .querySelector("settings-basic-page").shadowRoot .querySelector("#basicPage > settings-section.expanded > settings-search-page").shadowRoot .querySelector("#pages > settings-subpage > settings-search-engines-page").shadowRoot .querySelector("#otherEngines").shadowRoot .querySelector("#frb0").shadowRoot .querySelector("#delete"); You can repeatedly call the selector and “click()” on the button. document.querySelector("body > settings-ui").shadowRoot .querySelector("#main").shadowRoot .querySelector("settings-basic-page").shadowRoot .querySelector("#basicPage > settings-section.expanded > settings-search-page").shadowRoot .querySelector("#pages > settings-subpage > settings-search-engines-page").

How-to: Git clean up .orig files generated after conflict resolution

Preamble After a merge conflict resolution you're often left with files ending with .orig extension. I have them added to my global .gitignore. Hence I can't easily get rid of them with regular: git clean -fd. Solution git clean has -e argument for a regular expression to match files. To preview what will happen: git clean -e '!*.orig' --dry-run To actually delete the files: git clean -e '!*.orig' -f It's that simple.

Installing WSL2 on Windows 10

The easy way. Get the full featured Linux running under Windows.

If it feels `git clone` is throttled on Windows...

Symptoms of the problem: internet connection is fast and a torrent download of Ubuntu can go at 10MB/s, but git clone gets ‘stuck’ at 500-600KB/s.

Automatically starting ssh-agent when powershell or git-bash are started

Start ssh-agent once when powershell or git-bash is started. Saves typing the ssh key password every time you interact with a remote repo.

Parallel Producer Consumer Queues

Many programs do some sort of data transform and can be described as read/generate some data, process the data, write the output. It's always beneficial if some steps are performed in parallel. E.g. the reader pre-fetches a few data items so that when the ‘processing’ part of the program is ready for a new chunk of data the data is already there waiting. Ths post provides two quick solutions for java and C#. Java with Project Reactor. C# using TPL Dataflow (Task Parallel Library).

Auto Resize Guest VM Desktop running under VMWare

In VMWare Workstation guest OS desktop doesn't auto-resize to fill host OS window after first reboot. Solution.

Installing ExpressVPN client on Manjaro Linux

How to install expressvpn client on a fresh install of Manjaro / Arch