Package: pixv
PixV (Image Version Control System)PixV pypi package -> (https://pypi.org/project/pixv/).
Current stable release is pixv==0.1.2DescriptionPixV is an image version control system designed to efficiently manage image changes, minimizing storage usage. Accessible as a Python package via pip install pixv, PixV utilizes a graph data structure, where each node represents a version. The project boasts numerous features for accessing different versions and offers versatile functionalities.Table  of ContentsInstallationFeaturesOptimizationsDependenciesFuture Development GoalsAuthorsLicenseInstallationAny of the below methods can be used to access PixV.Install PixV with pippipinstallpixvClone the repository and use feature.py in src directory to access all commandsgitclonehttps://github.com/ReallyJaegar/PixV.gitpipinstall-rrequirements.txtpthon3 feature.py [COMMAND] [OPTIONS]FeaturesAdd New Image in PixVTo intialise the tree of version control system.
Further versions can only be created once the root node is created.It creates a root node (nodes.rootNode).pixvadd[path/to/image.png]--author[NAME]orpython3feature.pyadd[path/to/image.png]--author[NAME]"Commit ChangesTo add versions to the image once the root node (nodes.rootNode) has been initialised.Wont work if the nodes.rootNode has not been initialised.pixvcommit[path/to/image.png]--message[COMMITMESSAGE]--author[NAME]orpython3feature.pycommitpath/to/image.png--message"commit_message"--author"Name of author"Logs :Displays all the versions of the image availiable in the project along with their uuid ,author ,time, commit_message.To use the function run the following command in your terminal :pixvlogs[path/to/image.png]orpython3feature.pylogspath/to/image.pngPush and PullPush : It uploads local repository content to a remote repository.Pull :  It fetches changes from a remote repositoryCommands :Push:python3 feature.py push path/to/image.pngPull:python3 feature.py push path/to/image.pngorPush:pixv push [path/to/image.png]Pull:pixv push [path/to/image.png]Forward & RevertForward : Feature to move to Next availiable VersionRevert : Feature to move back to the previous VersionCommands:Forward :python3 feature.py forward path/to/image.pngRevert :python3 feature.py revert path/to/image.pngorForward :pixv forward [path/to/image.png]Revert :pixv feature.py revert [path/to/image.png]ShiftCan Shift to any version of the image using only this following command:python3 feature.py shift path/to/image.png --id [unique id of the version]orpixv shift [path/to/image.png] --id [unique id of the version]Note : unique id can be seen using Logs commandHistUsing this function the user will be able to visualize the complete graph structure in the terminal.python3 feature.py hist [image.png]orpixv hist [image.png]The graph structure will look like this:LocateUsing this function user can locate where head is pointing.python3 feature.py locate path/to/image.pngorpixv locate [path/to/image.png]OriginalBrings back the original version of the imagepython3 feature.py original path/to/image.pngorpixv original [path/to/image.png]ShowUsing the following command user can load the image on the current HEAD location in the imageGraph :python3 feature.py show [name of image]orpixv show [nameofimage]OptimizationsWe've enhanced the version control system to minimize storage usage by storing only the changes between consecutive versions.DependenciesPillow==10.0.1numpy==1.26.1requests==2.31.0matplotlib==3.8.2click==8.1.7If you want to create your own server for file sharing :Use the file_server.pyFuture Development GoalsAdding Merge OperationGUI for the Version Control SystemCan be operated for any type of image formatAuthors@Som Shekhar Sharma@Dhruv SagarLicenseMIT