-
Notifications
You must be signed in to change notification settings - Fork 201
Home
TicGit is now unmaintained, and subsequently deprecated. For the most up to date version of Ticgit, now renamed to Ticgit-ng to avoid gem namespace clashes, see https://github.com/jeffWelling/ticgit
For questions and feature discussion, we’ve got a google group:
http://groups.google.com/group/ticgit (DEPRECATED: See ‘Updates’ at the bottom)
TicGit is a simple ticketing system, roughly similar to the Lighthouse model, that is based in git. It provides a command line client that uses the ‘git’ gem to keep its ticketing information in a separate branch (called ‘ticgit’) within your existing git repository. All the data is file based and rarely changing, decreasing the likelihood of a merge issue. Right now, ticket branch merges need to be done manually and separately, but I’ll write a tool that helps pretty soon.
The idea is that it keeps your tickets in the same repository, but without mucking up your working tree. It keeps no files in any of your working tree – it is a completely different branch in your repo.
Eventually, I’ll get a little webapp that can manipulate the tickets and provide a view on them as well, but the command line client is currently pretty usable by itself. It will automatically create the new branch the first time you use it, and it caches all the data (another working directory and index file) in your ~/.ticgit directory by default. If you delete that directory, it will just create it again the next time, you will lose no data (except some of your saved preferences).
TicGit is currently using itself to store its feature requests and bug reports.
Next on the hit list are :
- automated tests
- file attachments
- bulk tag management
- cli color and less paging
You can now install ticgit via the github gems feature:
sudo gem install schacon-ticgit --source=http://gems.github.com
On Ubuntu 9.10
sudo apt-get install ticgit
To share your ticgit changes, you’ll have to make sure your pushes include your ‘ticgit’ branch. You can run this command to do that:
git push origin ticgit
After that, every ‘git push’ should sync both ‘master’ and ‘ticgit’ branches.
Alternately, you can add one of these lines to your .git/config file, under whatever remote you want to push it to :
push = refs/heads/ticgit:refs/heads/ticgit
The first time you use any command in ticgit, it will create a new branch in your repo called ‘ticgit’ and setup a caching area in ~/.ticgit.
If you run it without arguments, it will tell you what is available to run:
$>ti
Please specify at least one action to execute.
list state show new checkout comment tag
To create a new simple ticket:
ti new -t 'my new ticket'
To list all your tickets:
#>ti list
- TicId Title State Date Assgn Tags
-——————————————————————————————————————-- 1 9ebd07 add attachment to ticket open 03/22 schacon attach,feature
2 6ca8be download attached file open 03/22 schacon attach,feature
3 bec8e9 add a milestone resol 03/22 schacon feature,milestone,ne
4 9b83ea general tag management open 03/22 schacon feature,tags
5 94f24e show expanded comments open 03/22 schacon feature,ticket
6 f3dd9b remove a ticket open 03/22 schacon feature,ticket
7 e1629e improved cli support open 03/22 schacon cli,feature
To checkout a ticket to work on:
#>ti checkout 6
#>ti list
- TicId Title State Date Assgn Tags
-——————————————————————————————————————-
1 9ebd07 add attachment to ticket open 03/22 schacon attach,feature
2 6ca8be download attached file open 03/22 schacon attach,feature
3 bec8e9 add a milestone resol 03/22 schacon feature,milestone,ne
4 9b83ea general tag management open 03/22 schacon feature,tags
5 94f24e show expanded comments open 03/22 schacon feature,ticket- 6 f3dd9b remove a ticket open 03/22 schacon feature,ticket
7 e1629e improved cli support open 03/22 schacon cli,feature
Most of the other commands run on the checked out ticket if you don’t specify another one. For example:
develop>ti state hold develop>ti list # TicId Title State Date Assgn Tags -------------------------------------------------------------------------------- 1 9ebd07 add attachment to ticket open 03/22 schacon attach,feature 2 6ca8be download attached file open 03/22 schacon attach,feature 3 bec8e9 add a milestone resol 03/22 schacon feature,milestone,ne 4 9b83ea general tag management open 03/22 schacon feature,tags 5 94f24e show expanded comments open 03/22 schacon feature,ticket * 6 f3dd9b remove a ticket hold 03/22 schacon feature,ticket 7 e1629e improved cli support open 03/22 schacon cli,feature
If you wanted to change the state of the first ticket to ‘hold’ while still working on the sixth, you can run this instead:
#>ti state 1 hold
Where ticgit expects a ticket id, it will take either the number of the ticket on the last ‘list’ you did (ie: 1-7 in the examples), or it will take the partial sha each ticket is assigned when it is created – that number never changes for the life of the ticket, even across repositories, so you can email that number to someone else working on the project so they can identify it. If nothing is specified, it will use the currently checked out ticket.
#>ti show 94f24 Title : show expanded comments TicId : 94f24ef0b6bbbcf49234d25abcb781a1c52229e7 Assigned : [email protected] Opened : Sat Mar 22 10:18:47 PDT 2008 (1 days) State : OPEN Tags : feature, ticket Comments (1): * Added 03/22 10:18 by [email protected] i can't read the comments if they're longer than 3 lines
You can also tag or leave comments like this:
ti tag 6 feature ti comment (ticketid) -m 'my comment'
For the ‘comment’ and ‘new’ actions, if you don’t specify a ‘-m’ for the message, it puts you into $EDITOR to write it. The ‘new’ action is especially useful with this, because you can also tag it and give it an initial comment when you create it this way:
# --- tags: # first line will be the title of the tic, the rest will be the first comment # if you would like to add initial tags, put them on the 'tags:' line, comma delim ~ ~ ~
The ‘list’ command can also be sorted and filtered:
develop>ti list -h Usage: ti list [options] -o, --order ORDER Field to order by - one of : assigned,state,date -t, --tag TAG List only tickets with specific tag -s, --state STATE List only tickets in a specific state -a, --assigned ASSIGNED List only tickets assigned to someone -S, --saveas SAVENAME Save this list as a saved name -l, --list Show the saved queries
So if you wanted to see a list of all your tickets that have the ‘feature’ tag, assigned to ‘schacon’ and are ‘open’, ordered by date opened descending, and save that view as ‘mytics’, you can run this:
#>ti list -t feature -s open -a schac -o date.desc -S mytics # TicId Title State Date Assgn Tags -------------------------------------------------------------------------------- 1 6f9e7c priority for ticket open 03/23 schacon feature,ticket 2 93ef93 change ticket assignment open 03/22 schacon feature 3 9b0e09 link to a git object open 03/22 schacon feature,ticket 4 28c3fa start web ui open 03/22 schacon feature,webapp 5 e1629e improved cli support open 03/22 schacon cli,feature 6 94f24e show expanded comments open 03/22 schacon feature,ticket 7 9b83ea general tag management open 03/22 schacon feature,tags 8 6ca8be download attached file open 03/22 schacon attach,feature 9 9ebd07 add attachment to ticket open 03/22 schacon attach,feature
Then, if you want that same view later, you can do :
#>ti list mytics
If you want to see recent actions on the ticgit branch, you can run
#>ti recent c8b979c 03/23 12:33 added state (hold) to ticket 1206206444_remove-a-ticket_143 2268c45 03/23 12:11 added comment to ticket 1206207422_change-ticket-assignment_157 0257e6b 03/23 11:55 added state (open) to ticket 1206206747_link-to-a-git-object_972 f065c2c 03/23 11:55 added state (open) to ticket 1206206679_start-web-ui_911 9901f07 03/23 11:52 added ticket 1206298375_priority-for-ticket_953 ea747b7 03/23 11:50 added state (resolved) to ticket 1206206220_add-a-milestone_912 11bb2de 03/23 11:49 added comment to ticket 1206206220_add-a-milestone_912 2e1d4e6 03/23 11:49 added state (hold) to ticket 1206206220_add-a-milestone_912 c8d72c6 03/22 10:39 added comment to ticket 1206207503_checked-out-ticket-changes-when-new-ticket-added_530 a0b8467 03/22 10:39 added state (resolved) to ticket 1206207503_checked-out-ticket-changes-when-new-ticket-added_530
(This still needs some work – translating the “1206206444_remove-a-ticket_143” to the ticket name and sha, but it works for now. The sha on the left is the commit sha that you can use ‘git show c8b979c’ on if you want.)
If you are installing TicGit via cygwin you need to perform some additional steps to get TicGit running.
0.- It is assumed that you already have git installed and working.
1.- Since the ruby installation in cygwin does not include the “gem” command you need to install it as described here
3.- Add the github gem repositories to your search in the gem command and add the github gem (sudo is generally not necessary in cygwin)
#> gem sources -a http://gems.github.com #> gem install defunkt-github
4.- Install the git gem
#> gem install schacon-git
The original author who started ticgit, schacon, hasn’t been active in development since January of 2009 based on commit logs . For the most recent updates to ticgit, check the schacon ticgit network graph .
http://groups.google.com/group/ticgit Group dead? Now there’s only spam :(
The groups are mostly inactive now, except for spam. For questions or discussion about ticgit, your best bet is to message one/some of the most recent and frequent contributors to ticgit based on the network graph linked above.