... | ... |
@@ -226,7 +226,7 @@ sub blame { |
226 | 226 |
my $min_author_time; |
227 | 227 |
my @lines = <$fh>; |
228 | 228 |
|
229 |
- my $enc = $self->decide_encoding($rep_info->{user}, $rep_info->{project}, \@lines); |
|
229 |
+ my $enc = $self->decide_encoding($rep_info, \@lines); |
|
230 | 230 |
for my $line (@lines) { |
231 | 231 |
$line = decode($enc, $line); |
232 | 232 |
chomp $line; |
... | ... |
@@ -298,7 +298,7 @@ sub blob { |
298 | 298 |
# Format lines |
299 | 299 |
my @lines = <$fh>; |
300 | 300 |
my @new_lines; |
301 |
- my $enc = $self->decide_encoding($rep_info->{user}, $rep_info->{project}, \@lines); |
|
301 |
+ my $enc = $self->decide_encoding($rep_info, \@lines); |
|
302 | 302 |
for my $line (@lines) { |
303 | 303 |
$line = decode($enc, $line); |
304 | 304 |
chomp $line; |
... | ... |
@@ -334,7 +334,7 @@ sub blob_diffs { |
334 | 334 |
or croak('Open self-diff-tree failed'); |
335 | 335 |
my @diff_tree; |
336 | 336 |
my @diff_tree_lines = <$fh>; |
337 |
- my $diff_tree_enc = $self->decide_encoding($rep_info->{user}, $rep_info->{project}, \@diff_tree_lines); |
|
337 |
+ my $diff_tree_enc = $self->decide_encoding($rep_info, \@diff_tree_lines); |
|
338 | 338 |
for my $line (@diff_tree_lines) { |
339 | 339 |
$line = decode($diff_tree_enc, $line); |
340 | 340 |
chomp $line; |
... | ... |
@@ -370,7 +370,7 @@ sub blob_diffs { |
370 | 370 |
open my $fh, '-|', @cmd |
371 | 371 |
or croak('Open self-diff-tree failed'); |
372 | 372 |
my @lines = <$fh>; |
373 |
- my $enc = $self->decide_encoding($rep_info->{user}, $rep_info->{project}, \@lines); |
|
373 |
+ my $enc = $self->decide_encoding($rep_info, \@lines); |
|
374 | 374 |
@lines = map { decode($enc, $_) } @lines; |
375 | 375 |
close $fh; |
376 | 376 |
my ($lines, $diff_info) = $self->parse_blob_diff_lines(\@lines); |
... | ... |
@@ -910,27 +910,14 @@ sub short_id { |
910 | 910 |
return $self->id($project, @_, '--short=7'); |
911 | 911 |
} |
912 | 912 |
|
913 |
-sub tag { |
|
914 |
- my ($self, $project, $name) = @_; |
|
915 |
- |
|
916 |
- # Tag |
|
917 |
- my $tags = $self->tags($project); |
|
918 |
- for my $tag (@$tags) { |
|
919 |
- return $tag if $tag->{name} eq $name; |
|
920 |
- } |
|
921 |
- |
|
922 |
- return; |
|
923 |
-} |
|
924 |
- |
|
925 | 913 |
sub tags_count { |
926 |
- my ($self, $user, $project) = @_; |
|
914 |
+ my ($self, $rep_info) = @_; |
|
927 | 915 |
|
928 | 916 |
my $limit = 1000; |
929 | 917 |
|
930 | 918 |
# Get tags |
931 |
- my @cmd = $self->cmd_rep( |
|
932 |
- $user, |
|
933 |
- $project, |
|
919 |
+ my @cmd = $self->cmd( |
|
920 |
+ $rep_info, |
|
934 | 921 |
'for-each-ref', |
935 | 922 |
($limit ? '--count='.($limit+1) : ()), |
936 | 923 |
'refs/tags' |
... | ... |
@@ -1018,30 +1005,14 @@ sub tags { |
1018 | 1005 |
return \@tags; |
1019 | 1006 |
} |
1020 | 1007 |
|
1021 |
-sub is_deleted { |
|
1022 |
- my ($self, $diffinfo) = @_; |
|
1023 |
- |
|
1024 |
- # Check if deleted |
|
1025 |
- return $diffinfo->{to_id} eq ('0' x 40); |
|
1026 |
-} |
|
1027 |
- |
|
1028 |
-sub id_set_multi { |
|
1029 |
- my ($self, $rev, $key, $value) = @_; |
|
1030 |
- |
|
1031 |
- if (!exists $rev->{$key}) { $rev->{$key} = $value } |
|
1032 |
- elsif (!ref $rev->{$key}) { $rev->{$key} = [ $rev->{$key}, $value ] } |
|
1033 |
- else { push @{$rev->{$key}}, $value } |
|
1034 |
-} |
|
1035 |
- |
|
1036 | 1008 |
sub last_change_commit { |
1037 |
- my ($self, $user, $project, $rev, $file) = @_; |
|
1009 |
+ my ($self, $rep_info, $rev, $file) = @_; |
|
1038 | 1010 |
|
1039 | 1011 |
my $commit_log = {}; |
1040 | 1012 |
$file = '' unless defined $file; |
1041 | 1013 |
|
1042 |
- my @cmd = $self->cmd_rep( |
|
1043 |
- $user, |
|
1044 |
- $project, |
|
1014 |
+ my @cmd = $self->cmd( |
|
1015 |
+ $rep_info, |
|
1045 | 1016 |
'--no-pager', |
1046 | 1017 |
'log', |
1047 | 1018 |
'-n', |
... | ... |
@@ -1061,7 +1032,7 @@ sub last_change_commit { |
1061 | 1032 |
my $commit; |
1062 | 1033 |
if ($commit_log_text =~ /^([0-9a-zA-Z]+)/) { |
1063 | 1034 |
my $rev = $1; |
1064 |
- $commit = $self->get_commit($user, $project, $rev); |
|
1035 |
+ $commit = $self->get_commit_new($rep_info, $rev); |
|
1065 | 1036 |
} |
1066 | 1037 |
|
1067 | 1038 |
return $commit; |
... | ... |
@@ -1604,7 +1575,7 @@ sub trees { |
1604 | 1575 |
|
1605 | 1576 |
# Commit log |
1606 | 1577 |
my $path = defined $dir && $dir ne '' ? "$dir/$tree->{name}" : $tree->{name}; |
1607 |
- my $commit = $self->last_change_commit($user, $project, $rev, $path); |
|
1578 |
+ my $commit = $self->last_change_commit($self->app->rep_info($user, $project), $rev, $path); |
|
1608 | 1579 |
$tree->{commit} = $commit; |
1609 | 1580 |
|
1610 | 1581 |
push @$trees, $tree; |
... | ... |
@@ -1698,11 +1669,11 @@ sub _chop_str { |
1698 | 1669 |
} |
1699 | 1670 |
|
1700 | 1671 |
sub decide_encoding { |
1701 |
- my ($self, $user, $project, $lines) = @_; |
|
1672 |
+ my ($self, $rep_info, $lines) = @_; |
|
1702 | 1673 |
|
1703 | 1674 |
my $guess_encoding_str = $self->app->dbi->model('project')->select( |
1704 | 1675 |
'guess_encoding', |
1705 |
- where => {user_id => $user, name => $project} |
|
1676 |
+ where => {user_id => $rep_info->{user}, name => $rep_info->{project}} |
|
1706 | 1677 |
)->value; |
1707 | 1678 |
|
1708 | 1679 |
my @guess_encodings; |
... | ... |
@@ -12,7 +12,7 @@ |
12 | 12 |
my ($rev, $file) = $git->parse_rev_path(app->rep_info($user, $project), $rev_file); |
13 | 13 |
|
14 | 14 |
# Commit |
15 |
- my $commit = $git->last_change_commit($user, $project, $rev, $file); |
|
15 |
+ my $commit = $git->last_change_commit(app->rep_info($user, $project), $rev, $file); |
|
16 | 16 |
|
17 | 17 |
# Authors |
18 | 18 |
my $authors = $git->authors(app->rep_info($user, $project), $rev, $file); |
... | ... |
@@ -14,7 +14,7 @@ |
14 | 14 |
my ($rev, $file) = $git->parse_rev_path(app->rep_info($user, $project), $rev_file); |
15 | 15 |
|
16 | 16 |
# Commit |
17 |
- my $commit = $git->last_change_commit($user, $project, $rev, $file); |
|
17 |
+ my $commit = $git->last_change_commit(app->rep_info($user, $project), $rev, $file); |
|
18 | 18 |
my $commit_author_mail = $commit->{author_email}; |
19 | 19 |
my $commit_author_id = app->dbi->model('user')->select( |
20 | 20 |
'id', |
... | ... |
@@ -19,7 +19,7 @@ |
19 | 19 |
$page_count, |
20 | 20 |
$page_count * ($page - 1) |
21 | 21 |
); |
22 |
- my $tags_count = $git->tags_count($user, $project); |
|
22 |
+ my $tags_count = $git->tags_count(app->rep_info($user, $project)); |
|
23 | 23 |
%> |
24 | 24 |
|
25 | 25 |
% layout 'common', title => "Tags \x{30fb} $user/$project"; |
... | ... |
@@ -19,7 +19,7 @@ |
19 | 19 |
$page_count, |
20 | 20 |
$page_count * ($page - 1) |
21 | 21 |
); |
22 |
- my $tags_count = $git->tags_count($user, $project); |
|
22 |
+ my $tags_count = $git->tags_count(app->rep_info($user, $project)); |
|
23 | 23 |
%> |
24 | 24 |
|
25 | 25 |
% layout 'common', title => "Tags \x{30fb} $user/$project"; |
... | ... |
@@ -73,7 +73,7 @@ |
73 | 73 |
my $branches = stash('branches'); |
74 | 74 |
my $branches_count = app->git->branches_count($self->app->rep_info($user, $project)); |
75 | 75 |
my $default_branch_name = app->manager->default_branch($user, $project); |
76 |
- my $tags_count = app->git->tags_count($user, $project); |
|
76 |
+ my $tags_count = app->git->tags_count(app->rep_info($user, $project)); |
|
77 | 77 |
|
78 | 78 |
my $logined = $api->logined; |
79 | 79 |
|