broquaint / gitalist Goto Github PK
View Code? Open in Web Editor NEWA modern git web viewer
Home Page: http://gitalist.com
A modern git web viewer
Home Page: http://gitalist.com
16:13 < jnareb> also does gitweb URI compatibility include modern path_info based URI's, like http://repo.or.cz/w/git.git/blob/HEAD:/Documentation/RelNotes-1.6.6.txt ?
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
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).
[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
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.
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.
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
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.
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.
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 ...
I don't know if I am right here but a 500 Internal Server Error occurs when I open example.github.com.
Greets,
MDickie
The links within the /tree view don't work in as far as they don't navigate through the repo's tree.
STR
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 :)
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)
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.
The path above the blob just links to the top level of the /tree for that commit. It also has a different style.
STR
As mentioned in this pull request we should provide the user with the option of syntax highlighting files that were deemed too large to highlight by default.
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"
All the tests, possibly barring the legacy uri test & POD coverage, need to be passing.
Currently if you want to use your own model (e.g Gitalist::Git::CollectionOfRepositories::Vhost) you can't. This sucks.
It has been suggested by @bobtfish that we make use of extra_argv
(via MooseX::GetOpt
) which I need to look into.
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?
The /summary page should only list the first N branches and I guess the /heads view could do with paging, but perhaps not.
STR
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 :)
If the user requests 'tgz' as the snapshot format, they'll actually be returned a tar.
If the user requests 'tbz(2)', they will receive an error.
Both these should work and return the correct format.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.