Syncro is a version control system (VCS) inspired by Git. It is a minimal implementation designed for learning purposes, offering insight into how version control systems work under the hood. Syncro provides basic functionality to manage and track changes in files and directories. This project is open to collaboration and contributions from developers interested in version control systems or learning low-level implementations of such tools.
- Initialize repositories with a structured directory layout.
- Track changes and manage references (branches and tags).
- Add files to the version control system.
- Remove files from the version control system.
- Commit changes to record modifications in the repository.
- Simple implementation to understand core VCS concepts.
Syncro was created as a personal project to explore the internals of version control systems like Git. It aims to demystify concepts like:
- Directory and file structure for versioning.
- References (e.g., branches and tags).
- HEAD management.
- GCC or any C compiler.
- Basic understanding of C programming and file systems.
-
Clone the repository:
git clone https://github.com/IntegerAlex/syncro.git cd syncro
-
Build the project:
make
-
Install the executable:
make install
-
Run the executable:
syncro init
-
Initialize a repository:
syncro init
This creates a
.syncro
directory with the necessary structure for version control. -
Add files to version control:
syncro add <file1> <file2> ...
This adds the specified files to the repository's staging area.
-
Remove files from version control:
syncro remove <file1> <file2> ...
This removes the specified files from the repository.
-
Commit changes:
syncro commit -m "Commit message"
This records changes made to the files in the repository with a commit message.
We welcome contributions! Here’s how you can help:
- Fork the repository.
- Create a new branch for your feature.
- Commit your changes.
- Push to your branch.
- Open a pull request.
This project is licensed under the Global Open Source Software Free License (GOFL-V1).
For details, see the LICENSE file.
Feel free to connect and discuss ideas or improvements:
- Author: Akshat Kotpalliwar
- GitHub: IntegerAlex