Indefero

Indefero Commit Details


Date:2009-02-02 14:42:31 (15 years 10 months ago)
Author:Loic d'Anterroches
Branch:dev, develop, feature-issue_links, feature.better-home, feature.content-md5, feature.diff-whitespace, feature.download-md5, feature.issue-links, feature.issue-of-others, feature.issue-summary, feature.search-filter, feature.webrepos, feature.wiki-default-page, master, release-1.1, release-1.2, release-1.3
Commit:b7d1afb01e0e65f158d4b04672fe71843020ab26
Parents: d594b3412a2ef95089c7955325c4571cca80d8ed
Message:Fixed bug in the diff display when a single empty line was removed.

Changes:

File differences

src/IDF/Diff.php
110110
111111
112112
113
114
115
116
117
118
113119
114120
115121
......
243249
244250
245251
246
252
253
247254
248255
249256
$lline++;
continue;
}
if ($line == '') {
$files[$current_file]['chunks'][$current_chunk-1][] = array($lline, $rline, $line);
$rline++;
$lline++;
continue;
}
}
$this->files = $files;
return $files;
for ($lc=$spans[$i][0];$lc<$chunk[0][0];$lc++) {
$exists = false;
foreach ($chunk_lines as $line) {
if ($lc == $line[0] or ($chunk[0][1]-$chunk[0][0]+$lc) == $line[1]) {
if ($lc == $line[0]
or ($chunk[0][1]-$chunk[0][0]+$lc) == $line[1]) {
$exists = true;
break;
}
src/IDF/Tests/TestDiff.php
7979
8080
8181
82
83
84
85
86
87
88
89
90
91
92
8293
$this->assertEqual(2, count($diff->files));
$this->assertEqual(12, count($diff->files['src/IDF/conf/idf.php-dist']['chunks'][0]));
}
public function testDiffRemoveOneLine()
{
$diff_content = file_get_contents(dirname(__FILE__).'/test-diff-remove-oneline.diff');
$diff = new IDF_Diff($diff_content);
$diff->parse();
$this->assertEqual(2, count($diff->files));
$this->assertEqual(array(280, 288, ''),
$diff->files['src/IDF/Scm/Git.php']['chunks'][1][2]);
$this->assertEqual(7, count($diff->files['src/IDF/Scm/Git.php']['chunks'][1]));
}
}
src/IDF/Tests/test-diff-remove-oneline.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
diff --git a/src/IDF/Scm/Git.php b/src/IDF/Scm/Git.php
index 5f35e0b..ebe0530 100644
--- a/src/IDF/Scm/Git.php
+++ b/src/IDF/Scm/Git.php
@@ -250,14 +250,22 @@ class IDF_Scm_Git
* Get commit details.
*
* @param string Commit ('HEAD').
+ * @param bool Get commit diff (false).
* @return array Changes.
*/
- public function getCommit($commit='HEAD')
+ public function getCommit($commit='HEAD', $getdiff=false)
{
- $cmd = sprintf('GIT_DIR=%s git show --date=iso --pretty=format:%s %s',
- escapeshellarg($this->repo),
- "'".$this->mediumtree_fmt."'",
- escapeshellarg($commit));
+ if ($getdiff) {
+ $cmd = sprintf('GIT_DIR=%s git show --date=iso --pretty=format:%s %s',
+ escapeshellarg($this->repo),
+ "'".$this->mediumtree_fmt."'",
+ escapeshellarg($commit));
+ } else {
+ $cmd = sprintf('GIT_DIR=%s git log -1 --date=iso --pretty=format:%s %s',
+ escapeshellarg($this->repo),
+ "'".$this->mediumtree_fmt."'",
+ escapeshellarg($commit));
+ }
$out = array();
IDF_Scm::exec($cmd, $out);
$log = array();
@@ -278,7 +286,6 @@ class IDF_Scm_Git
return $out[0];
}
-
/**
* Get latest changes.
*
diff --git a/src/IDF/Views/Source.php b/src/IDF/Views/Source.php
index ad24ed6..e5b4f1b 100644
--- a/src/IDF/Views/Source.php
+++ b/src/IDF/Views/Source.php
@@ -216,7 +216,7 @@ class IDF_Views_Source
}
$title = sprintf(__('%s Commit Details'), (string) $request->project);
$page_title = sprintf(__('%s Commit Details - %s'), (string) $request->project, $commit);
- $cobject = $scm->getCommit($commit);
+ $cobject = $scm->getCommit($commit, true);
$rcommit = IDF_Commit::getOrAdd($cobject, $request->project);
$diff = new IDF_Diff($cobject->changes);
$diff->parse();

Archive Download the corresponding diff file

Page rendered in 0.08245s using 13 queries.