This project is a custom Version Control System (VCS) built in C++. It allows users to add files to a staging area, create commits with a message, and store delta changes to track modifications between different versions of files. The VCS also maintains metadata for tracking file versions, commit messages, and timestamps.
- Add Files to Staging Area: Add files to a temporary staging area to prepare them for committing.
- Commit Changes: Create commits with descriptive messages and automatically log them in the
METADATAfile. - Track File Versions: Store each file's delta (differences) in a versioned structure to efficiently track changes over time.
- Restore File: To restore file to any of the previous verison
- Metadata Logging: Log the number of committed files, commit messages, and timestamps for easy tracking.
- Clone the Repository:
gh repo clone Dhruv0427/version_control_system
- Build the Project:
use this command to build this project
make
- initialization
use this command to initialize version control system
./myvcs init
- add file to add file use this command
./myvcs add <filename> <filename>
- commit file to commit file use this command
./myvcs commit -m "message" - log feature to view log of the file use command
./myvcs log
- restore to restore any file use this command
./myvcs restore
Restore format to restore file after using above command it will ask for filename and corresponding version to which we want to restore