A console-based Java application simulating a lightweight version control system with branching, merging, undo/redo, and code review comments — built purely using core data structures like linked lists, trees, stacks, and hash maps.
- Create, edit, and delete lines in multiple files
- Commit snapshots of project files with commit messages
- Manage multiple branches, switch between them
- Undo and redo file edits before committing
- View commit history as a commit graph (tree structure)
- Store and retrieve code review comments linked to specific file lines
- Console-driven user interface for easy interaction
- LinkedList — for storing lines of code and efficient edits
- Trees — to represent commit history and branching
- Stacks — to implement undo/redo operations
- HashMap — for fast lookup of files, commits, and code review comments
- Queues — to manage merge conflicts and review tasks (planned)
- Java 8 or higher
- Maven or Gradle (optional, for building)
-
Clone the repository: git clone https://github.com/singh-aadya/CodeReviewVCS.git
-
Compile the project: javac -d bin src/main/java/com/yourname/vcs/**/*.java
-
Run the console UI: java -cp bin com.yourname.vcs.ui.ConsoleUI
- Follow the console menu prompts to create files, edit content, commit changes, create branches, and more.
- Undo and redo edits before committing to keep your code clean.
- View commit history and switch between branches seamlessly.
- Merge branches with conflict detection and resolution
- Persist data to disk for session saving/loading
- Enhanced code review workflow with notifications
- File-level history and rollback options