Quick update: I wrapped up adding test cases for tree widget of #GitRaven

Its job is to construct tree like structures for given 1D paths like “foo/bar/baz.txt”

Next up, diff generation logic needs to be tested. I wrote 2 test cases manually and got them to pass.

Later, gave those two over to ChatGPT along with my enum declarations so it understands context and asked it to explain the code.

Once I am happy with the answer, I asked it to come up with test cases.

In this process, we came across a diff logic bug in the app.

I confirmed the bug on the UI so writing test cases for this will prove to be very useful. A lot of learning in just a day!

<rant>
I am bittersweet about AI tech. It has its use cases but its run by not so trustworthy people for definitely not good intentions 🫠
</rant>

#unittesting #cpp #qttest

Today I learned about structuring #CMake projects.

This is a quick update on #GitRaven project. I have started looking into unit testing the app so I can setup CI/CD with #GitHub Actions.

It is a long ways away but the first step must start from somewhere.

#cppdev #opensource #qt

@stranded_output Give yourself time. Sometimes you feel stuck because you’re trying to solve a tough problem or it’s similar to writers block where you can’t decide what should the next step be.

Just give your mind sometime. Human minds are constantly cracking at tough nuts even in sleep.

This is something I faced for #GitRaven project.

I might have to explore C++ RAAI concept sooner or later for #GitRaven.

It is getting difficult manually free-ing memory used via libgit2. I am having to think about and write if checks for all the edge cases across my GitManager class.

ChatGPT suggested this after I mentioned this issue and it sounds like it's useful.

#diary #opensourcedev #cppdev

EDIT: Link updated.

Hey #fediverse #developers

I am happy to bring this update for my pet project #GitRaven. It's a Git management tool built in C++ and Qt as a learning experience.

Give it a read and let me know how you like it?

https://blog.suryatejak.in/gitraven-april-2026-updates

#fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

Do you know what happens when you write Qt + C++ code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.

It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.

2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.

3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)

4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.

#diary #cppdev #gitraven #opensource

Not proud or satisfied about this bug fix as I had to use ChatGPT in the end.

https://github.com/shanmukhateja/gitraven/pull/1

The fix was computing `objFullPath` over each iteration and then use it when computing absolute path for a tree node.

#diary #gitraven #opensource #cpp #qt

fix(tree): Absolute path calculation rewrite by shanmukhateja · Pull Request #1 · shanmukhateja/gitraven

The existing code showed "Changes" as child node for leaf node of tree "foo/bar/a/a" This happens because we use absolute path to determine unique nodes and due to a logic bug, ...

GitHub

Something's brewing!!

#GitRaven is getting UI to switch branches and tags.

#opensource #cppdev #diary

I am making time for #GitRaven project again. It had stalled for sometime due to other commitments.

Today, I learned C++ and Qt lifetimes, the advantages of member initializer lists. I still have one more issue to fix w.r.t this topic but I will hold it off a little longer, switching my focus on adding features.

#diary #cppdev #git #opensource #developers

Hello #fediverse

Here is my next post on my #GitRaven pet project that's written in C++ and Qt.

This time, I am integrating Monaco editor (editor/viewer of VSCode) to this project.

Give it a read:
https://blog.suryatejak.in/ghostllm-how-to-setup-monaco-editor-for-qwebengine

#git #opensource #monacoeditor #cpp #javascript