Giter Site home page Giter Site logo

gitalist's People

Contributors

bobtfish avatar bricas avatar broquaint avatar daxim avatar dipthegeezer avatar gisle avatar hggh avatar ilmari avatar lwsitu avatar pplu avatar seveas avatar tomhukins avatar wchristian avatar zoffixznet avatar zts 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

gitalist's Issues

The HEAD in stash becomes sticky

It seems as though the HEAD in the stash becomes sticky. This can be seen when looking at the log of a branch after it has been updated.

STR

  1. Start Gitalist
  2. View branch in /shortlog
  3. Push new commit to branch
  4. View branch in /shortlog again but no new commit appears

Improve syntax highlighting?

You mentioned in the talk today that the syntax highlighting should be better. Here is the bug for that :)

BTW, I will see if I can hack Text::EmacsColor support in. It handles MX::Declare stuff almost perfectly (and handles non-Perl stuff really well too).

Can't load tag tree view

[error] Caught exception in Gitalist::Controller::Fragment::Ref->tree "Can't locate object method "tree" via package "Gitalist::Git::Object::Tag" at lib/Gitalist/Controller/Fragment/Ref.pm line 51."

when I try to load something like /perl/v5.16.3-RC1/tree

changing default port number & listen address

I tried to bind gitalist_server.pl to address 127.0.0.1 and port 4321 by adding this to my gitalist.conf file:

host 127.0.0.1
port 4321

However, gitalist_server.pl seems to ignore these. What am I doing wrong? Thanks for your consideration.

file history navigation problems

When viewing "history" for a file, the first page returned shows only commits touching that file.
However, the next/prev links drop the file parameter, so subsequent pages show the full log.

Additionally, none of the links show the blob at that revision. It is currently necessary to navigate from the root of the tree after selecting the desired revision.

The /blobdiff action is broken

When going to the /blobdiff action this exception is thrown:

Caught exception in Gitalist::Controller::Root->blobdiff "Validation failed for 'MooseX::Types::Structured::Tuple[MooseX::Types::Structured::Tuple[Object],MooseX::Types::Structured::Dict[commit,Gitalist::Git::Object,patch,MooseX::Types::Structured::Optional[Bool],parent,MooseX::Types::Structured::Optional[Maybe[MooseX::Types::Common::String::NonEmptySimpleStr]],file,MooseX::Types::Structured::Optional[MooseX::Types::Common::String::NonEmptySimpleStr]]]' failed with value [ [ Gitalist::Git::Project=HASH(0xae33e04) ], { commit => Gitalist::Git::Object=HASH(0xae337d4), file => "gitalist.conf", parent => "", patch => 1 } ], Internal Validation Error is: Validation failed for 'MooseX::Types::Structured::Dict[commit,Gitalist::Git::Object,patch,MooseX::Types::Structured::Optional[Bool],parent,MooseX::Types::Structured::Optional[Maybe[MooseX::Types::Common::String::NonEmptySimpleStr]],file,MooseX::Types::Structured::Optional[MooseX::Types::Common::String::NonEmptySimpleStr]]' failed with value { commit => Gitalist::Git::Object={ _gpp_obj => Git::PurePerl::Object::Commit=HASH(0xae4af3c), mode => 0, modestr => "?---------", project => Gitalist::Git::Project=HASH(0xae33e04), sha1 => "f78e75d8411b66fdcb52c006c917abec648e61d9", size => 241, ... }, file => "gitalist.conf", parent => "", patch => 1 } at /home/dbrook/.perl-lib/MooseX/Method/Signatures/Meta/Method.pm line 443
    MooseX::Method::Signatures::Meta::Method::validate('MooseX::Method::Signatures::Meta::Method=HASH(0xa59bc34)', 'ARRAY(0xa56dd74)') called at /home/dbrook/.perl-lib/MooseX/Method/Signatures/Meta/Method.pm line 145
    Gitalist::Git::Project::diff('Gitalist::Git::Project=HASH(0xae33e04)', 'commit', 'Gitalist::Git::Object=HASH(0xae337d4)', 'parent', '', 'file', 'gitalist.conf', 'patch', 1, ...) called at /home/dbrook/dev/gitalist/script/../lib/Gitalist/Controller/Root.pm line 216
    ...

STR

  1. Go to any commit where a file has changed
  2. Click a "diff" action in the list of files changed
  3. Asplode

branch select does not work

when changing the branch selection in the dropdown menu on the repo page, it resets back to HEAD.

I think it may be that the page is reloading to the correct URL, but then the dropdown may be triggering another change back to HEAD?

The formatting of the dropdown is a bit wonky. For the HEAD option, there is a 'value' attribute but it has no value. No option is marked as SELECTED. This may be related to the problem, but I'm not sure.

IPC::Run does not play nice with FCGI

The issue is IPC::Run ends up getting hold of the FCGI socket (somehow) and calling FILENO on it.
now I have no idea how that works, given IPC::Run should be setting up pipes for stdout/stderr/stdin, forking and pushing stuff back and forth
@t0m it's quite possibly doing something like assuming STDERR is there so that it can dup/replace it or similar.. And the FCGI stuff is possibly doing something dumb like closing STDERR, then opening the FCGI socket (and so that getting fd2)..

The fail can be caused by starting gitalist_fastcgi.pl and navigating to the index page, which dies with this:
Caught exception in Gitalist::Controller::Root->auto "Can't locate object method "FILENO" via package "FCGI::Stream" at /Users/zts/perl5/lib/perl5/IPC/Run.pm line 1113.
Can't locate object method "FILENO" via package "FCGI::Stream" at /Users/zts/perl5/lib/perl5/IPC/Run.pm line 1113.
Can't locate object method "FILENO" via package "FCGI::Stream" at /Users/zts/perl5/lib/perl5/IPC/Run.pm line 1113.

However, if gitalist_fastcgi.pl is started with the -e option, things work again.

Mad stuff we may find in broken repos

14:46 < jnareb> well, the problem got noticed for gitweb, where some repositories had corrupted commits somehow having NUL character in the middle of commit message ...

gitalist.com

I don't know if I am right here but a 500 Internal Server Error occurs when I open example.github.com.
Greets,
MDickie

Links in /tree don't work

The links within the /tree view don't work in as far as they don't navigate through the repo's tree.

STR

  1. Go to a /tree view
  2. Click on any directory
  3. The page that loads should display the same as the previous page

A better approach to SHA1s needed

Within the code SHA1s (and refs) are handled explicitly like any other string. They should really be defined in terms of a type constraint at the least (although the regexp is still needed for munging stuff). Further thoughts welcome :)

Project (p) parameter is not properly validated.

  1. When requesting an invalid project (eg, /summary?p=DoesNotExist), the response code is 404 but a broken page is still rendered.
  2. The p parameter is used unanitised as a relative path, so is vulnerable to directory traversal.

Visual feedback

15:54 < jnareb> * lack of visual separation e.g. in log-like views
15:54 < jnareb> * commit titles in log-like views (shortlog, summary) not being links
15:56 < jnareb> * no zebra coloring (zebra table in shortlog-like views (shortlog, history, summary)
15:58 < jnareb> * no '...' linking to 'shortlog' view in shortlog part of 'summary' view, or at least something to denote that there are more commits then those shown
15:55 < jnareb> * color choice
15:58 @t0m Can you elucidate somewhat more on 'color choice', as most people seem to prefer it..
16:01 < jnareb> about color choice: it is a bit sparse colored, using white background for most, but dark gray (not light gray / pastel) for some elements of page
16:04 < jnareb> I think you should take a look at modern gitweb (e.g. git.kernel.org or repo.or.cz) and other web interfaces (like cgit or InDefero)

Installation fails if MooseX::Types::ISO8601 >= 0.09

When I ran the tests of the latest release, I got a bunch of "cannot coerce non-UTC time" error messages due to this change of MooseX::Types::ISO8601.
For the tests to pass, you can just use $_[0]->ymd('-') . 'T' . $_[0]->hms(':') . 'Z' instead of to_ISO8601DateTimeStr(shift) in Gitalist::Git::Types. But I'm not sure if it is right to just add a "Z" even for non-UTC datetimes, although it is expected in t/02git_{Repository,object}.t.

Path link in /blob doesn't work

The path above the blob just links to the top level of the /tree for that commit. It also has a different style.

STR

  1. Go to the /tree view
  2. Navigate to to a directory
  3. Go to any blob
  4. From the /blob view click on the directory you just came from
  5. Back to the top level /tree view

make test 0.004001 on Debian SID - Gitalist::Controller::Fragment::Repository->log "Validation failed

I have tested your new version 0.004001 in Debian SID.

Running make test outputs the following error:

Git version: git version 1.7.10.4
t/00git_version.t ........................................... ok
[error] Caught exception in Gitalist::Controller::Fragment::Repository->log "Validation failed for 'Tuple[Tuple[Object,MooseX::Types::Common::String::NonEmptySimpleStr],Dict[]]' with value "[ [ Gitalist::Git::Repository=HASH(0x7633278), undef ], { } ], Internal Validation Error is: \n [+] Validation failed for 'Tuple[Object,MooseX::Types::Common::String::NonEmptySimpleStr]' with value "[ Gitalist::Git::Repository{ _util: Gitalist::Git::Util=HASH(0x749bab8), description: "Unnamed repository, edit the .git/description file to set a description", last_change: undef, name: "bare.git", owner: "Jonas Genannt", path: Path::Class::Dir=HASH(0x74758f0) }, undef ]"\n [+] Must be a non-empty single line of no more than 255 chars" at /usr/share/perl5/MooseX/Method/Signatures/Meta/Method.pm line 435
MooseX::Method::Signatures::Meta::Method::validate('MooseX::Method::Signatures::Meta::Method=HASH(0x681a010)', 'ARRAY(0x67ebc50)') called at /usr/share/perl5/MooseX/Method/Signatures/Meta/Method.pm line 151
Gitalist::Git::Repository::get_object('Gitalist::Git::Repository=HASH(0x7633278)', undef) called at /«BUILDDIR»/gitalist-0.004001+dfsg/blib/lib/Gitalist/URIStructure/Repository.pm line 31
Class::MOP::Class:::before('Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 33
Class::MOP::Method::Wrapped::ANON('Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 91
Gitalist::Controller::Fragment::Repository::log('Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Action.pm line 65
Catalyst::Action::execute('Catalyst::Action=HASH(0x69ec940)', 'Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x69ec940)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x69ec940)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action=HASH(0x69ec940)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/ActionChain.pm line 36
Catalyst::ActionChain::dispatch('Catalyst::ActionChain=HASH(0x74da678)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Controller.pm line 158
Catalyst::Controller::_ACTION('Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Action.pm line 65
Catalyst::Action::execute('Catalyst::Action=HASH(0x69ebca0)', 'Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x69ebca0)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x69ebca0)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action=HASH(0x69ebca0)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 257
Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'forward', 'Gitalist=HASH(0x77366d0)', '_ACTION') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 237
Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x77366d0)', '_ACTION') called at /usr/share/perl5/Catalyst.pm line 358
Catalyst::forward('Gitalist=HASH(0x77366d0)', '_ACTION') called at /usr/share/perl5/Catalyst/Controller.pm line 132
Catalyst::Controller::_DISPATCH('Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Action.pm line 65
Catalyst::Action::execute('Catalyst::Action=HASH(0x692a358)', 'Gitalist::Controller::Fragment::Repository=HASH(0x60d2d58)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x692a358)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x77366d0)', 'Gitalist::Controller::Fragment::Repository', 'Catalyst::Action=HASH(0x692a358)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action=HASH(0x692a358)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 257
Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'forward', 'Gitalist=HASH(0x77366d0)', '/fragment/repository/_DISPATCH') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 237
Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x77366d0)', '/fragment/repository/_DISPATCH') called at /usr/share/perl5/Catalyst.pm line 358
Catalyst::forward('Gitalist=HASH(0x77366d0)', '/fragment/repository/_DISPATCH') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 105
Catalyst::Dispatcher::dispatch('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst.pm line 1614
Catalyst::dispatch('Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Plugin/Static/Simple.pm line 77
Class::MOP::Class:::around('CODE(0x50e9ef0)', 'Gitalist=HASH(0x77366d0)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 162
Class::MOP::Method::Wrapped::ANON('Gitalist=HASH(0x77366d0)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 91
Gitalist::dispatch('Gitalist=HASH(0x77366d0)') called at /usr/share/perl5/Catalyst/Plugin/SubRequest.pm line 101
Catalyst::Plugin::SubRequest::sub_request_response('Gitalist=HASH(0x74e4b40)', '/fragment/bare.git/shortlog', 'HASH(0x774b308)', 'HASH(0x77220f8)') called at /usr/share/perl5/Catalyst/Plugin/SubRequest.pm line 81
Catalyst::Plugin::SubRequest::sub_request('Gitalist=HASH(0x74e4b40)', '/fragment/bare.git/shortlog', 'HASH(0x774b308)', 'HASH(0x77220f8)') called at /usr/share/perl5/Catalyst/View/Component/SubInclude/SubRequest.pm line 93
Catalyst::View::Component::SubInclude::SubRequest::generate_subinclude('Catalyst::View::Component::SubInclude::SubRequest=HASH(0x6091...', 'Gitalist=HASH(0x74e4b40)', '/fragment/repository/shortlog', 'ARRAY(0x7757018)') called at /usr/share/perl5/Catalyst/View/Component/SubInclude.pm line 155
Catalyst::View::Component::SubInclude::_subinclude_using('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', 'Catalyst::View::Component::SubInclude::SubRequest', '/fragment/repository/shortlog', 'ARRAY(0x7757018)') called at /usr/share/perl5/Catalyst/View/Component/SubInclude.pm line 149
Catalyst::View::Component::SubInclude::_subinclude('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', '/fragment/repository/shortlog', 'ARRAY(0x7757018)') called at /usr/share/perl5/Catalyst/View/Component/SubInclude.pm line 136
Catalyst::View::Component::SubInclude::ANON('Gitalist=HASH(0x74e4b40)', '/fragment/repository/shortlog', 'ARRAY(0x7757018)') called at /usr/share/perl5/Catalyst/Component/ContextClosure.pm line 10
Catalyst::Component::ContextClosure::ANON('/fragment/repository/shortlog', 'ARRAY(0x7757018)') called at /«BUILDDIR»/gitalist-0.004001+dfsg/root/repository/summary.tt2 line 6
eval {...} called at /«BUILDDIR»/gitalist-0.004001+dfsg/root/repository/summary.tt2 line 6
eval {...} called at /«BUILDDIR»/gitalist-0.004001+dfsg/root/repository/summary.tt2 line 7
Template::Document::ANON('Template::Context=HASH(0x605b9f0)') called at /usr/lib/perl5/Template/Document.pm line 163
eval {...} called at /usr/lib/perl5/Template/Document.pm line 161
Template::Document::process('Template::Document=HASH(0x7496b98)', 'Template::Context=HASH(0x605b9f0)') called at /usr/lib/perl5/Template/Context.pm line 347
eval {...} called at /usr/lib/perl5/Template/Context.pm line 321
Template::Context::process('Template::Context=HASH(0x605b9f0)', 'Template::Document=HASH(0x7496b98)') called at /usr/lib/perl5/Template/Service.pm line 94
eval {...} called at /usr/lib/perl5/Template/Service.pm line 91
Template::Service::process('Template::Service=HASH(0x6058f50)', 'repository/summary.tt2', 'HASH(0x7722398)') called at /usr/lib/perl5/Template.pm line 66
Template::process('Template=HASH(0x6058860)', 'repository/summary.tt2', 'HASH(0x7722398)', 'SCALAR(0x5a15528)') called at /usr/share/perl5/Catalyst/View/TT.pm line 263
Catalyst::View::TT::render('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', 'repository/summary.tt2') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 50
Class::MOP::Method::Wrapped::ANON('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', 'repository/summary.tt2') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 91
Gitalist::View::Default::render('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', 'repository/summary.tt2') called at /usr/share/perl5/Catalyst/View/TT.pm line 223
eval {...} called at /usr/share/perl5/Catalyst/View/TT.pm line 223
Catalyst::View::TT::process('Gitalist::View::Default=HASH(0x6058620)', 'Gitalist=HASH(0x74e4b40)', 'rest') called at /usr/share/perl5/Catalyst/Action/Serialize/View.pm line 29
Catalyst::Action::Serialize::View::execute('Catalyst::Action::Serialize::View=HASH(0x749b5d8)', 'Gitalist::Controller::Root=HASH(0x60a5e00)', 'Gitalist=HASH(0x74e4b40)', 'Default') called at /usr/share/perl5/Catalyst/Action/Serialize.pm line 50
eval {...} called at /usr/share/perl5/Catalyst/Action/Serialize.pm line 49
Catalyst::Action::Serialize::execute('Catalyst::Action::Serialize=HASH(0x6a27b50)', 'Gitalist::Controller::Root=HASH(0x60a5e00)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Root', 'Catalyst::Action::Serialize=HASH(0x6a27b50)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Root', 'Catalyst::Action::Serialize=HASH(0x6a27b50)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action::Serialize=HASH(0x6a27b50)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Controller.pm line 171
Catalyst::Controller::_END('Gitalist::Controller::Repository=HASH(0x60a9c58)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Action.pm line 65
Catalyst::Action::execute('Catalyst::Action=HASH(0x694edd0)', 'Gitalist::Controller::Repository=HASH(0x60a9c58)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Repository', 'Catalyst::Action=HASH(0x694edd0)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Repository', 'Catalyst::Action=HASH(0x694edd0)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action=HASH(0x694edd0)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 257
Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'forward', 'Gitalist=HASH(0x74e4b40)', '_END') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 237
Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x74e4b40)', '_END') called at /usr/share/perl5/Catalyst.pm line 358
Catalyst::forward('Gitalist=HASH(0x74e4b40)', '_END') called at /usr/share/perl5/Catalyst/Controller.pm line 135
Catalyst::Controller::_DISPATCH('Gitalist::Controller::Repository=HASH(0x60a9c58)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Action.pm line 65
Catalyst::Action::execute('Catalyst::Action=HASH(0x692ae98)', 'Gitalist::Controller::Repository=HASH(0x60a9c58)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst.pm line 1668
eval {...} called at /usr/share/perl5/Catalyst.pm line 1668
Catalyst::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Repository', 'Catalyst::Action=HASH(0x692ae98)') called at /usr/share/perl5/Catalyst/Plugin/StackTrace.pm line 22
Catalyst::Plugin::StackTrace::execute('Gitalist=HASH(0x74e4b40)', 'Gitalist::Controller::Repository', 'Catalyst::Action=HASH(0x692ae98)') called at /usr/share/perl5/Catalyst/Action.pm line 60
Catalyst::Action::dispatch('Catalyst::Action=HASH(0x692ae98)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 257
Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'forward', 'Gitalist=HASH(0x74e4b40)', '/repository/_DISPATCH') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 237
Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x74e4b40)', '/repository/_DISPATCH') called at /usr/share/perl5/Catalyst.pm line 358
Catalyst::forward('Gitalist=HASH(0x74e4b40)', '/repository/_DISPATCH') called at /usr/share/perl5/Catalyst/Dispatcher.pm line 105
Catalyst::Dispatcher::dispatch('Catalyst::Dispatcher=HASH(0x50bd190)', 'Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst.pm line 1614
Catalyst::dispatch('Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst/Plugin/Static/Simple.pm line 77
Class::MOP::Class:::around('CODE(0x50e9ef0)', 'Gitalist=HASH(0x74e4b40)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 162
Class::MOP::Method::Wrapped::ANON('Gitalist=HASH(0x74e4b40)') called at /usr/lib/perl5/Class/MOP/Method/Wrapped.pm line 91
Gitalist::dispatch('Gitalist=HASH(0x74e4b40)') called at /usr/share/perl5/Catalyst.pm line 1964
Catalyst::ANON() called at /usr/share/perl5/Try/Tiny.pm line 76
eval {...} called at /usr/share/perl5/Try/Tiny.pm line 67
Try::Tiny::try('CODE(0x74dfc40)', 'Try::Tiny::Catch=REF(0x74e43a8)') called at /usr/share/perl5/Catalyst.pm line 1970
Catalyst::handle_request('Gitalist', 'env', 'HASH(0x7530098)', 'response_cb', 'CODE(0x74b1558)') called at /usr/share/perl5/Catalyst/Engine.pm line 685
Catalyst::Engine::ANON('CODE(0x74b1558)') called at /usr/share/perl5/HTTP/Message/PSGI.pm line 98
HTTP::Message::PSGI::res_from_psgi('CODE(0x74b1498)') called at /usr/share/perl5/HTTP/Message/PSGI.pm line 153
HTTP::Response::from_psgi('HTTP::Response', 'CODE(0x74b1498)') called at /usr/share/perl5/Plack/Test/MockHTTP.pm line 24
Plack::Test::MockHTTP::ANON() called at /usr/share/perl5/Try/Tiny.pm line 71
eval {...} called at /usr/share/perl5/Try/Tiny.pm line 67
Try::Tiny::try('CODE(0x73ae0d0)', 'Try::Tiny::Catch=REF(0x777ef10)') called at /usr/share/perl5/Plack/Test/MockHTTP.pm line 27
Plack::Test::MockHTTP::ANON('HTTP::Request=HASH(0x74b1ae0)') called at /usr/share/perl5/Catalyst/Test.pm line 280
Catalyst::Test::ANON('CODE(0x73adec0)') called at /usr/share/perl5/Plack/Test/MockHTTP.pm line 33
Plack::Test::MockHTTP::test_psgi('app', 'CODE(0x7381958)', 'mangle_response', 'CODE(0x2963588)', 'app', 'CODE(0x73ae3d0)', 'client', 'CODE(0x73ae370)') called at /usr/share/perl5/Plack/Test.pm line 17
Plack::Test::test_psgi('app', 'CODE(0x7381958)', 'mangle_response', 'CODE(0x2963588)', 'app', 'CODE(0x73ae3d0)', 'client', 'CODE(0x73ae370)') called at /usr/share/perl5/Catalyst/Test.pm line 283
Catalyst::Test::_request('HASH(0x1775cb0)', '/bare.git') called at /usr/share/perl5/Catalyst/Test.pm line 324
Catalyst::Test::_local_request('Gitalist', '/bare.git') called at /usr/share/perl5/Catalyst/Test.pm line 31
Catalyst::Test::ANON('/bare.git') called at t/01app.t line 18"

Fix the faily tests

All the tests, possibly barring the legacy uri test & POD coverage, need to be passing.

Example Apache FastCGI configuration gives a warning

The example configuration specifies the gitalist.fcgi script as DocumentRoot, which causes a warning on Apache restarts because it's not actually a directory. I couldn't find anything in the Apache docs about this use of DocumentRoot, but it seems to work nicely and even gives me pretty URLs without setting up any rewrite rules.

So.. I was wondering if there was a different way to achieve the same behaviour without having the warning message?

Too many branches on summary

The /summary page should only list the first N branches and I guess the /heads view could do with paging, but perhaps not.

STR

  1. Go to a repo with lots of branches
  2. Go to /summary
  3. Be disgusted by the number of branches.

no per-line link back to "previous version of this line" in blame

20:43 <Nicholas> also, on http://goatse.co.uk/~bobtfish/Gitalist/script/gitalist.fcgi/blame?p=Gitalist;h=7af1ab8eb930b9120bef2ccc6b2100f45abc93cd;f=lib%2FGitalist.pm
20:43 <t0m> I'm pushing new copy at the moment
20:43 <t0m> ooh, yay :)
20:43 <Nicholas> there's no per-line link back to "previous version of this line"
20:44 <Nicholas> on http://perl5.git.perl.org/perl.git/blame/HEAD:/.gitignore it's the link on the line number
20:44 <t0m> please to be logging a bug for that? :)
20:44 <Nicholas> OK
20:44 <Nicholas> rt.cpan.org?
20:45 <t0m> http://github.com/broquaint/Gitalist/issues
20:45 <t0m> ta! :)
20:45 <Nicholas> OK
20:47 <Nicholas> not going to work
20:47 <Nicholas> I don't have a github account, and won't be getting one
20:47 <Nicholas> I object to the terms
20:47 <Nicholas> (sorry)
20:47 <t0m> hah, ok. No worries, I don't care :)
20:47 <t0m> It's what Dan chose to use.
20:48 <Nicholas> it's a fair call
20:48 <t0m> I'm happy to make one for you.
20:48 <Nicholas> OK, that would be cool. thanks
20:48 <t0m> no problem
20:48 <Nicholas> as I'd really like *that* before we defect perl5.git.perl.org from gitweb.cgi
20:48 <Nicholas> as I use that link a lot
20:48  * t0m nodnod, twill be fixed :)

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.