Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 4.04 KB

README.ja.md

File metadata and controls

110 lines (74 loc) · 4.04 KB

🦀 kani

初学者のためのGit/GitHub操作補助フレームワーク.

License Version DOI

tamada/brew/kani

Discussion

本ツールは2020年度特別研究IIで作成

https://github.com/tamadalab/2020bthesis_masuda

実装機能概要

  • コンパイル時にcommit差分を比較し,規定値以上の変更があった場合commitを促す.
  • 連続したエラーが解消された時点で,commitを促す.
  • commitを促す際,add commit pushの簡易にhelp表示する.

未修正点

  • エラー情報を蓄積するDBが1つに集約されているため,ファイルAのエラーが修正されないまま別ファイルを実行すると,ファイルAのエラー情報の影響を受ける.
  • コンパイルはgccとclangの場合と手動で制限している該当ファイル
  • .gitフォルダが上位ディレクトリにない場合,.git無いよとエラー出る(操作には影響ない).
  • 正直スパゲッティになってるファイルがある.

評価実験用

テンプレートリポジトリ

https://github.com/tmdlab2020TestTeam/testTemplate

GitHubClassroomGitHub Classroomとは

https://classroom.github.com/classrooms/73564814-tmdlab2020testteam-githubclassroom/assignments/tmdlab-test-team

kaniの機能詳細

分析の一時停止/再開

$ git kani disable/enable
  • disablePROJECT_ROOT/.kani/disable ファイルが作成される.
  • enable を実行すると,PROJECT_ROOT/.kani/disable ファイルが削除される.

分析対象から外す

$ git kani deinit
  • $HOME/.config/kani/projectsからプロジェクトのパスが削除される.

⚓ Install

🍺 Homebrew

$ brew tap tamadalab/brew
$ brew install kani

上記コマンドにて,以下のようなディレクトリが作成される. Installing kani by Homebrew, the following directories are built.

/usr/local/Celler/kani
├── README.md
├── analyses
│   ├── recommend.py (どういった条件でcommitを促すか決める所)
│   └── commit_guide.txt (commitを促す際の文)
├── bin
│   └── git-kani
└── scripts # utilities (hook functions)
    ├── chpwd_hook.sh
    ├── periodic_hook.sh
    ├── precmd_hook.sh
    ├── preexec_hook.sh
    ├── find-project-dir.sh (現在のディレクトリからプロジェクトのルートを取得するスクリプト)
    └── is-target-project.sh (現在のディレクトリのプロジェクトがkaniの分析対象かどうかを判定するスクリプト)

Initialize kani on your environment.

Write the following line into your ~/.zshrc.

eval "$(git kani init -)"

hook関数についてはこの資料を参照してください.

Enabling kani on your project.

Type the following command.

$ git kani init
  • 上記のコマンドで .git と同じディレクトリに .kani ディレクトリが作成される.

    • .kani ディレクトリには,analysesディレクトリにあるスクリプトがコピーされる.
  • $HOME/.config/kani/projects にプロジェクトのパスが追記される.

  • PROJECT_ROOT/.kani には,分析結果のデータを格納している.