todo-git
todo.txtでプログラミングの開発を管理している場合に向いています。
redmineなどでプロジェクトを管理して場合は向きません。
todo.txtでTODOを作成します。
そのTODOを元にgit flowでブランチを作成します。
featureとreleaseブランチを作成することができます。
使い方
インストール
インストールは、パスの通ったところにtodo-git.shファイルを置きます。
chmod +x todo_git.sh
設定
todo.txtを読み込んでgitのブランチを作成するので、テキストエディタで
todo-git.shを開いて、todo.txtのパスを登録します。
バックアップファイルはDefaultではホームに作成します。
How to do
- todo.txtの最初の単語はブランチ名になります。
- 途中で操作を中止したい場合、文字を入力してください。
todo.sh add "new todo idea"
---> new todo set
todo-git.sh -s---> "git flow feature start"
... (show some massage)
1.new: todo idea
----> inital word should be branch name
Select Number >>> 1
----> new feature branch (feature/new) is made
- release branchを切るとき
todo-git.sh -r
... (show some massage and tag list)
- release branchを終わるとき
todo-git.sh -o
... (show list)
---> select number:
<参考>
http://momiji-mac.com/wp/2012/08/08/todo-gitの流れを書いてみました/
パラメータの解説
./todo_git.sh -opt
s
:
git flow feature start ...f
:
git flow feature finish ...e
:
edit todo.txt directlyl
:
show todo list
(リストに空行がある場合、自動的に削除します)r
:
git flow release start ...
select "q" --> cancelo
:
git flow release finish ...d
:
delete item of todo list ...x
:
exchange items from todo list ...
=== 追加項目 ===
b
: sub-Feature branch startm
: sub-Feature branch marge and deleteu
: sub-Feature branch just delete (= un-marge)
-
追加項目の説明:sub-Featureという概念を導入した。
featureブランチ(test)で作業していて、新しい試したいアイデアを思いついたとする。
<< 通常 >>
(git)-[feature/test] > git checkout -b newTest
(git)-[newTest] >
<作業する…>
(git)-[newTest] > git checkout feature/test
(git)-[feature/test] > git marge newTest
(git)-[feature/test] > git branch -d newTest
<< sub-Featureを使う場合 >>
(git)-[feature/test] > todo_git.sh -b newTest
(git)-[newTest] >
<作業する…>
(git)-[newTest] > todo_git.sh -m
merge and delete branch
1 develop
2 feature/subTest
3 master
4 * newTest
Select feature branch --> 2 <--戻りたいfeatureを選択する
... massage ...
つまり、margeと要らなくなったブランチを削除します。
個人的ソフト開発において”チケット駆動開発モドキ”を実現するためのシェルスクリプト。
Download:todo-git
Redmineを導入すればもっと高度で、リッチなインターフェイスでチケット駆動開発が可能であるが、 個人的ソフト開発においては、そこまで手を広げる必要はまずない。
また、実際にはプロジェクトごとにTODOを書きだしておいて、開発すればだいたいは用をなす。
todo.txtというテキストとシェルスクリプトの TODOソフトがあるが、入力が簡単で動作が軽い。
一方、近頃はバージョン管理にgit flowを利用し、コードの管理・メンテナンスが便利になってきている。新しい機能を追加する場合、featureブランチを切ることが多いと思われる。
どちらもシェルを使用しますので、マウスを使わず便利です。
そこで、todo.txtとgit flowを融合させ、チケット駆動開発モドキを実現させる。
<インストール方法>
todo.txtとgit flowをインストールする
todo_gitダウンロードしパスの通ったところに置く
todo_git.shはシェルスクリプトなので、実行できるようにchmod -xしておく
todo_git.shをエディターで開き、TODOFILEとBACKUPFILEを指定する
todo.txtにtodoを登録します
git flowでプロジェクトを初期化します
<使用方法> ...実際はインデントされません
◎ branchTestはgitリポ
cd ~/branchTest
$ls
./ ../ .git/ hihi
◎ ヘルプ表示で必要なオプションを表示します。
◎ 基本的に何かしらのオプションが必要です。
$todo-git.sh -h
*** Help ***
Usage: todo_git.sh -[sflerodxph] [todo list number]
ex)
todo_git.sh -s ---> 番号がわからない場合
todo_git.sh -s 1 --->予め番号がわかっている場合
OPTION
s: git flow feature Start
f: git flow feature Finish
e: Edit todo.txt
l: show todo List
r: git flow Release start
o: git flow Release finish
d: Delite item from todo list
x: items order eXchange
p: show list of Project
h: show help
◎ todo.txt のlistを表示します。
$todo-git.sh -l
—————————–
Git branch make from todo.txt
—————————–
———————-
back up file is Found
———————-
show list
1.hhihi : dfjap
2.haohf : dhaohfao
3.poda : wweqf
◎ feature branchを切る場合
$todo-git.sh -l
git flow feature start
.git exist
1.hhihi : dfjap
2.haohf : dhaohfao
3.poda : wweqf
4.hoge : +todotxt
Select number >>> 4
Switched to a new branch ‘feature/hoge’
◎ todo.txtのリストで番号がわかっている場合は、以下のようにもできます。
$todo-git.sh -l 4
◎ feature branchを終了する場合
(featureブランチと同じtodoの前に">>>"がついています)
todo-git.sh -f
git flow feature finish
1.hhihi : dfjap
2.haohf : dhaohfao
3.poda : wweqf
4.>>>hoge : +todotxt
Select number >>> 4
hoge
◎ release branchを切る場合
(参考にtagのリストが表示されます)
todo-git.sh -r
git flow release start
tag list
0.1
0.2
0.3
set the tag —>0.4
Switched to a new branch ‘release/0.4′
4 >>>0.4:(release)
TODO: 4 added.
◎ release branchを終了する場合
(releaseブランチには">>>tag:(release)"が表示されています)
todo-git.sh -o
git flow release finish
1.hhihi : dfjap
2.haohf : dhaohfao
3.poda : wweqf
4. >>>0.4:(release) : … …
Select number –> 4
◎ develop branchに戻ります
追加項目
todo-git.sh久しぶりにアップデートした。
変更点:sub-Featureという概念を導入した。
featureブランチ(test)で作業していて、新しい試したいアイデアを思いついたと
する。
<< 通常 >>
(git)-[feature/test] > git checkout -b newTest
(git)-[newTest] >
<作業する…>
(git)-[newTest] > git checkout feature/test
(git)-[feature/test] > git marge newTest
(git)-[feature/test] > git branch -d newTest
<< sub-Featureを使う場合 >>
(git)-[feature/test] > todo_git.sh -b newTest
(git)-[newTest] >
<作業する…>
(git)-[newTest] > todo_git.sh -m
merge and delete branch1 develop
2 feature/subTest
3 master
4 * newTest
Select feature branch --> 2 <--戻りたいfeatureを選択する
... massage ...
つまり、margeと要らなくなったブランチを削除します。
注意!試しのブランチはコマンド一発で削除されます!
(git)-[feature/test] > todo_git.sh -b newTest
(git)-[newTest] >
<作業する…>
(git)-[newTest] > todo_git.sh -u <-- ここ!
ライセンス
Copyright 2012 momiji-mac.com. All rights reserved.
Licensed under the [BSD License][BSD]
Distributed under the [MIT License][mit].
ソースコード形式かバイナリ形式か、変更するかしないかを問わず、以下の条件を満たす場合に限り、再頒布および使用が許可されます。
ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、および下記免責条項を含めること。
バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の資料に、上記の著作権表示、本条件一覧、および下記免責条項を含めること。
書面による特別の許可なしに、本ソフトウェアから派生した製品の宣伝または販売促進に、momiji-mac.comの名前またはコントリビューターの名前を使用してはならない。
本ソフトウェアは、著作権者およびコントリビューターによって「現状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、および特定の目的に対する適合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありません。著作権者もコントリビューターも、事由のいかんを問わず、 損害発生の原因いかんを問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その他の)不法行為であるかを問わず、仮にそのような損害が発生する可能性を知らされていたとしても、本ソフトウェアの使用によって発生した(代替品または代用サービスの調達、使用の喪失、データの喪失、利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害について、一切責任を負わないものとします。