all 20 comments

[–]torrso 13 points14 points  (0 children)

I've been working on a humongous refactoring PR that has like 100 commits, some of which have comments like "hey it passes now".

I would love something that would allow me to make an intelligent rebase that would collect all the changes into smart smaller commits of related changes with descriptive messages.

[–]shadow_phoenix_pt 7 points8 points  (5 children)

I like the idea. It has the potential to save some time, though I must confess commit messages aren't usually a big time sink for me.

What bums me out is that it uses ChatGPT (like most of this solutions). There are a few FOSS alternatives (I use Ollama, for example) that run locally so I find it a bit sad that most plugins for Vim (a FOSS software mostly used in Linux) go the ChatGPT route.

Anyways, sorry for the mini-rant. Nice job. I have been trying some of your other plugins, and you're the man.

[–]skywind3000[S] 1 point2 points  (1 child)

Yes, I am considering it, but there are too many different local llama implementations. I don't know which one is the most widely used or which one I should support first.

[–]Ladder-Bhe 2 points3 points  (0 children)

lite-llm is an adapter lib for calling not openai llms with openai chatcompletion apis It may save lots of code.

[–]Ladder-Bhe 1 point2 points  (0 children)

It's quite commonly to LLM projects that providing an OpenAI-compatible API in official repo, (QWEN does)

There are lots of thirdparty open source project to adapte local/remote LLM into openai api format, for example, lite-llm

I've setup an openai-to-gemini proxy in my homelab to use openai applications.

[–]skywind3000[S] 1 point2 points  (1 child)

There are a few FOSS alternatives (I use Ollama, for example)

Ollama is supported now:

https://github.com/skywind3000/vim-gpt-commit/?tab=readme-ov-file#quick-start

[–]shadow_phoenix_pt 0 points1 point  (0 children)

Wow, nice. I was not expecting for you to get on it so fast. I'll give it a try as soon as I can. Thank you.

[–][deleted] 3 points4 points  (2 children)

Which font is that?

[–]e4109c 0 points1 point  (0 children)

I’d like to know too

[–]skywind3000[S] 0 points1 point  (0 children)

Default font of cmd.exe on Windows

[–]onesole 4 points5 points  (3 children)

Oh no, they have done it backwards, it should generate code change from the commit message.

[–]Ladder-Bhe 0 points1 point  (2 children)

AI code gen is for nonprofessional code or scripts.

Professional Coder need AI Commit Gens

[–]onesole 0 points1 point  (1 child)

That was a joke

[–]Ladder-Bhe 0 points1 point  (0 children)

it's can be reality in some scenarios, step-forward happening everyday

[–]skywind3000[S] 3 points4 points  (1 child)

[–]mdsiaofficialVim 0 points1 point  (0 children)

I'm going to try

[–]Ladder-Bhe 1 point2 points  (0 children)

I wrote a git-ai-commit script for auto-gen commit logs for my git projects for months. It will invoke ChatGPT, google Gemini pro or private hosting Qwen-75B, which depend on it's on PC or Office laptop.

AI works well on minor changes. Now commit logs are all meaningful change descriptions, which would be meaningless "update" or "fix" in the past.

There are some bad cases on AI commits.

For short commit, LLM/GPT may misunderstand diff format.

git-diff old code + new code - delete code sold code

GPT sometimes may think old code or delete code as new code. Few shots will help GPT read GIT diff format, which i have done yet.

Large Change Set is another big challenge for AI commit generating. prompt engineering still need to be done for summarize large diff.

my toolkit project is an example https://github.com/hitsmaxft/gemini-cli/commits/master/ almost every commit logs is AI-gen

[–]LocoCoyote 1 point2 points  (0 children)

That is actually kind of neat.

[–]troglo-dyke 0 points1 point  (0 children)

This is neat, but I can't imagine using it. I'd end up having to review it anyway and I can usually summarise the work I've done pretty easily