A tool for supporting git/GitHub operation for the novice developers.
Learning the git and GitHub operation is difficult for novice programmers.
Since even programming is a pretty complicated task, it becomes challenging to consider various kinds of operation except programming, such as good commit, pull requests, etc.
However, the recent development process ordinary manages product versions with SCM such as git
.
Therefore, it requires the novices should learn them as soon as possible.
Then, we focus on the commits' timing, and the proposed system recommends commit
at the suitable timing.
Also, the recommendation text contains a simple help message for git
.
From above two manners, we expect the novices accustomed git
.
The proposed system, named kani
, records the terminal's executed commands and runs the recommendation engine by each recoding.
The recommendation engine analyzes the histories of the executed commands with their status codes and statuses of git
.
- Records the executed command in your terminal in your repository,
- Runs analysis scripts by each command execution,
- Recommends the timing of
git commit
, andgit push
.
- Recommends the timing of
- Shows simple usage of
git commit
andgit push
.
kani
recommends the operations of git and GitHub from behaviors of novices in the terminal.
Therefore, the goal of kani
is to become unnecessary for novices, like walking assist instrument for babies.
For this, kani
wants to measure git/GitHub operation maturity rates (GOMR) for the novices.
GOMR would measure by the following methods.
- Matching rates with the behaviors of experts (recording beforehand)
- Following rates of Git flow, GitHub flow, or GitLab flow.
kani
runs on zsh, and bash only.
Not work on other shells (csh
, ksh
, fish
, ...).
- rcaloras/bash-preexec
- Runs
kani
on bash environment.
- Runs
Type the following two commands, then kani
will be installed into your /usr/local/opt/kani
brew tap tamadalab/brew
brew install kani
- Clone the
kani
repository from GitHub (tamadalab/kani
).git clone https://github.com/tamadalab/kani.git
- Move to the cloned
kani
directory.cd kani
- Compile the sources.
make
- Make distribution file.
make dist
- Extract the suitable archive file in
dist
directory in your system.tar xvfz dist/kani-1.0.0-windows-amd64.tar.gz -C INSTALL_DIR
- Set
KANI_HOME
environment value to yourINSTALL_DIR
setenv KANI_HOME=${INSTALL_DIR}
- the above line should be written in your
.bashrc
or.zshrc
.
At first, write the following snippet in your login shell initializer (.bashrc
, or .zshrc
)
eval "$(kani init -)"
- Choose your
git
repositories to runkani
, - Change directory to your local
git
repository, - Run
kani init
command for preparing thekani
running on the repository.
If you want to stop recoding command temporary, run kani disable
(kani
creates file disable
on .kani
directory).
Then, want to start recoding again, run kani enable
.
If typing kani deinit
in a particular repository, kani never records anymore.
After that, typing kani init
, kani
starts recoding again.
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. See Other Information below.
This image comes from https://freesvg.org/crab-image (Public Domain)
We do not know.
Note that kani
means crab in Japanese.
- Lassi Haaranen, and Teemu Lehtinen, "Teaching Git on the Side: Version Control System as a Course Platform," Proc. the 2015 ACM Conference on In novation and Technology in Computer Science Education, pp. 87–92, DOI: 10.1145/2729094.2742608, June 2015, https://dl.acm.org/doi/10.1145/2729094.2742608.
- Ville Isomöttönen, and Michael Cochez, "Challenges and Confusions in Learning Version Control with Git," Proc. Information and Communication Technologies in Education, Research, and Industrial Applications (ICTERI 2014), pp. 178-193, DOI: 10.1007/978-3-319-13206-8_9, November 2014, https://link.springer.com/chapter/10.1007/978-3-319-13206-8_9.
- 井上 拓海, 小島 遥一郎, 藤原 賢二, 井垣 宏, "版管理システム利用時のソフトウェア開発フロー遵守状況可視化手法の検討", 信学技法, No.SS2017-55, January 2018.