BTSやバーンダウンチャートが標準搭載された新しいDVCS、veracityがおもしろい
ちょっと面白いものを見つけたので紹介。
DVCSといえばMercurialやGitが有名だ。
BitbucketやGitHubのお陰でDVCSをインストールするだけで個人でも簡単にBTSを利用できるようになった。
しかし、仕事で使っていると外部のリポジトリにpushできないこともある。
そういった場合はTracやRedmineなど本格的なBTSを導入する必要があるだろう。
ただ、ちょっとしたプロダクトを作るのにわざわざBTSをインストールするのは面倒だと感じることもある。
そんなときにちょっと使ってみたいDVCSがあった。それがveracityだ。
これはなに?
2010年ごろにリリースされたDVCS。以下のような特徴を持つ。InfoQでも紹介されていたようだ。
- Apache License v2
- Mac、Windowsで利用可能
- CおよびJavaScriptで記述されており、拡張機能をJavaScriptで作成できる
- データ構造がJSON形式
- 履歴管理のDBを分散型DBで管理する
- BTS、リポジトリビューワー、バーンダウンチャート、ビルド管理、ユーザーアカウント管理のWebUIが標準搭載されている
- Tortoiseシェル拡張が開発中
こちらにリポジトリビューワーのデモサイトがある。
どうやって使うの?
ダウンロード画面から自分の環境に合わせたバイナリをインストールする。
今回はWindows 64-bit MSIを使った。
vv から始めるコマンドで利用することが出来る。
$ vv help Usage: vv command [options] Commands: add Pend the addition of a file or directory to the current r addremove Pend additions for all Found files and removals for all L branch Create, delete, manipulate or list named branches cat Unix-style cat on a repository file checkout Create a new working copy of a repository version clone Create a new instance of an existing repository comment Add a comment to a changeset commit Commit the pending changeset to the repository config View and manipulate configuration settings diff Show differences between versions of files or folders diffmerge Diff from root using SourceGear DiffMerge export Export a repository version to a non-version-controlled d fast-export Export a repository as a fast-import stream fast-import Import from a fast-import stream heads List the heads of all active named branches help List supported commands history Show the history of a repository, directory, or file incoming List changesets that would be pulled init Create a new repository and optionally create a working c leaves List all leaves of a repository lock Lock a file locks Show the status of all locks on the current branch merge Merge branches move Pend the moving of a file or directory outgoing List changesets that would be pushed parents List the parent changesets of the working copy pull Pull committed changes from another repository instance push Push committed changes to another repository instance remove Pend the removal of an item from the current repository rename Pend the renaming of an item in the current repository repo Create, list, delete, rename, or show details about repos resolve Resolve merge conflicts revert Revert changes in the pending changeset serve Launch veracity in server mode stamp Stamp a changeset with a user-specified label status Show the status of the working copy tag Tag the specified changeset with a unique, user-specified unlock Unlock a file update Update the working copy contents to match a repository ve user Create, rename, or list user accounts whoami Set or print current user account zip Export a repository version to a zip file input "vv help command" for details on a particular command or topic
コマンド体系はややMercurialに似ている。
基本的な使い方は以下
$ vv init my_first_repo testdir $ cd testdir $ vv whoami --create myemail@example.com $ echo Hello, world > file.txt $ vv add file.txt $ vv commit -m "my first commit!"
また、他のリポジトリからクローンして利用する場合には以下のようにする。
$ vv clone http://vvhost/repos/repo my_repo $ vv checkout my_repo testdir $ cd testdir $ vv whoami --create myemail@example.com $ echo Hello, world > file.txt $ vv add file.txt $ vv commit -m "my first commit!" $ vv push
試しにデモサイトのリポジトリをクローンしてみた。
$ vv clone http://public.veracity-scm.com/repos/veracity veracity $ vv checkout veracity -b master veracity_test
serveコマンドでWebUIを立ち上げることができる
$ vv serve --port 8080
ブラウザでアクセスするとWebUIから課題(workitem)の登録やソース・バーンダウンチャートの閲覧ができる。
- サマリー
- ヒストリーブラウザ
- リポジトリブラウザ
- ワークアイテムの登録
- バーンダウンチャート
課題管理の方法はAgileを強く意識して作られているようだ。
diffコマンドで日本語が文字化けするなどの問題はあるが、ちょっとしたプロジェクトにさくっと導入するには便利かもしれない。