プロジェクト

全般

プロフィール

Vote #71861

未完了

Git/Mercurial revision graph is not clear

Admin Redmine さんがほぼ4年前に追加. ほぼ4年前に更新.

ステータス:
New
優先度:
通常
担当者:
-
カテゴリ:
SCM_3
対象バージョン:
-
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
3
version_id:
0
issue_org_id:
10954
author_id:
52409
assigned_to_id:
0
comments:
5
status_id:
1
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
ステータス-->[New]

説明

The revision graph used to show changes in a Mercurial (and possibly Git) repository is not clear. When multiple commits are done in parallel and merged point of merge is displayed weird.

In the screenshot below two change sets have been merged in revision 25. 25 has 24 and 20 as parents. It seems like the two change sets have been merged in revision 24.
!unclear_revision_graph.png!

In the screenshot below you can see that revision 25 indeed has 24 and 20 as parents.
!revision_parents.png!


journals

Forgot to attach info:

| Database | MySQL 5.1.61 |
| Ruby version | 1.8.7 (i686-linux) |
| RubyGems version | 1.3.7 |
| Rack version | 1.1.3 |
| Rails version | 2.3.14 |
| Active Record version | 2.3.14 |
| Active Resource version | 2.3.14 |
| Action Mailer version | 2.3.14 |
| Active Support version | 2.3.14 |
| Redmine | 1.4.1.stable |
| SCM | Mercurial 2.0 |
| RMagick | 2.13.0 |
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Here's a patch, but dunno it it's pretty enough?:

<pre><code class="diff">
Index: public/javascripts/revision_graph.js
===================================================================
--- public/javascripts/revision_graph.js (revision 9700)
+++ public/javascripts/revision_graph.js (working copy)
@@ -65,10 +65,12 @@
'V', parent_y]);
} else {
// path to a commit in a different branch (Bezier curve)
+ sign = parent_x > x ? 1 : -1;
path = revisionGraph.path([
'M', x, y,
- 'C', x, y, x, y + (parent_y - y) / 2, x + (parent_x - x) / 2, y + (parent_y - y) / 2,
- 'C', x + (parent_x - x) / 2, y + (parent_y - y) / 2, parent_x, parent_y-(parent_y-y)/2, parent_x, parent_y]);
+ 'C', x, y + 4, x, y + 4, x + sign * 4, y + 4,
+ 'S', parent_x - sign * 8, parent_y - 4, parent_x - sign * 4, parent_y - 4,
+ 'S', parent_x, parent_y - 4, parent_x, parent_y]);
}
} else {
// vertical path ending at the bottom of the revisionGraph
</code></pre>

--------------------------------------------------------------------------------
I can confirm the issue with the Git-Backend. In my case, there are about 30 commits between the parent commit and the new branch, which makes it impossible to guess where the two lines meet.
--------------------------------------------------------------------------------
And here is an example (with GIT) that shows in what measure this could become debilitating. Where does the branch detach? At 9cec489a? No. At 5x807f1f!
!redmine_commit_graph_misleading.png!

An example of the same commit graph rendered in a "readable" manner, i.e. not only the "branching" should be made clearer, but the latest commit should stay on the "direct" branch, not on the "detached" one:
!qgit_commit_graph.png!

Another (perhaps separate) issue is that the "Revisions" view (obtained when clicking on "View all revisions" in the "Repository" view) does not identify branches in any way.
--------------------------------------------------------------------------------

Admin Redmine さんがほぼ4年前に更新

  • カテゴリSCM_3 にセット

他の形式にエクスポート: Atom PDF

いいね!0
いいね!0