Coder Social home page Coder Social logo

ticgit's Introduction

TicGit-ng

This project provides a ticketing system built on Git that is kept in a separate branch in your projects Git repository. Originally called TicGit, it is now known as TicGit-ng to continue development and avoid namespace clashes.

About

TicGit-ng 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-ng’) 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 work is being done on a ti sync command to make this easier and more intuitive.

The idea is that it keeps your tickets in the same repository, but without mucking up your working tree. By using its own seperate branch to store its information it keeps the working trees in all your other branches untouched.

There are two interfaces available, the command line ti command and the ticgitweb web interface, though ticgitweb has many more prerequisites than ti.

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-ng 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-ng is currently using itself to store its feature requests and bug reports.

Prerequisites

There are two sets of prerequisites, those for people who intend to just run ti, and another set for those who wish to run ticgitweb as well. ticgitweb has additional dependancies that aren't required for ti's use.

ti

Required Packages: git, ruby, rubygems

Required Ruby Gems: git

To install these packages on a Debian system, or a Debian based system like Ubuntu, do

sudo aptitude install git ruby rubygems
sudo gem install git

ticgitweb

Required Packages: git, ruby, rubygems

Required Ruby Gems: git, sinatra, haml, sass

To install these packages on a Debian system, or a Debian based system like Ubuntu, do

sudo aptitude install git ruby rubygems
sudo gem install git sinatra haml sass

A Note about rubygems

While the version of rubygems available from the repositories on Debian 5.0.5 stable will work just fine for using the command line ti program, using ticgitweb requires some extra effort. Older versions of rubygems, such as the one available on Debian 5.0.5, will not work out of the box with the new gem repositories because the .deb in stable relies on rubyforge rather than rubygems for its operations. See this bug for an example. If you are running an older version of rubygems, you may need to get the latest rubygems package from http://rubygems.org/ or apt pinning before being able to properly install the git and ticgit gems.

A Note About The Git Gem

The git gem requires a git version of 1.6.0.0 or later, but on Debian stable, git-core is currently (Sept 6th 2010) at 1.5.6.5. This isn't a fatal problem and we can continue using version 1.5.6.5 with the git gem, but you will see notices like this if you do

[WARNING] The git gem requires git 1.6.0.0 or later, but only found 1.5.6.5. You should probably upgrade.
Please specify at least one action to execute.

If these annoy you as they do me and you've set up apt pinning, you can do

$ sudo aptitude -t testing install git-core

And those notices should go away.

A Note About Coloured Git Output

If you use [color] ui = always instead of [color] ui = true then you will encounter a problem with the deprecated git gem parsing the color codes. Because it doesn't strip the color codes before parsing the output, it chokes and makes everything explode.

Since time spent working on monkeypatching the git gem would soon be rendered fruitless by the eventual planned upgrade away from it, for the time being the suggested solution is to use [color] ui = true.

Installing

Installation on a Debian stable system. Note that the command line interface for TicGit-ng can be run from Debian stable, but some of the gems required for the web interface may require you to use apt pinning to run without errors. See below

To install TicGit-ng on your system, you can go one of two ways,

$ gem install TicGit-ng

or, you can install it from source by downloading this repository building your own gem (see below).

Usage

To get a list of all commands with short description:

> ti --help
Usage: ti COMMAND [FLAGS] [ARGS]
 
Options for help command:
 
The available TicGit-ng commands are:
    recent                           List recent activities
    checkout                         Checkout a ticket
    tag                              Modify tags of a ticket
    comment                          Comment on a ticket
    milestone                        List and modify milestones
    assign                           Assings a ticket to someone
    points                           Assign points to a ticket
    state                            Change state of a ticket
    show                             Show a ticket
    new                              Create a new ticket
    attach                           Attach file to ticket
    list                             List tickets
 
Common options:
    -v, --version                    Show the version number
    -h, --help                       Display this help
"help" is not a command

To get help about a specific command:

> ti <command> --help
## for example
> ti assign --help
Usage: ti assign [options] [ticket_id]
 
Options for assign command:
    -c, --checkout TICKET            Checkout this ticket
    -u, --user USER                  Assign the ticket to this user
 
Common options:
    -v, --version                    Show the version number
    -h, --help                       Display this help

The available commands are:

ti list     - show all tickets
ti show     - show details of a specific ticket
ti new      - create a new ticket
ti checkout - checkout a ticket
ti state    - change a ticket state (open, resolved, invalid, hold)
ti comment  - add a comment to a ticket
ti tag      - add or delete a tag from a ticket
ti assign   - change to whom a ticket is assigned

Usage Examples

The first time you use any command in Ticgit-ng, it will create a new branch in your repo called ‘ticgit-ng’ and setup a caching area in ~/.ticgit-ng.

If you run it without arguments, it will tell you what is available to run

$ ti
Please specify at least one action to execute.

Usage: ti COMMAND [FLAGS] [ARGS]
 
The available TicGit-ng commands are:
    recent                           List recent activities
    checkout                         Checkout a ticket
    tag                              Modify tags of a ticket
    comment                          Comment on a ticket
    milestone                        List and modify milestones
    assign                           Assings a ticket to someone
    points                           Assign points to a ticket
    state                            Change state of a ticket
    show                             Show a ticket
    new                              Create a new ticket
    attach                           Attach file to ticket
    list                             List tickets
 
Common options:
    -v, --version                    Show the version number
    -h, --help                       Display this help

The first time you run ti list, it will show an empty list.

$ ti list
I, [2010-09-06T15:47:52.075485 #4820]  INFO -- : creating ticgit repo branch

   TicId  Title                             State Date  Assgn    Tags                
-----------------------------------------------------------------------------------------

To add a new ticket you can use ti new -t 'Title of ticket' and give it a title in one command line.

$ ti new -t 'my new ticket'
$ ti list

   TicId  Title                             State Date  Assgn    Tags                
-----------------------------------------------------------------------------------------
   d7f2d8 my new ticket                     open  09/06 

For the ‘comment’ and ‘new’ commands, 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
#

To edit a ticket, such as assigning a tag to the new ticket we created, we first checkout the ticket and then use ti tag. Always checkout the ticket you intend to edit. Some commands allow you to include a tic_id argument but that can get confusing to keep track of and most of the time several edits will be done to the same ticket anyway, so it is suggested you use ti checkout for convenience if nothing else.

#ti checkout can checkout tickets based on the TicId or based on it's place in the list
$ ti checkout 1
#checks out the first ticket, or to do the same thing by using the TicId
$ ti checkout d7f2d8
#then assign the tag
$ ti tag 'bug'
#and view the result..
$ ti list

   TicId  Title                                           State Date  Assgn    Tags                
-------------------------------------------------------------------------------------------------------
*  d7f2d8 my new ticket                                   open  09/06          bug               

To assign the ticket to someone, use the ti assign command. I assign the ticket to myself below.

$ ti assign -u '[email protected]'
$ ti list

   TicId  Title                                              State Date  Assgn    Tags                
----------------------------------------------------------------------------------------------------------
*  d7f2d8 my new ticket                                      open  09/06 jeff.we… bug  

To change the state of a ticket, such as to change it from 'open' to 'hold' or 'resolved', use ti state. There are 4 valid states: hold, invalid, open, and resolved.

$ ti state hold
$ ti list

   TicId  Title                                              State Date  Assgn    Tags                
----------------------------------------------------------------------------------------------------------

Dramatic Gasp! Where did all of our tickets go? Don't worry, this isn't a bug and your tickets aren't gone.

$ ti list --states open,hold

   TicId  Title                                              State Date  Assgn    Tags                
----------------------------------------------------------------------------------------------------------
*  d7f2d8 my new ticket                                      hold  09/06 jeff.we… bug                 

By default ti list doesn't show tickets with a state of 'hold', so we have to specify that we want to see those tickets with an argument. Now you can see, out ti state hold command changed the state of that ticket to on hold. This can also be done without checking out the ticket by using 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, 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 comment -m "I'm a new comment"
$ ti show
Title: my new ticket
TicId: d7f2d8f6d6ec3da1a1800a33fb090d590a533bac

Assigned: [email protected]
Opened: Mon Sep 06 15:52:03 -0700 2010 (0 days)
State: OPEN
Points: no estimate
Tags: bug

Comments (1):
  * Added 09/06 18:34 by [email protected]
  I'm a new comment

ti show also has a '-f' argument to be able to see comments that are longer than 3 lines, which would normally be truncated.

The ti list command can also be sorted and filtered.

$ ti list --help
Usage: ti list [options]
 
Options for list command:
    -l, --list                       Show the saved queries
    -S, --saveas SAVENAME            Save this list as a saved name
    -a, --assigned ASSIGNED          List only tickets assigned to someone
    -s, --states STATE[,STATE]       List only tickets in a specific state(s)
                                     Prefix the state with '-' to negate
    -t, --tags TAG[,TAG]             List only tickets with specific tag(s)
                                     Prefix the tag with '-' to negate
    -o, --order ORDER                Field to order by - one of : assigned,state,date,title
 
Common options:
    -v, --version                    Show the version number
    -h, --help                       Display this help

So if you wanted to see a list of all your tickets that have the ‘feature’ tag, assigned to ‘[email protected]’ and are ‘open’, ordered by date opened descending, and save that view as ‘not_mine’, you can run this:

$ ti list -t feature -s open -a [email protected] -o date.desc -S not_mine

Then if you want to later list tickets with the same options as you used above, use

$ ti list not_mine

Collaboration

If you have cloned a repository and would like to get the ticgit-ng branch for that repo (presuming they have one), do this.

$git branch ticgit-ng origin/ticgit-ng

This will create a ticgit-ng branch in your local repo based on the ticgit-ng branch in origin. Now you can run ti list and it will show you the ticgit-ng tickets for that repository.

Getting the TicGit-ng ticgit-ng branch

To download your own copy of the TicGit-ng ticgit branch after cloning the repo, so that you can add or alter a bug yourself, follow these instructions.

This will checkout a ticgit-ng branch and set it to track the ticgit-ng branch upstream in origin, and then checks out the master branch. You must checkout the master branch because TicGit-ng gets confused if you are already in the ticgit-ng branch when running TicGit-ng.

$ git checkout origin/ticgit-ng
$ git checkout -b ticgit-ng
$ git checkout master

This will show you all of the bugs in TicGit-ng's ticgit-ng branch.

$ ti list

To submit your changes back to the upstream maintainer, push the bugs in your ticgit-ng branch to your public repo on Github

$ git push origin ticgit-ng

Then contact the upstream maintainer by sending a Pull Request or Email and ask them to review and accept your bug changes.

Sharing your tickets with others

Sharing your ticgit tickets with other people is as easy as asking them either creating their ticgit-ng branch based on yours if they haven't already started their own ticgit-ng branch, or pulling your ticgit-ng branch into theirs.

If you host your repositories on Github as I do then this process is simplified some because you don't have to worry about hosting your repository somewhere where other people can access it to pull your ticgit-ng branch.

For example, when I want my friend wnight to have the changes I made to my tickets in my ticgit-ng repository, I do a

$ git push origin

to update all my remote branches with my current ones, and then I ask him to do a

$ git checkout ticgit-ng
$ git pull [email protected]:jeffWelling/ticgit.git ticgit-ng
$ git checkout master

to pull my changes into his ticgit-ng branch and then switch back to his master branch. Now when he does ti list it will show the changes I made to the tickets on my system.

Incorporating other peoples changes into your ticgit-ng branch

The process is much the same as above, except the rolls are reversed. Once you know they have published their changes and you have a URL to do a git pull from, you simply do

$ git checkout ticgit-ng
$ git pull SOURCE_URL ticgit-ng
$ git checkout master

Replacing SOURCE_URL with the URL you were told to pull from, now you can see the changes they made, in your ticgit-ng branch. You can easily publish these changes with a git push origin so anyone following your work can also see these changes.

Next generation collaboration

Changes made by Bruno Santos to add a ti sync command were integrated on February 15th 2011. You can now use the ti sync [options] command to sync your tickets with anyone else you've added with git remote add. To use ti sync, all you need to do is first make sure you've already added the remote source with git remote add, and then do

$ ti sync --repo REMOTE_SOURCE

if you want to pull their tickets into your ticgit-ng branch and push your tickets to their ticgit-ng branch, or

$ ti sync --repo REMOTE_SOURCE --no-push

if you want to pull their tickets into your ticgit-ng branch without pushing your tickets to their branch.

More information on using ti sync can be gleemed from reviewing the merge specs

Ticgitweb

To run the Sinatra enabled web UI for your TicGit-ng repo, simply cd to your repository and run 'ticgitweb', or 'ticgitweb -p 3456' to change the port to something other than '4567', which is the Sinatra default.

Here is what the Ticket listing looks like:

TicGitWeb Ticket List

And here is an individual ticket:

TicGitWeb Ticket

Development

The original author had used rspec to write specs for ticgit-ng, but one of the maintainers since then switched it over to bacon[1][2][3] and I haven't been too inclined to switch it back.

Prerequisites

To install the prerequisites on Debian stable for testing ticgit-ng, you will need apt pinning.

$ sudo aptitude -t testing install rubygems rake
$ sudo gem install yard bacon

I pull rubygems from testing to avoid a problem with gherkin creating a syntactically incorrect gemspec which makes a lot of noise whenever gem is called. I ran into a problem when gem was installing yard, it had a problem with the documentation but thankfully the error wasn't fatal and was only about not being able to compile the documentation which I don't use, so it continued without trouble.

How To Test

To test your version of ticgit-ng, go to your ticgit-ng directory and run

rspec spec/*_spec.rb

How to generate a gem from your development copy of ticgit-ng

To create a gem from your development copy of ticgit-ng, go to your ticgit-ng directory and do

rake gem

This will create a pkg/ directory, which will contain a newly created ticgit-ng gem for you to install.

More information on developing TicGit-ng and collaborating with other TicGit-ng developers at here

More information on developing TicGit-ng and collaborating with other TicGit-ng developers at here

Alternatives

ditz bugs everywhere git-issues

Authors

Original Author: Scott Chacon ([email protected])

Current Active Maintainer: Jeff Welling ([email protected])

For a detailed list of contributors, use git log.

ticgit's People

Contributors

avh4 avatar bmfs avatar dalefukami avatar jeffwelling avatar judofyr avatar lilyball avatar loucal avatar manveru avatar nofxx avatar pope avatar schacon avatar todd-a-jacobs avatar ttencate avatar wzph avatar yob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ticgit's Issues

codeset issue with ti list

Hi,

I'm using ti on debian 6 with the locale LANG=de_DE@euro. In this setting "ti list" prints, when the text in the respective column is to long instead of the ... literal some funny characters. I've located the problem in lib / ticgit-ng / cli.rb. in line 205 and 217 (because you use probably some utf8 setting):

sub_value = "#{value[0, size - 1]}\xe2\x80\xa6"

My workaround is to use the middle dot \xb7 instead of \xe2\x80\xa6:

sub_value = "#{chars[0, size-1]}\xb7"

But I think that this should be done automatically.

Couldn't load ti tickets

I have pulled ticgit sources from github, have created local ticgit branch (tracking origin/ticgit) and switched back to ticgit. Still 'ti list' is empty. What am I doing wrong. How can I see all tickets for this project?

Separate GUI and commandline aka CLI

I am puzzled how they are managed. I would kill all ticgitweb --things for now, there is too many bugs with ticgit!

I. ticgit --- PRIORITY ONE
II. ticgitweb --- some sinatra -hack (I think this should be anyway rewritten with something like CouchDB, forget)

It is relatively easy to fix the bugs such as [1] when we get the I working! Do not waste time with [1], please.

[1] #48 (comment)

Ability to sync TicGit-ng with Github Issues

Sync with Github Issues! That would be the shiznizzle!!!
Also, other bug trackers, but they can wait because they taste like cheeze and cardboard.
/jk about the cardboard-y cheesy taste ;)

Do you use another bug tracker that you would like to see TicGit-ng synchronize with? Start hacking! Or, if your not a developer, post a comment here with the bug tracker you would like to be able to synchronize with, and we'll light some candles and wave our magic programming stick and see what happens. :)

Comments issue

When I add comment, through console, it doesn't appear when I reload ticgitweb page. (It is running locally)

Milestones are documented but not implemented!

For some reason the milestones command is documented, even to the point of having an associated file in the command/ directory, but is not implemented. Milestones are an important feature in many bug trackers and is an expected feature of TicGit-ng even without the misleading documentation and help output.

Readme is inaccurate - 'ti sync' is ready *now*

In the About section in the README, it still says:
Right now, ticket branch merges need to be done manually and separately, but work is being done on a ti sync command to make this easier and more intuitive.

But this is inaccurate, as 'ti sync' capability has already been released in 1.0.1

Running `ti` outside of git repo throws nasty errors

When running ti while not in a git repository, TicGit throws nasty errors about 'puts' not existing on the Nil class.

This kind of error spewing should not happen, TicGit should inform the user in a nice way that they should cd to a git repository before trying to use ti.

Create Milestones

NEW: create a gui that manages the milestones and priorities. Rollback to 2008/2009 -version to keep things simple [6] with Ticgit -version. If content-hosts such as Github.com or Bitbucket.org do not want to suppot exportation of tickets, we cannot do much here -- stop developing with them, simple.

OLD: Some clutter [1][2][3], ticgit Bitbucket -style-clone-UI [4] and Github -style-graphical-bells-and-whistles-analysis-tool [5].

References
[1] #58 (comment)
[2] #57
[3] #56
[4] #51
[5] http://stackoverflow.com/questions/11251941/how-can-i-see-github-style-things-such-as-punchcards-and-timeline-of-git-repo
[6] #64

Centrally Managed Tickets-Perms -UI/repo for Manager/Producer/Leader

PLEASE MAKE THIS MILESTONE, thank you.

I don't actually care how to design ticgit but I personally like the Gitolite -way of doing things. Ofc ticgit is a bit different -story -- if we create always separate branches, we move the problem forward about management. I think much better way is to create design consistency somehow, perhaps by looking how Gitolite manages things.

  1. [DESIGN] open question [1] about branch into separate repo in the Gitolite -style
  2. [DESIGN] Consintency over different Git -projects [2] [3]
  3. ...?

Related tickets or related
[1] #56
[2] #52
[3] there are even Git -projects based on DB such as MongoDB-blog/etc -- a lot of people tinkering...

Make consistency over different Git -projects: Gitolite + Ticgit = ?

Gitolite [1] is a freaking cool software. Ticgit [2] looks promising sofware. Gource [3] looks promising.

Now I feel it is extremely important that we create some sort of consistency with the design. Permissions and tickets usually belong to manager -level guy or some central guy.

Related projects
[1] https://github.com/sitaramc/gitolite/
[2] https://github.com/jeffWelling/ticgit
[3] http://code.google.com/p/gource/

Related Tickets
[4] #52

Make ticgit -branch into separate repo in Gitolite-style-managed-centrally

I cannot understand why ticgit uses a separate branch for tickets. In Gitolite (permission -management), it creates a separate repository. Why not to create a separate repository under Gitolite with ticgit so it is easy to manage all tickets in the Gitolite -management in the same place -- current ideology of creating always new branches feel shortsighted.

PROPOSAL 0: do not create separate branches for ticgit, replace it with Gitolite -style central repo so manager can manage tickets more easily in one place

---> creating consistency with Gitolite -style management -- and why on earth do we need an extra branch for tickets?

ti milestones not implemented?

Hello,
I have the feeling the command "milestone" is not implemented.

https://github.com/jeffWelling/ticgit/blob/master/lib/ticgit-ng/command/milestone.rb

If I look at the code (also comparing with other commands), I can see a function

def parser(opts)

But (differently from other command) I did not found a function

def execute

which is pointing to the actual milestone implementation.
The command seems is not doing anything when I launch it.

Am I missing something?

thanks

ticgitweb won't run unless referenced by absolute path

On Debian and Ubuntu systems, ticgitweb won't run unless it's called by it's full path such as
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.3/bin/ticgitweb

A message has been sent to the sinatra mailing list to see if they have any insights into the matter.

Voting?

Can we get voting on tickets?
This could raise problems when it comes time to sync but other bug trackers don't support voting or dont support manually tweaking the vote counts via their respective APIs.

"$ ti attach" -error-dump in Ubuntu

$ ti attach
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command.rb:29:in const_get': no such file to load -- ticgit-ng/command/attach (LoadError) from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command.rb:29:inget'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:45:in execute!' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in `load'
from /usr/local/bin/ti:19

cannot chose the port on ticgitweb

Hello,
when I cannot force the port on sinatra server

ticgitweb -p 1234

= Sinatra/1.0 has taken the stage on 4567 for development with backup from Thin

Thin web server (v1.3.1 codename Triple Espresso)
Maximum connections set to 1024
Listening on 0.0.0.0:4567, CTRL+C to stop

I am running it with ruby 1.8.7 an 1.9.2 on Mac OS

Stay-synced functionality?

Bug tracking in git on your local machine is awesome, but if I'm working on a feature with someone else, or am trying to resolve a bug with someone else, I will want to stay up to date with comments they make on the bug, feature, etc.

Some command that will sync continuously for some period of time such as until x or for y min/sec/hours/...

Maybe it could start a daemon that synced every 15 seconds...

latest changes broke ti in specific usage scenario

Reposted as an issue on behalf of frioux who PM'd me to confirm this was a bug.

This is how I run ti:

alias ti='ruby -I~/code/ticgit/lib ~/code/ticgit/bin/ti'

In 1.0.2.6 it works perfectly, but in 1.0.2.7 and forward I now get the following error when I just run plain ti:

/usr/lib/ruby/1.8/git/lib.rb:643:in command': git log --pretty=raw -1 ticgit 2>&1:fatal: ambiguous argument 'ticgit': unknown revision or path not in the working tree. (Git::GitExecuteError)
Use '--' to separate paths from revisions
from /usr/lib/ruby/1.8/git/lib.rb:615:incommand_lines'
from /usr/lib/ruby/1.8/git/lib.rb:91:in full_log_commits'
from /usr/lib/ruby/1.8/git/log.rb:106:inrun_log'
from /usr/lib/ruby/1.8/git/log.rb:99:in check_log'
from /usr/lib/ruby/1.8/git/log.rb:80:ineach'
from /home/frew/code/ticgit/lib/ticgit-ng/base.rb:27:in map'
from /home/frew/code/ticgit/lib/ticgit-ng/base.rb:27:ininitialize'
from /home/frew/code/ticgit/lib/ticgit-ng.rb:46:in new'
from /home/frew/code/ticgit/lib/ticgit-ng.rb:46:inopen'
from /home/frew/code/ticgit/lib/ticgit-ng/cli.rb:24:in initialize'
from /home/frew/code/ticgit/lib/ticgit-ng/cli.rb:14:innew'
from /home/frew/code/ticgit/lib/ticgit-ng/cli.rb:14:in parse'
from /home/frew/code/ticgit/lib/ticgit-ng/cli.rb:9:inexecute'
from /home/frew/code/ticgit/bin/ti:13

ok, actually, it just seems like ti can't create a new ticgit branch anymore. Existing ti branches seem to work fine... Trying to see when that came in now...

Bisected the error to this commit: 9dcde19

Branches and git colors

[color] ui = always in gitconfig causes several errors.

The branchnames contains the shell color sequences: \e[32mmaster\e[m. If I turn the colors off, i get the plain master branchlable.

Greetings Sven

P.S.: I'll post this issue to the git-gem issue list, because I think it's better to solve the bug there.

P.P.S.: There is already a ticket.

Odd ruby ERR dump with TAG: wrong number of parameters in Ubuntu

I followed the instructions here [1] for the installation on ubuntu.

[1] https://github.com/jeffWelling/ticgit

ERR -dump

$ ti tag
You need to at least specify one tag to add

/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command/tag.rb:26:in parser': wrong number of arguments (0 for 1) (ArgumentError) from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command/tag.rb:26:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:56:in execute!' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in `load'
from /usr/local/bin/ti:19

Creating new ticket fails

I just installed ticgit on Gentoo but I cannot use it. Running through the command line gives:

$ ti new
[edit the new ticket information, save and exit editor]
/usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/ticket.rb:89:in save_new': undefined methodinfo' for #IO:0x7f028d694ad8 (NoMethodError)
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/base.rb:398:in in_branch' from /usr/lib64/ruby/gems/1.8/gems/git-1.2.5/lib/git/base.rb:438:inwith_working'
from /usr/lib64/ruby/gems/1.8/gems/git-1.2.5/lib/git/base.rb:437:in chdir' from /usr/lib64/ruby/gems/1.8/gems/git-1.2.5/lib/git/base.rb:437:inwith_working'
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/base.rb:395:in in_branch' from /usr/lib64/ruby/gems/1.8/gems/git-1.2.5/lib/git/base.rb:391:inwith_index'
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/base.rb:394:in in_branch' from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/ticket.rb:86:insave_new'
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/ticket.rb:32:in create' from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/base.rb:103:inticket_new'
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/command/new.rb:32:in execute' from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/cli.rb:56:inexecute!'
from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/lib/ticgit-ng/cli.rb:9:in execute' from /usr/lib64/ruby/gems/1.8/gems/TicGit-ng-1.0.2.12/bin/ti:13 from /usr/bin/ti:19:inload'
from /usr/bin/ti:19

I also tried through the web interface (ticgitweb) but got a backtrace too:

BACKTRACE
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in write
@env['rack.errors'].puts(msg)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in puts
@env['rack.errors'].puts(msg)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in dump_errors!
@env['rack.errors'].puts(msg)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in handle_exception!
dump_errors! boom if settings.dump_errors?
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in dispatch!
handle_exception!(boom)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in call!
invoke { dispatch! }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in invoke
res = catch(:halt) { yield }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in catch
res = catch(:halt) { yield }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in invoke
res = catch(:halt) { yield }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in call!
invoke { dispatch! }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in call
dup.call!(env)
/usr/lib64/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb in call
status, headers, body = @app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb in call
app.call env
/usr/lib64/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb in call
status, headers, body = app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/base.rb in call
result or app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb in call
status, headers, body = @app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-1.4.0/lib/rack/logger.rb in call
@app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-1.4.0/lib/rack/head.rb in call
status, headers, body = @app.call(env)
/usr/lib64/ruby/gems/1.8/gems/rack-1.4.0/lib/rack/methodoverride.rb in call
@app.call(env)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/showexceptions.rb in call
@app.call(env)
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in call
synchronize { prototype.call(env) }
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in synchronize
yield
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in call
synchronize { prototype.call(env) }
/usr/lib64/ruby/gems/1.8/gems/rack-1.4.0/lib/rack/handler/webrick.rb in service
status, headers, body = @app.call(env)
/usr/lib64/ruby/1.8/webrick/httpserver.rb in service
si.service(req, res)
/usr/lib64/ruby/1.8/webrick/httpserver.rb in run
server.service(req, res)
/usr/lib64/ruby/1.8/webrick/server.rb in start_thread
block ? block.call(sock) : run(sock)
/usr/lib64/ruby/1.8/webrick/server.rb in start
Thread.start{
/usr/lib64/ruby/1.8/webrick/server.rb in start_thread
Thread.start{
/usr/lib64/ruby/1.8/webrick/server.rb in start
th = start_thread(sock, &block)
/usr/lib64/ruby/1.8/webrick/server.rb in each
svrs[0].each{|svr|
/usr/lib64/ruby/1.8/webrick/server.rb in start
svrs[0].each{|svr|
/usr/lib64/ruby/1.8/webrick/server.rb in start
yield
/usr/lib64/ruby/1.8/webrick/server.rb in start
server_type.start{
/usr/lib64/ruby/gems/1.8/gems/rack-1.4.0/lib/rack/handler/webrick.rb in run
@server.start
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb in run!
handler.run self, :Host => bind, :Port => port do |server|
/usr/lib64/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/main.rb in nil
at_exit { Application.run! if $!.nil? && Application.run? }
/usr/bin/ticgitweb in nil
load Gem.bin_path('TicGit-ng', 'ticgitweb', version)

GET

No GET data.
POST
Variable Value
comment
"New ticket comment."
tags
"crash"
title
"Simulation crash"
COOKIES

No cookie data.
Rack ENV
Variable Value
CONTENT_LENGTH
583
CONTENT_TYPE
application/x-www-form-urlencoded
GATEWAY_INTERFACE
CGI/1.1
HTTP_ACCEPT
text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
HTTP_ACCEPT_CHARSET
ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING
gzip, deflate
HTTP_ACCEPT_LANGUAGE
en-us,en;q=0.5
HTTP_CONNECTION
keep-alive
HTTP_HOST
localhost:4567
HTTP_REFERER
http://localhost:4567/t/new
HTTP_USER_AGENT
Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
HTTP_VERSION
HTTP/1.1
PATH_INFO
/t/new
QUERY_STRING
REMOTE_ADDR
127.0.0.1
REMOTE_HOST
shockwave
REQUEST_METHOD
POST
REQUEST_PATH
/t/new
REQUEST_URI
http://localhost:4567/t/new
SCRIPT_NAME
SERVER_NAME
localhost
SERVER_PORT
4567
SERVER_PROTOCOL
HTTP/1.1
SERVER_SOFTWARE
WEBrick/1.3.1 (Ruby/1.8.7/2011-12-28)
rack.errors

Object:0x7fa96d455358

rack.input

StringIO:0x7fa96b674dc0

rack.logger

<Logger:0x7fa96b66a0a0 @progname=nil, @logdev=#<Logger::LogDevice:0x7fa96b637b50 @shift_size=nil, @shift_age=nil, @dev=#IO:0x7fa96ee0bab8, @filename=nil, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x7fa96b637b00 @mon_entering_queue=[], @mon_count=0, @mon_owner=nil, @mon_waiting_queue=[]>>, @Level=1, @default_formatter=#<Logger::Formatter:0x7fa96b637ba0 @datetime_format=nil>, @Formatter=nil>

rack.multiprocess
false
rack.multithread
true
rack.request.cookie_hash
{}
rack.request.form_hash
{"title"=>"Simulation on angel diverge", "comment"=>"Simulations on Angel (SHARNET) fail after some time.\r\n\r\nAn example is: 20120112_15h21_C01_Xe100nm_dt000.500as_nbions01415_SyesIyesEyesTnoRyes_potSymmetric_I8e12_WL98nm_FW100.0fs_Lrelaxed_A0.0_ALmd_b01.50_oclNvidia_ang23\r\n\r\nFrom time step 356881 (178.44018 fs) to 356901 (178.450012) the total potential energy goes from -2145.97 eV to 2.433e13 eV.\r\n\r\nLooking in Pymol, the cluster "shakes" and ion #740 seems to leave it.\r\n\r\nPossible bug in the lookup table access on a GPU?", "tags"=>"crash"}
rack.request.form_input

StringIO:0x7fa96b674dc0

rack.request.form_vars
title=Simulation+on+angel+diverge&tags=crash&comment=Simulations+on+Angel+%28SHARNET%29+fail+after+some+time.%0D%0A%0D%0AAn+example+is%3A+20120112_15h21_C01_Xe100nm_dt000.500as_nbions01415_SyesIyesEyesTnoRyes_potSymmetric_I8e12_WL98nm_FW100.0fs_Lrelaxed_A0.0_ALmd_b01.50_oclNvidia_ang23%0D%0A%0D%0AFrom+time+step+356881+%28178.44018+fs%29+to+356901+%28178.450012%29+the+total+potential+energy+goes+from+-2145.97+eV+to+2.433e13+eV.%0D%0A%0D%0ALooking+in+Pymol%2C+the+cluster+%22shakes%22+and+ion+%23740+seems+to+leave+it.%0D%0A%0D%0APossible+bug+in+the+lookup+table+access+on+a+GPU%3F
rack.request.query_hash
{}
rack.request.query_string
rack.run_once
false
rack.url_scheme
http
rack.version
[1, 1]
sinatra.error

<Errno::EIO: Input/output error>

Cannot run ticgitweb on Ubuntu 10.10

After installing ticgit-ng as per the readme and being able to run ti successfully I am unable to run the web interface:

$ ticgitweb
You need to install ticgit before we can proceed
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.2/bin/ticgitweb:27: uninitialized constant TicGit (NameError)

ti command fails on Windows after clean install

I installed Ruby 1.9.3
Then ran gem install TicGit-ng at the command line.
Then ran ti --help and got this:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:18: Use RbConfig instead of obsolete and deprecated Config.
C:/Ruby193/lib/ruby/gems/1.9.1/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:257:in `trap': unsupported signal SIGWINCH (ArgumentError)
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:257:in `<top (required)>'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:37:in `<top (required)>'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/TicGit-ng-1.0.2.14/bin/ti:11:in `<top (required)>'
        from C:/Ruby193/bin/ti:23:in `load'
        from C:/Ruby193/bin/ti:23:in `<main>'

No idea where to go from here.

Clean up the forks, why so many dummy forks?

I would like to know why you have created so many dummy forks? I personally create them by accident when I manage repos over many computers but they are really bad... I don't know how but I would like to kill the unnecessary forks by you there [1], it is hard to find the genuine forks that are really under development. I am investigating whether someone is developing now something from this code or the best option complete rewrite or something else?

[1] https://github.com/jeffWelling/ticgit/network

complete ti list --help

hello,
as the order ascending or descending is supported, can you add this information into the help?

currently

ti list --help
-o, --order ORDER                Field to order by - one of : assigned,state,date,title

proposed

ti list --help
-o, --order ORDER                Field to order by - one of : assigned,state,date,title [.desc for reverse order]

It is useful for a list order by date, as the default is to order by the less recent issue.

I found it in the code. :-)
https://github.com/jeffWelling/ticgit/blob/deving/lib/ticgit-ng/base.rb#L172

ti attach does not work

Hello,
when I try to attach a file I had the following error.

gems/TicGit-ng-1.0.2.11/lib/ticgit-ng/command.rb:30:in const_get': no such file to load -- ticgit-ng/command/attach (LoadError) from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/gems/TicGit-ng-1.0.2.11/lib/ticgit-ng/command.rb:30:inget'
from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/gems/TicGit-ng-1.0.2.11/lib/ticgit-ng/cli.rb:35:in execute!' from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/gems/TicGit-ng-1.0.2.11/lib/ticgit-ng/cli.rb:9:inexecute'
from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/gems/TicGit-ng-1.0.2.11/bin/ti:13:in <top (required)>' from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/bin/ti:19:inload'
from /Users/Marco/.rvm/gems/ruby-1.9.2-p290/bin/ti:19:in `

'

It seems normal to me, because the command is registered,
https://github.com/jeffWelling/ticgit/blob/deving/lib/ticgit-ng/command.rb

register 'Attach', 'Attach file to ticket', 'attach'

But then the file attach.rb is not present.

thanks and regards,
Marco

Switch away from deprecated git gem

Need to switch away from deprecated git gem. We already have to monkey-patch around one bug in it, and now we've encountered another (issue #36) where coloured git output causes problems. Upgrading away from the git gem is becoming more and more of an attractive solution to the growing list of problems.

$ ti attach -- ERR DUMP in Ubuntu

$ ti attach
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command.rb:29:in const_get': no such file to load -- ticgit-ng/command/attach (LoadError) from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/command.rb:29:inget'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:45:in execute!' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in `load'
from /usr/local/bin/ti:19

ti sync should only fetch if there is no 'ticgit' branch in $repo

Currently, ti sync is painfully slow because it attempts a git fetch $repo before performing the git pull and git push. The fetch should only be performed if there is no 'ticgit' or 'ticgit-ng' branch in $repo as we currently have it. This will prevent superfluous slowdowns but will still perform the fetch if we aren't aware of a branch we can use yet.

"$ git init; ti init; ti" firing bugs with any command, no error-handling with null -repo

Tested on 12.04 Ubuntu. It seems to lack error handling with Null -repo.

$ cat /proc/version
Linux version 3.2.0-26-generic (buildd@batsu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012

$ ti new -t 'testing1'
/var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:700:in command': git branch "-a" 2>&1:fatal: Failed to resolve HEAD as a valid ref. (Git::GitExecuteError) from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:672:incommand_lines'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:200:in branches_all' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/branches.rb:12:ininitialize'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:in new' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:inbranches'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:414:in which_branch?' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:32:ininitialize'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:in new' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:inopen'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:34:in initialize' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:innew'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:in parse' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in load' from /usr/local/bin/ti:19 xyz@xyz:~/T$ ti new --help /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:700:incommand': git branch "-a" 2>&1:fatal: Failed to resolve HEAD as a valid ref. (Git::GitExecuteError)
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:672:in command_lines' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:200:inbranches_all'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/branches.rb:12:in initialize' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:innew'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:in branches' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:414:inwhich_branch?'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:32:in initialize' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:innew'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:in open' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:34:ininitialize'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:in new' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:inparse'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:in execute' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13 from /usr/local/bin/ti:19:inload'
from /usr/local/bin/ti:19
xyz@xyz:/T$ ti --help
/var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:700:in command': git branch "-a" 2>&1:fatal: Failed to resolve HEAD as a valid ref. (Git::GitExecuteError) from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:672:incommand_lines'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:200:in branches_all' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/branches.rb:12:ininitialize'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:in new' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:inbranches'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:414:in which_branch?' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:32:ininitialize'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:in new' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:inopen'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:34:in initialize' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:innew'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:in parse' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in load' from /usr/local/bin/ti:19 xyz@xyz:~/T$ ti --help /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:700:incommand': git branch "-a" 2>&1:fatal: Failed to resolve HEAD as a valid ref. (Git::GitExecuteError)
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:672:in command_lines' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:200:inbranches_all'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/branches.rb:12:in initialize' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:innew'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:in branches' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:414:inwhich_branch?'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:32:in initialize' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:innew'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:in open' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:34:ininitialize'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:in new' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:inparse'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:in execute' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13 from /usr/local/bin/ti:19:inload'
from /usr/local/bin/ti:19
xyz@xyz:
/T$ ti
/var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:700:in command': git branch "-a" 2>&1:fatal: Failed to resolve HEAD as a valid ref. (Git::GitExecuteError) from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:672:incommand_lines'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/lib.rb:200:in branches_all' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/branches.rb:12:ininitialize'
from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:in new' from /var/lib/gems/1.8/gems/git-1.2.5/lib/git/base.rb:180:inbranches'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:414:in which_branch?' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/base.rb:32:ininitialize'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:in new' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng.rb:50:inopen'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:34:in initialize' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:innew'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:14:in parse' from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/lib/ticgit-ng/cli.rb:9:inexecute'
from /var/lib/gems/1.8/gems/TicGit-ng-1.0.2.14/bin/ti:13
from /usr/local/bin/ti:19:in `load'
from /usr/local/bin/ti:19

Syncing tickets with different Content-hosts such as Savannah/Github/Bitbucket/local-repo/etc

Now we have a situation:

  1. Ticgit has its own Issues under Ticgit -branch
  2. Github has its own proprietary Issues, apparently impossible to export similarly to Bitbucket

----> 1&2 sucks. No sync. No co-operation?

Common problem 1: tickets between proprietary content-hosts such as Bitbucket.org and Github.org are not synced to TicGit.

Common problem 2: TicGitWeb sucks because we don't use it? I even ask whether devs are actually using TicGit?

  1. Is it possible to co-operate with Bicbucket.org or Github.com so there is less reinvention of wheels? It is does not look good when Ticgit's own Ticgits are 1-3 years' old at least!
  2. Consult developers in Savannah [2] whether they could add some sort of support for TicGit -issues. They are apparently using some Trac -thing and some free-software so it should be easier to co-operate.

TODO 1: contact Bitbucket.org for API -question, can they read Ticgit -style formatted tickets?
TODO 2: contact Github.com for API -question, can they read Ticgit -style formatted tickets?
TODO 3: if they do not co-operate, we need find alternative way to the proprietary things.
TODO 4: is it possible manage TicGit's things through Gitolite so third-parties do not need to care about parsing TicGit's branches? Yes apparently versions/milestones but too much overhead with other things?!

References
[1] https://github.com/jeffWelling/ticgit/tree/ticgit
[2] http://savannah.gnu.org/

Make default options in ticket-view configurable

Suggestions:

  1. some .ticgit -file where users can specify which ticket -options are visible by default
  2. some option choices to choose: full, developer, maintainer, etc
  3. make it possible to edit tickets/milestones/etc from a file?

I. CURRENTLY
$ ti list
TicId Title State Date Assgn Tags

...suggestion below...

II. BITBUCKET.org -style
$ ti list
Title ? ! State Responsible Component Milestone Date created

...because I cannot know every want, I suggest to make the options configurable so that providers such as Bitbucket, Github, etc could add their own modes themselves or some fan.

Record 'Created by' when new ticket is created

I think we should keep track of who created the ticket when it is created. This could be difficult for tickets created via the web interface, and for tickets created on the command line when we don't have knowledge of any identity.

Maybe issue a notice about how best practice is to include an email if one isn't provided.

mini mini typo...

ticgit / lib / ticgit-ng / command.rb
line 12: "Assigns" (g before n)
obviously not an issue, but i'm not a programmer (just user) and this is the best i could do to help... please delete this message.
best of luck.

No unassigned state (or documentation clarification request)

Hi,

I could not make a ticket unassigned. When creating a ticket, it is assigned to the creator by default.

I imagine a fake name passed to --user would work. But I wonder whether it is the expected pattern or if the feature is currently missing.

A small hint in the doc would be nice.

Pagination

Pagination would be helpful if there are lots of tickets

Fix the cache corruption issue

TicGit-ng has a cache corruption issue, documented here

The reason it's in a wiki page is because the symptoms have disappeared and re-appeared over time, but now I know exactly what the problem is, the state file and manual interactions with the ticgit branch. The wiki page simply precedes this github issue.

'ti' or 'ticgitweb' on Ubuntu tells you to install 'ticgit' when TicGit-ng is present

On Ubuntu 10.10 64Bit

$sudo apt-get install git ruby rubygems
$sudo gem install git
$sudo gem install TicGit-ng
$ ti
The program 'ti' is currently not installed. You can install it by typing:
sudo apt-get install ticgit

Humbug!

$locate bin/ti
/home/jeff/Projects/ticgit/bin/ti
/home/jeff/Projects/ticgit/bin/ticgitweb
/usr/bin/tic
/usr/bin/time
/usr/bin/time-admin
/usr/bin/timeout
/usr/lib/erlang/lib/stdlib-1.16.4/ebin/timer.beam
/var/lib/gems/1.8/bin/ti
/var/lib/gems/1.8/bin/ticgitweb
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.2/bin/ti
/var/lib/gems/1.8/gems/TicGit-ng-1.0.2.2/bin/ticgitweb

Edit: For some stupid reason, Markdown requires two spaces in order to properly interpret a newline, grrr...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.