Showing 2 changed files with 30 additions and 2 deletions
+20 -1
lib/Gitprep/Manager.pm
... ...
@@ -501,7 +501,6 @@ sub original_project {
501 501
   croak "Original project don't eixsts." unless defined $original_project_row_id;
502 502
   
503 503
   # Original project
504
-  $DB::single = 1 if $main::x;
505 504
   my $original_project = $dbi->model('project')->select(
506 505
     [
507 506
       {__MY__ => '*'},
... ...
@@ -517,6 +516,26 @@ sub original_project {
517 516
   return $original_project;
518 517
 }
519 518
 
519
+sub child_project {
520
+  my ($self, $user_id, $project_id, $child_user_id) = @_;
521
+  
522
+  my $project_row_id = $self->app->dbi->model('project')->select(
523
+    'project.row_id', where => {'user.id' => $user_id, 'project.id' => $project_id}
524
+  )->value;
525
+  
526
+  my $child_project = $self->app->dbi->model('project')->select(
527
+    [
528
+      {__MY__ => '*'},
529
+    ],
530
+    where => {
531
+      'project.original_project' => $project_row_id,
532
+      'user.id' => $child_user_id
533
+    }
534
+  )->one;
535
+  
536
+  return $child_project;
537
+}
538
+
520 539
 sub projects {
521 540
   my ($self, $user_id) = @_;
522 541
   
+10 -1
templates/compare.html.ep
... ...
@@ -10,6 +10,16 @@
10 10
   my $page = param('page') || 0;
11 11
   my $expand = param('expand');
12 12
   
13
+  # Get target user, project, branch
14
+  my $target_user_id;
15
+  my $target_branch;
16
+  my $target_project;
17
+  if ($rev =~ /^([^:]+):(.+)/) {
18
+    $target_user_id = $1;
19
+    $target_branch = $2;
20
+    $target_project = $self->app->manager->child_project($user_id, $project_id, $target_user_id);
21
+  }
22
+  
13 23
   unless ($from_rev) {
14 24
     $from_rev = app->manager->default_branch($user_id, $project_id);
15 25
   }
... ...
@@ -96,7 +106,6 @@
96 106
         $self->redirect_to("/$user_id/$project_id/pull/$new_pull_request_row_id");
97 107
         return;
98 108
       }
99
-      
100 109
     }
101 110
   }
102 111