Skip to content

Commit 16214e3

Browse files
Fix incorrect file name on new or deleted empty files (#226)
* Fix incorrect file name on new or deleted empty files * Add test for empty file diff
1 parent ac17834 commit 16214e3

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/Gitonomy/Git/Parser/DiffParser.php

+2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ protected function doParse()
3838
$newMode = $this->consumeTo("\n");
3939
$this->consumeNewLine();
4040
$oldMode = null;
41+
$oldName = '/dev/null';
4142
}
4243
if ($this->expects('old mode ')) {
4344
$oldMode = $this->consumeTo("\n");
@@ -49,6 +50,7 @@ protected function doParse()
4950
if ($this->expects('deleted file mode ')) {
5051
$oldMode = $this->consumeTo("\n");
5152
$newMode = null;
53+
$newName = '/dev/null';
5254
$this->consumeNewLine();
5355
}
5456

tests/Gitonomy/Git/Tests/DiffTest.php

+22
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,26 @@ public function testWorksWithUmlauts($repository)
150150
$files = $repository->getCommit(self::FILE_WITH_UMLAUTS_COMMIT)->getDiff()->getFiles();
151151
$this->assertSame('file_with_umlauts_\303\244\303\266\303\274', $files[0]->getNewName());
152152
}
153+
154+
public function testEmptyNewFile()
155+
{
156+
$diff = Diff::parse("diff --git a/test b/test\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\n");
157+
$firstFile = $diff->getFiles()[0];
158+
159+
$this->assertTrue($firstFile->isCreation());
160+
$this->assertFalse($firstFile->isDeletion());
161+
$this->assertSame('test', $firstFile->getNewName());
162+
$this->assertNull($firstFile->getOldName());
163+
}
164+
165+
public function testEmptyOldFile()
166+
{
167+
$diff = Diff::parse("diff --git a/test b/test\ndeleted file mode 100644\nindex e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000\n");
168+
$firstFile = $diff->getFiles()[0];
169+
170+
$this->assertFalse($firstFile->isCreation());
171+
$this->assertTrue($firstFile->isDeletion());
172+
$this->assertNull($firstFile->getNewName());
173+
$this->assertSame('test', $firstFile->getOldName());
174+
}
153175
}

0 commit comments

Comments
 (0)