8000 GitHub - diegopacheco/kit: kit: Git-like written in kotlin
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

diegopacheco/kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kit

Git-like implemented in Kotlin 2.x.

Kit Logo

Build

./mvnw clean install 

Rationale

  • Kotlin 2.x, Java 22.
  • For fun, and it's a lot of fun.
  • No dependencies, no libs, no frameworks
  • No Branches becase Trunk-Based Development (TBD) is the way to go.
  • Only ~150 LoC

Features

Supported commands:

  • kit init
  • kit commit
  • kit clone
  • kit restore
  • kit log

Demo

❯ java -jar ./kit.jar init
Kit repository already initialized.
❯ ls
kit.jar  readme.txt
❯ java -jar ./kit.jar add readme.txt
Added readme.txt to index.
❯ java -jar ./kit.jar log
No commits found.
❯ java -jar ./kit.jar commit
Committed as e9aa349d587441404449567c8c18bfb46a500dbd
❯ java -jar ./kit.jar log
Commit: e9aa349d587441404449567c8c18bfb46a500dbd
Date: 2025-05-24 12:08:20
Message: No message
------------------------
❯ ls .kit/commits/e9aa349d587441404449567c8c18bfb46a500dbd
.kit/commits/e9aa349d587441404449567c8c18bfb46a500dbd
❯ cat .kit/commits/e9aa349d587441404449567c8c18bfb46a500dbd
timestamp: 2025-05-24 12:08:20
message: No message
readme.txt:e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
❯ cat .kit/index
❯ cat .kit/objects/e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
1

cloning the repo

❯ java -jar ./kit.jar clone /tmp/kitfun .
Cloned repo to /tmp/clones/.
❯ ls
kit.jar  readme.txt
❯ cat readme.txt
1

restore

❯ ./kit clone /tmp/kitfun
Missing destination path
❯ ./kit clone /tmp/kitfun .
Cloned repo to /tmp/clones/.
❯ ls
kit  kit.jar  readme.txt
❯ cat readme.txt
1
❯ echo 2 > readme.txt
❯ ./kit add readme.txt
zsh: permission denied: ./kit
❯ chmod +x ./kit
❯ ./kit add readme.txt
Added readme.txt to index.
❯ ./kit commit "change from 1 to 2"
Committed as 356f9976a12a6dd9eae0d8a61eea704e69c730c2
❯ ./kit log
Commit: e9aa349d587441404449567c8c18bfb46a500dbd
Date: 2025-05-24 12:08:20
Message: No message
------------------------
Commit: 356f9976a12a6dd9eae0d8a61eea704e69c730c2
Date: 2025-05-24 12:20:02
Message: change from 1 to 2
------------------------
❯ cat readme.txt
2
❯ ./kit restore e9aa349d587441404449567c8c18bfb46a500dbd
Restored to commit e9aa349d587441404449567c8c18bfb46a500dbd
❯ cat readme.txt
1

commit multiple files

echo a > a.txt
❯ echo b > b.txt
❯ ./kit add .
File . does not exist or is not a file.
❯ ./kit add a.txt b.txt
Added a.txt to index.
❯ ./kit add b.txt
Added b.txt to index.
❯ ./kit commit "added and b"
Committed as 85401b16e81b5d317580db2ea817b383e128a062
❯ ./kit log
Commit: e9aa349d587441404449567c8c18bfb46a500dbd
Date: 2025-05-24 12:08:20
Message: No message
------------------------
Commit: 356f9976a12a6dd9eae0d8a61eea704e69c730c2
Date: 2025-05-24 12:20:02
Message: change from 1 to 2
------------------------
Commit: 85401b16e81b5d317580db2ea817b383e128a062
Date: 2025-05-24 12:30:23
Message: added and b
------------------------
❯ ls
a.txt  b.txt  kit  kit.jar  readme.txt
❯ ls .kit/objects/e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
.kit/objects/e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
❯ cat .kit/objects/e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
1
❯ cat .kit/commits/e9aa349d587441404449567c8c18bfb46a500dbd
timestamp: 2025-05-24 12:08:20
message: No message
readme.txt:e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
❯ cat .kit/commits/85401b16e81b5d317580db2ea817b383e128a062
timestamp: 2025-05-24 12:30:23
message: added and b
a.txt:3f786850e387550fdab836ed7e6dc881de23001b
b.txt:89e6c98d92887913cadf06b2adb97f26cde4849b

About

kit: Git-like written in kotlin

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0