Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mgit

(A version control system designed to track file changes)

Current Version: v0.0.1 (Pre-alpha)

Features & Status

  • Repository Initialization (mgit init): Creates the internal database structure to track your files.
  • Staging (mgit add): Adds file contents to the staging index.
  • Status Tracking (mgit status): Shows differences between the working directory and the staging area.
  • Recording Changes (mgit commit): can now record and maintain a linear history.

Why I'm Building This

This project is a personal learning exercise driven by two main goals:

  • Understanding Git: The best way to understand how a tool works is to build it from scratch. Implementing the core mechanics of Git helps demystify how it manages, tracks, and stores data.
  • Learning Rust: I wanted a practical, hands-on project to practice and deepen my understanding of Rust. A version control system provides a great way to explore Rust's safety guarantees, ownership model, and file system APIs.

Command Line Interface

mgit [-v | --version] [-h | --help] <COMMANDS> <SUBCOMMANDS>

COMMANDS:
    init      Create an empty mgit repository or reinitialize an existing one
    add       Add file contents to the staging index
    commit    Record changes to the repository history
    status    Show the working tree status

Run 'mgit <COMMANDS> --help' for more information on a specific command.

Getting Started

Installation

To run this project locally, clone the repository and build it from the source:

Clone the repository

git clone https://github.com/debuggerdragon311/mgit.git
cd mgit

Build/Run instructions

cargo build --release

License

This project is licensed under the AGPLv3 License - see the LICENSE file for details.

About

version control system designed to track file changes.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages