Fix line commenting for the initial commit
The initial commit doesn't have a parent, so explicitly pass the blank SHA and handle that when calculating the position.
This commit is contained in:
parent
12e9df3270
commit
4a4c1765be
|
@ -7,6 +7,7 @@ v 8.11.0 (unreleased)
|
||||||
- Fix don't pass a local variable called `i` to a partial. !20510 (herminiotorres)
|
- Fix don't pass a local variable called `i` to a partial. !20510 (herminiotorres)
|
||||||
- Add delimiter to project stars and forks count (ClemMakesApps)
|
- Add delimiter to project stars and forks count (ClemMakesApps)
|
||||||
- Fix rename `add_users_into_project` and `projects_ids`. !20512 (herminiotorres)
|
- Fix rename `add_users_into_project` and `projects_ids`. !20512 (herminiotorres)
|
||||||
|
- Fix adding line comments on the initial commit to a repo !5900
|
||||||
- Fix the title of the toggle dropdown button. !5515 (herminiotorres)
|
- Fix the title of the toggle dropdown button. !5515 (herminiotorres)
|
||||||
- Rename `markdown_preview` routes to `preview_markdown`. (Christopher Bartz)
|
- Rename `markdown_preview` routes to `preview_markdown`. (Christopher Bartz)
|
||||||
- Update to Ruby 2.3.1. !4948
|
- Update to Ruby 2.3.1. !4948
|
||||||
|
|
|
@ -229,7 +229,7 @@ class Commit
|
||||||
|
|
||||||
def diff_refs
|
def diff_refs
|
||||||
Gitlab::Diff::DiffRefs.new(
|
Gitlab::Diff::DiffRefs.new(
|
||||||
base_sha: self.parent_id || self.sha,
|
base_sha: self.parent_id || Gitlab::Git::BLANK_SHA,
|
||||||
head_sha: self.sha
|
head_sha: self.sha
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
@ -139,13 +139,19 @@ module Gitlab
|
||||||
private
|
private
|
||||||
|
|
||||||
def find_diff_file(repository)
|
def find_diff_file(repository)
|
||||||
diffs = Gitlab::Git::Compare.new(
|
# We're at the initial commit, so just get that as we can't compare to anything.
|
||||||
|
if Gitlab::Git.blank_ref?(start_sha)
|
||||||
|
compare = Gitlab::Git::Commit.find(repository.raw_repository, head_sha)
|
||||||
|
else
|
||||||
|
compare = Gitlab::Git::Compare.new(
|
||||||
repository.raw_repository,
|
repository.raw_repository,
|
||||||
start_sha,
|
start_sha,
|
||||||
head_sha
|
head_sha
|
||||||
).diffs(paths: paths)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
diff = compare.diffs(paths: paths).first
|
||||||
|
|
||||||
diff = diffs.first
|
|
||||||
return unless diff
|
return unless diff
|
||||||
|
|
||||||
Gitlab::Diff::File.new(diff, repository: repository, diff_refs: diff_refs)
|
Gitlab::Diff::File.new(diff, repository: repository, diff_refs: diff_refs)
|
||||||
|
|
|
@ -339,6 +339,48 @@ describe Gitlab::Diff::Position, lib: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "position for a file in the initial commit" do
|
||||||
|
let(:commit) { project.commit("1a0b36b3cdad1d2ee32457c102a8c0b7056fa863") }
|
||||||
|
|
||||||
|
subject do
|
||||||
|
described_class.new(
|
||||||
|
old_path: "README.md",
|
||||||
|
new_path: "README.md",
|
||||||
|
old_line: nil,
|
||||||
|
new_line: 1,
|
||||||
|
diff_refs: commit.diff_refs
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#diff_file" do
|
||||||
|
it "returns the correct diff file" do
|
||||||
|
diff_file = subject.diff_file(project.repository)
|
||||||
|
|
||||||
|
expect(diff_file.new_file).to be true
|
||||||
|
expect(diff_file.new_path).to eq(subject.new_path)
|
||||||
|
expect(diff_file.diff_refs).to eq(subject.diff_refs)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#diff_line" do
|
||||||
|
it "returns the correct diff line" do
|
||||||
|
diff_line = subject.diff_line(project.repository)
|
||||||
|
|
||||||
|
expect(diff_line.added?).to be true
|
||||||
|
expect(diff_line.new_line).to eq(subject.new_line)
|
||||||
|
expect(diff_line.text).to eq("+testme")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#line_code" do
|
||||||
|
it "returns the correct line code" do
|
||||||
|
line_code = Gitlab::Diff::LineCode.generate(subject.file_path, subject.new_line, 0)
|
||||||
|
|
||||||
|
expect(subject.line_code(project.repository)).to eq(line_code)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#to_json" do
|
describe "#to_json" do
|
||||||
let(:hash) do
|
let(:hash) do
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue