feat(source panel): implement source control panel#174
Conversation
|
Hi @alpemreelmas — are you still actively working on this PR? I already have the Git integration/UI working on my side as well, including the VS Code-like Source Control flow. Screenshot for context:
If you want, I can pick this up from your PR and help finish/polish it in case you don't have time to continue. Otherwise, I can open a separate PR for the feature so it doesn't stay blocked. Happy to coordinate either way — just let me know what you prefer. |
|
Adding @crynta here as well for visibility. If this PR is no longer active, I can help finish it from here or open a separate PR with the Git/source-control integration so the feature can keep moving. |
Actually I'd like to continue but my issue hasn't been confirmed yet. So for now I stopped because didn't know if this feature wanted by the owners and contributors. |
Hello, @viniraioli, I think we can do it together if you want or I can finish. I cannot access the photo you attached (404). I also consider similar to vscode source control and worked on it. It needs to be polished a little bit in the UI part. So yes, it is active and we can continue work on it. |
Sorry, I didn't see that the image wasn't available. |
|
Thanks, that makes sense. Since you're still active, I think the best path is to keep #174 as the main PR for this feature. I opened #243 to make the maintainer decision explicit, since you mentioned you paused waiting for confirmation. @crynta if you're okay with this direction, I think we can continue here. @alpemreelmas feel free to keep pushing updates on this PR. I'm happy to help with UI polish/review or take on follow-up pieces if that makes it easier to get this merged. |
|
@viniraioli Actually your UI is much much much better than me :). That's really nice one. I updated the PR and solved the conflicts. If @crynta is the same page as we, we can finish this in here. @viniraioli I think we can use my git rust part, your UI and finish it. The only think is that during solving conflicts, I have removed one part of my code which is probably cause failing the build. It was function sameOrigin(a: string, b: string): boolean {
try {
const ua = new URL(a);
const ub = new URL(b);
return ua.host === ub.host && ua.protocol === ub.protocol;
} catch {
return a === b;
}
}
function dirname(path: string | null): string | null {
if (!path) return null;
const normalized = path.replace(/\\/g, "/");
const idx = normalized.lastIndexOf("/");
if (idx <= 0) return normalized;
return normalized.slice(0, idx);
}Because I thought this was the wrong way to implement this part. As I mentioned, this is my first PR on the open source ecosystem and first time using rust in this kind of project. I can update my backend ( rust codes ) if any feedback I can get. |
|
@alpemreelmas sounds good to me. I'm already working on some improvements and UI/code polish on top of the current PR so we can refine it together here. I also like where the Git UI ended up being placed in your PR. From a UX perspective, I think this location works better than the sidebar approach I initially made. If possible, could you also give me permission to edit/push to this PR branch? That would make it easier for me to add these improvements directly here and we can iterate on them together. Screenshot of what I have on my side at the moment:
|
|
@alpemreelmas @viniraioli, sorry for the delay, was buried in some deep terminal's renderer/perf work. Source control was one of the first features on the roadmap, so I'm glad you're both pushing it. I took a closer look at the diff: you already picked the right path by shelling out to system git. No new deps (system git), exactly what we need. The foundation is great. I’ll take it from here, review everything, and polish a few things I noticed and Terax will have source control in the next update :)) |
|
@crynta @alpemreelmas thanks for confirming the direction. Since this feature was already confirmed as wanted, I opened a follow-up PR here: #259. It is based on the work from @alpemreelmas in #174 and includes the additional source-control polish I had locally: the Git panel UI, staged/unstaged flow, diff tabs, status badge, discard support, commit/push affordances, and AI-generated Conventional Commit messages. It keeps the same approach you called out here: shelling out to the system Big thanks and full credit to @alpemreelmas for starting the original implementation, opening #174, and laying down the Rust/Git foundation this work builds on. I really appreciate the collaboration and the first pass that made it easier to move the feature forward. I also merged the latest Happy for #259 to be used as the consolidated review target, or for any parts of it to be pulled back into #174 if you prefer to keep the original draft PR as the landing PR. |
|
@viniraioli I’m about to release the new v0.6.5 version with performance optimizations. |
@crynta Sounds great, thank you! Thanks again for taking this forward. |




What
Implement source control panel
Why
Working with 3th party of coding agents, you need to review changes.
How
Supporting git native commands by UI
Testing
I personally tested it manually. I see that this part is missing in my PR, I'll work on it.
pnpm exec tsc --noEmitcleansrc-tauri/)cargo checkcleanpnpm tauri devScreenshots / GIFs
Notes for reviewer
Please consider, this is my first open source contribution in my life. I'm totally open any feedback related my code or advice for open source contribution.