8000 GitHub - HarrisonHall/mivs: minimal versioning software
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

HarrisonHall/mivs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mivs

mivs is minimal versioning software.

mivs is good for simple single-person/small-team projects.

Commands

mivs -i will initialize a mivs repository.

mivs -r "<comment>" will record the changes of the working repo as-is.

mivs -j <record_number> will alter the mivs repository and revert files to the specific record. current or latest will jump back to the present.

mivs -s "<info>" will search the mivs repo and print the corresponding records.

mivs -m <repo1> <repo2> <new_repo> merges the two mivs repos in a simple way, favoring the first timeline.

mivs -l will print a list of mivs records in chronological order.

How it works

Every mivs repo has a .mivs folder. Inside you'll find a structure like:

.mivs
|- mivs.yaml
|- records
 |- 0
  |- record.yaml
  |- ...
 |- 1
 |- ...
 |- latest
  |- record.yaml
  |- ...
  • mivs.yaml
    • A yaml file defining the following information
      • name of the mivs repo
      • a list of ignores
      • The last_record number
      • A list of records messages

Example

$ mkdir auto_readme_test
$ cd auto_readme_test
$ mivs -i
Initializing mivs
$ echo 'Hello world!'
$ mivs -r 'Created README'
Recording current state
$ mkdir src
$ echo 'print('\''wow!'\'')'
$ echo 'sq = lambda x : x**2'
$ mivs -r 'Added other code'
Recording current state
$ echo -e 'I added another sentence.\nOr two!'
$ mivs -r 'Updated README'
Recording current state
$ mivs -l
Initializing mivs
main
(0) 2021-04-06 00:23:21.710162: Created README
(1) 2021-04-06 00:23:21.763468: Added other code
(2) 2021-04-06 00:23:21.816855: Updated README
$ mivs -s README
Searching mivs
$ ls
README.md  src
$ mivs -j 0
Jumping to record 0
$ ls
$ mivs -j 1
Jumping to record 1
$ ls
README.md
$ mivs -j 2
Jumping to record 2
$ ls
README.md  src
$ cd ..

Requirements

  • Python3
  • Python pyyaml module
  • GNU/BSD diff and patch

FAQ

Why?

mivs is a personal project over the course of a few days. I don't necessarily think anyone should use this implementation of mivs. But it was fun to make nonetheless.

Wouldn't mivs be more minimal this way or that way?

Probably. I think mivs is cool because it does the least amount of work to actually even consider itself versioning software.

Isn't it ironic that this project is hosted on git?

Probably.

About

minimal versioning software

Resources

Stars

Watchers

Forks

Packages

No packages published
0