Inspiration

As developers, we know the frustration of dealing with merge conflicts—especially when they interrupt our workflow and slow down our progress. We wanted to build a tool that takes the complexity out of conflict resolution and makes it as simple as possible, allowing us to get back to coding with minimal disruptions.

What it does

Merge is a one of a kind, command-line tool that visually highlights merge conflicts and provides intuitive options to resolve them with a single keystroke. By showing both current and incoming changes side by side, Merge makes it easy to decide which version to keep or merge both. It’s a fast, streamlined way to tackle conflicts without ever leaving the CLI environment.

How we built it

We built Merge using Python and the Textual framework for a clean CLI-based interface. The backend uses a combination of custom conflict detection logic and file staging management to handle and display conflicting sections in code files.

Challenges we ran into

One of the biggest challenges was building an interface within the CLI that feels as intuitive and visual as a GUI-based tool. We wanted to focus on accessibility by allowing users to to either type or click their merge resolution. Furthermore, implementing conflict resolution logic that integrated well with our interface took trial and error.

Accomplishments that we're proud of

We’re proud of creating a tool that simplifies a common pain point for developers and provides a seamless user experience within the command line! Building an effective visual layout within a CLI and fleshing out various features ranging from conflict resolution, resolution options, keyboard binding, and a couple user experience treats.

What we learned

We learned a lot about building interactive command-line interfaces and the intricacies of parsing and resolving merge conflicts through our own custom logic. We learned and implemented concepts such as Four Shot Chain of Thought and the Publisher Subscriber Model.

What's next for Merge

In the future, we plan to allow AI to player a larger role in our developer tool. We want to make it so that the AI can effectively solve the merge conflict for a user so they have more ease of mind.

Built With

Share this project:

Updates