the program would bug out when resized and you would have to quit the entire shell and reload it back up just to get a resized gg dd. this is now fixed and you can resize any time you want, even in runtime
Major improvements to git operations UI and user experience:
**Git Operations Restructure:**
- Move pull functionality from commit view to branch view (pull only makes sense for branches)
- Remove 'p' key from commit list mode, add to branch list mode with validation
- Only allow pull when branch has commits behind (prevents unnecessary operations)
**Branch Status Indicators:**
- Add ahead/behind commit indicators (/) next to each branch
- Show 2 for branches 2 commits ahead, 3 for 3 commits behind
- Display combined status like 12 for diverged branches
- Fetch remote refs automatically to ensure accurate status
**Real-time Operation Feedback:**
- Add branch-specific animations during push/pull operations
- Show Pushing
the ahead and behind wasnt working in the branch view, also pulling didnt work so the entire feature was broken, this is now fixed and works as expected atleast for the small test case i gave it
the view pane was working good and scrolling was fine, but it was impossible to know which line you were on because there was no cursor. this is now added, scrolling with j k ctrl d and ctrl u now works just like in vim (I LOVE VIM) this is just a change for satisfaction for now but will come in handy in the future when i make line by line and hunk staging and commitng. as comitting is onlyy possible file by file right now
ever messed up a feature and its not working, and you just dont want to work on that shit anymore, well thats how i use stash. all the changes into the stash so that i can fix it in the future (will never get worked on in the future)
when renaming a commit the program was unable to Push because the local branch had diverged from the remote branch. now there is a divergance handler that asks you if you want to force push anyway, which is very nice!
this change is aiming to fix the files still appearing in unstaged files even though it was just comitted. also the Pushing command would say synced! when done, this was just a filler from the fetching feature. this now has a Pushed! status, the same has been added to pulling
this is a change that makes it able to have this view open without having any changes in the code. also makes it able to go into the commits pane and hit p to pull that commit
- Add ncurses-based interactive git diff viewer (gg dd command)
- Create three-pane layout: file list, commit history, and diff
content
- Implement file staging system with space/A keys for marking files
- Add commit workflow with C key and title input dialog
- Add push functionality with P key for individual commits
- Create dynamic status bar with context-sensitive keybindings
- Implement character-by-character text animations for status messages
- Add auto-sync functionality to refresh files/commits every 30
seconds
- Add spinning progress indicators for fetch/push operations
- Fix cursor flickering and improve window layout spacing
- Support number key navigation (1=files, 2=view, 3=commits)
- Add proper window clearing to prevent content overlap issues