A simple version control system that mimics Git. This project allows users to manage and track changes in their files and projects with features such as repository initialization, adding files, and submitting them to a remote server.
- Initialize a new repository
- Add files for tracking
- Submit changes to a remote server
- Clone projects from the server
- List available projects
(CMake):
mkdir -p build && cd build
cmake ..
cmake --build .Single-file compile (pkg-config fallback):
g++ VCP.cpp FTP.cpp -o vcp -std=c++17 $(pkg-config --cflags --libs openssl)
g++ Server/VCPserver.cpp -o vcpserver -std=c++17-
Note: The server (
vcpserver) is intended to run on a separate machine or device. Build/compilevcpserveron the server device (or copy the binary there), start it, and ensure it is running before using client commands that communicate with the server (for examplesubmit,list, orclone). -
Initialize a repository:
./vcp init <repo-name>- Add a file:
./vcp add <file>- Submit changes:
./vcp submit- Run the server:
./vcpserverManual (Homebrew) macOS example:
g++ VCP.cpp FTP.cpp -o vcp -std=c++17 -I$(brew --prefix openssl@3)/include -L$(brew --prefix openssl@3)/lib -Wl,-rpath,$(brew --prefix openssl@3)/lib -lssl -lcrypto
g++ Server/VCPserver.cpp -o vcpserver -std=c++17You are welcome to contribute! If you find a bug or have an idea for a feature, feel free to fork the repository and submit a pull request.
This project is licensed under the BSD 3-Clause License.