Skip to content
/ GitLite Public

This project implements a version control system for CSV data using tree-based data structures like AVL, B Tree, or Red-Black Tree. It supports large datasets by storing tree nodes as individual files, allowing memory-efficient operations. Key features include repository initialization, branching, committing changes, and switching branch

Notifications You must be signed in to change notification settings

eman06/GitLite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

GitLite

This project implements a version control system for CSV data using tree-based data structures like AVL, B Tree, or Red-Black Tree. It supports large datasets by storing tree nodes as individual files, allowing memory-efficient operations. Key features include repository initialization, branching, committing changes, and switching branch

  1. Initialize Repository (init Command) Command: init

Description: Initializes the repository, prompting the user to upload a CSV file and choose a data structure (AVL Tree, B Tree, or Red-Black Tree).

Process:

Uploads a large CSV file. Prompts the user to select a tree structure and (for B Tree) its order. Allows the user to specify the column for tree organization by displaying column names from the first line of the file. Constructs the tree, storing each node as a separate file containing node data, parent, and child references. Performance: Optimized for large datasets by loading only necessary data into memory.

  1. Commit Changes (commit Command) Command: commit "message" Description: Saves the current state of the tree structure, creating a new version of the repository along with a user-provided commit message.
  2. Branching with Folders (branch Command) Command: branch <branch_name> Description: Creates a new branch stored in a separate folder, duplicating the current tree and data to allow independent modifications. Process: A new folder is created for the branch. All tree nodes and files are copied to the branch folder for isolated work.

About

This project implements a version control system for CSV data using tree-based data structures like AVL, B Tree, or Red-Black Tree. It supports large datasets by storing tree nodes as individual files, allowing memory-efficient operations. Key features include repository initialization, branching, committing changes, and switching branch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages