ticgit
is the issue tracker we'll be using that's integrated with git:
Setting up RubyGems so gems are installed into your home directory (i.e. on the lab computers):
- Download RubyGems
and extract it anywhere.
- Set up RubyGems in your user directory:
-
cd
into the folder where you extracted the above.
-
ruby setup.rb --prefix=~/rubygems
to specify the install directory.
-
export GEM_HOME=~/rubygems/gems
to specify the directory to install gems into.
- Add the
~/rubygems/bin/
into your PATHs.
- open up
~/.bashrc
(e.g. with gedit ~/.bashrc
)
- Add the following lines:
-
#Add ruby path
-
PATH=~/rubygems/bin:$PATH
-
PATH=~/rubygems/gems/bin:$PATH
-
export PATH
- Save the file.
- Type the last 3 commands above into the terminal as well.
- Perform the commands below starting from Step 3.
This is what I had to do to install it on my Windows machine via cygwin:
- install
ruby
(via the Cygwin installer)
- install
gem
, as specified here
- add the github gem repository to your search, as instructed at the bottom of here
-
gem sources -a http://gems.github.com
-
gem install defunkt-github
- for good measure, and in an attempt to cover all required dependencies
- in any location, clone Chris' ticgit build... as all the other ones we found were broken
-
git clone http://github.com/cthachuk/ticgit.git
- navigate into the newly created
ticgit
folder, "make" it, then install it
-
rake setup
-
rake install
(cygwin doesn't need it, but you may need to append sudo
in front...)
- If all went well, you should have ticgit in your system, you can confirm by listing installed
gems
with:
-
gem list
(should have ticgit (2010.05.03))
- You can delete the ticgit directory now if you want...
Setting it up with the repo:
- delete any currently existing ticgit branches
- update origin (step may break... ignore and move on should be fine?)
- Create a new ticgit tracking branch
-
git branch --track ticgit origin/ticgit
Using ticgit:
-
ti list
to display all items
-
ti show ticket_id
to show details (where ticket_id
is the short hex thing displayed in list)
- instead of typing the full ticket id, you may also use an integer from 1 to n, where n is the number of items displayed on the last instance of
ti list
- e.g.
ti show 1
-
ti new -t 'insert title'
for create new ticket with given title
-
ti -h
for list of commands
-
ti some_command --h
for usage of a specific command
Note that most commands will take ticket_id as an argument, besides the integer number shortcut, you may also use:
-
ti checkout 1
(checks out the first ticket on the list)
-
ti list
, note how the ticket you specified is now starred
-
ti show
, all subsequent operations will performed on your checked out ticket without need to specifying a ticket
Typical ticket creation work flow
-
ti sync
(make sure your tickets are up to date...)
-
ti new -t 'small description of the issue within apostrophes'
-
ti checkout ticket_id_of_above_issue
-
ti tag bug
(let's try to stick to three tags bug
, feature
, improvement
... although we may add new ones if the need arises)
-
ti tag -d existing_tag
(to remove some tag if you mess up)
-
ti comment -m 'more indepth description can go here'
-
ti comment
without arguments will allow you to type a message in an editor
-
ti assign -u user_name
(if you want to push this onto some other poor soul)
-
ti sync
(to let others knows of issue)
Typical ticket resolution/modification work flow
-
ti sync
-
ti checkout ticket_id_of_interest
-
ti comment -m 'new message'
(to add more comments)
-
ti state resolved
(besides resolved
, other valid states are hold
, invalid
, and open
)
-
ti sync
I unfortunately... have not figured out how un-checkout a ticket...
Incidentally, you can delete tickets like so:
-
git checkout ticgit
-
git rm -r ticket_folder_name
(will contain title... check with ls
)
-
git commit -m "some message goes here"
-
git checkout dev
(continue as usual)
-
ti sync