https://github.com/integeralex/syncro
Why just learn GIT, Build your own GIT
https://github.com/integeralex/syncro
Last synced: 10 months ago
JSON representation
Why just learn GIT, Build your own GIT
- Host: GitHub
- URL: https://github.com/integeralex/syncro
- Owner: IntegerAlex
- License: other
- Created: 2025-01-01T11:11:13.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-17T22:42:39.000Z (11 months ago)
- Last Synced: 2025-02-26T05:58:02.913Z (11 months ago)
- Language: C
- Homepage:
- Size: 198 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
---
# Syncro - Version Control System (VCS)
[](https://scorecard.dev/viewer/?uri=github.com/IntegerAlex/syncro)
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.
## Features
- **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.
## Purpose
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.
## Getting Started
### Prerequisites
- GCC or any C compiler.
- Basic understanding of C programming and file systems.
### Installation
1. Clone the repository:
```bash
git clone https://github.com/IntegerAlex/syncro.git
cd syncro
```
2. Build the project:
```bash
make
```
3. Install the executable:
```bash
make install
```
4. Run the executable:
```bash
syncro init
```
### Usage
- **Initialize a repository**:
```bash
syncro init
```
This creates a `.syncro` directory with the necessary structure for version control.
- **Add files to version control**:
```bash
syncro add ...
```
This adds the specified files to the repository's staging area.
- **Remove files from version control**:
```bash
syncro remove ...
```
This removes the specified files from the repository.
- **Commit changes**:
```bash
syncro commit -m "Commit message"
```
This records changes made to the files in the repository with a commit message.
## Contributing
We welcome contributions! Here’s how you can help:
1. Fork the repository.
2. Create a new branch for your feature.
3. Commit your changes.
4. Push to your branch.
5. Open a pull request.
## License
This project is licensed under the **Global Open Source Software Free License (GOFL-V1)**.
For details, see the [LICENSE](LICENSE.md) file.
## Contact
Feel free to connect and discuss ideas or improvements:
- **Author:** Akshat Kotpalliwar
- **GitHub:** [IntegerAlex](https://github.com/IntegerAlex)
---