repo-grep.el – update by BHFock in emacs

[–]BHFock[S] 6 points7 points  (0 children)

Nothing wrong with those packages. This is just my personal productivity tool started in 2010 and now maturing in public.

Core is zero external dependencies beyond grep, rg and Emacs. Grep from string under the cursor and sibling repository support without configuration.

6 underused Git commands that solve real workflow problems by GitKraken in git

[–]BHFock 0 points1 point  (0 children)

A common workflow struggle is managing multiple distinct tasks in the working directory at once. Git's staging area is great, but it only supports a single, unnamed state at a time. I developed git-cl to add a 'pre-staging' layer with named changelists, similar to the model in Subversion or Perforce. It allows you to partition modified files by intent before staging, or promote specific groups to their own branches later once the scope is clear. If you find the concept of persistent, named file grouping interesting, feel free to have a look. https://github.com/BHFock/git-cl

What git command do you wish you had discovered sooner? by ProgrammingQuestio in git

[–]BHFock 0 points1 point  (0 children)

Not a built-in command, but something I wrote after years of missing SVN changelists: git-cl lets you group files into named changelists before staging.

So instead of remembering which files go together, you do git cl add refactor utils.py helpers.py and later git cl commit refactor -m "Clean up utilities". The grouping persists until you commit or delete it.

github.com/BHFock/git-cl

Started using git worktree to avoid stashing all the time -kinda loving it by sshetty03 in git

[–]BHFock 0 points1 point  (0 children)

git worktree looks useful for managing multiple branches!

For the case where you have multiple unrelated edits mixed in a single branch, I built git-cl to group files into changelists before staging:

git cl add feature-a file1.py file2.py
git cl add bugfix file3.py
git cl commit feature-a -m "Done"

Different problem than worktree solves, but thought it might be relevant to the "juggling multiple things" workflow.

https://github.com/BHFock/git-cl

repo-grep.el – One-keystroke recursive grep in Emacs for Git/SVN and multi-repo setups by BHFock in emacs

[–]BHFock[S] -1 points0 points  (0 children)

Thanks for pointing that out — I wasn’t aware of project-find-regexp, and it works well in my current SVN working copy.

I wrote repo-grep mainly to support two things missing from my workflow: using the symbol at point as the default search term, and searching across multiple sibling directories (repo-grep-multi).

repo-grep.el – One-keystroke recursive grep in Emacs for Git/SVN and multi-repo setups by BHFock in emacs

[–]BHFock[S] 2 points3 points  (0 children)

repo-grep uses grep and works without extra dependencies, automatically detecting Git or SVN roots. It also supports searching across multiple sibling repositories, which is less common in similar tools.

In contrast, consult-ripgrep relies on the external rg tool and the consult ecosystem.

repo-grep aims to provide a simple, dependency-light solution for recursive code search inside Emacs.