diff --git a/SourceSFSVN/SourceSFSVN.php b/SourceSFSVN/SourceSFSVN.php index fbd986fa6..e4761f2ef 100644 --- a/SourceSFSVN/SourceSFSVN.php +++ b/SourceSFSVN/SourceSFSVN.php @@ -48,15 +48,17 @@ public function url_changeset( $p_repo, $p_changeset ) { } public function url_file( $p_repo, $p_changeset, $p_file ) { - if ( $p_file->action == 'D' ) { - return ''; - } + # if the file has been removed, it doesn't exist in current revision + # so we generate a link to (current revision - 1) + $t_revision = ($p_file->action == 'rm') + ? $p_changeset->revision - 1 + : $p_changeset->revision; return $this->sf_url( $p_repo ) . urlencode( $p_file->filename ) . - '?view=markup&pathrev=' . urlencode( $p_changeset->revision ); + '?view=markup&pathrev=' . urlencode( $t_revision ); } public function url_diff( $p_repo, $p_changeset, $p_file ) { - if ( $p_file->action == 'D' || $p_file->action == 'A' ) { + if ( $p_file->action == 'rm' || $p_file->action == 'add' ) { return ''; } $t_diff = '?r1=' . urlencode( $p_changeset->revision ) . '&r2=' . urlencode( $p_changeset->revision - 1 );