Defect #7984
openConfusing revisions links on repository root
0%
Description
Actually, there's something weird on devel since of r5145 :
there is now 2 links displayed side by side on the root page of a repository ; the first one to list all repository revisions and the second one to display directory revisions, which seems to be redundant since, err...this is the root, and is very confusing .
I think that the previous check @path.blank?
in source:trunk/app/views/repositories/show.rhtml#L23 should have been kept :
<% if @repository.supports_all_revisions? %>
should be
<% if @path.blank? && @repository.supports_all_revisions? %>
Files
Related issues
Updated by Jean-Philippe Lang over 13 years ago
- Priority changed from Normal to High
Very confusing indeed.
Updated by Jean-Philippe Lang over 13 years ago
I've changed the behaviour in r5213 to display one link only.
Toshi, is there any wrong with it?
Updated by Toshi MARUYAMA over 13 years ago
- File svn-root.png svn-root.png added
- File svn-trunk.png svn-trunk.png added
- File svn-root-r5218.png svn-root-r5218.png added
Subversion¶
Updated by Etienne Massip over 13 years ago
Having both links side by side is confusing because they're semantically very close.
Dumb question : what's the distinction between "all revisions" and "revisions" ?
Updated by Toshi MARUYAMA over 13 years ago
- File hg-revisions-root-default.png hg-revisions-root-default.png added
- File hg-root-default.png hg-root-default.png added
- File hg-root-tip.png hg-root-tip.png added
Updated by Toshi MARUYAMA over 13 years ago
- File git-root.png git-root.png added
Updated by Toshi MARUYAMA over 13 years ago
Etienne Massip wrote:
Having both links side by side is confusing because they're semantically very close.
Dumb question : what's the distinction between "all revisions" and "revisions" ?
"all revisions" shows all revisions stored in database.
"revisions" shows revisions in branch.
Subversion branch is directory.
So, Subversion root directory has all revisions.
But, Git and Mercurial does not have all revisions in branch.
Updated by Toshi MARUYAMA over 13 years ago
- File TortoiseHg.2.0.2-default-only.png TortoiseHg.2.0.2-default-only.png added
- File TortoiseHg.2.0.2-show-all.png TortoiseHg.2.0.2-show-all.png added
- File gitk--all.png gitk--all.png added
Updated by Etienne Massip over 13 years ago
Still don't buy it ; IMM, the "all revisions" should not be visible inside a branch or revision, this doesn't make sense to me.
Btw, SVN supports branches and tags too, would be nice to have a tag combo for it too =)
Updated by Toshi MARUYAMA over 13 years ago
- File ruby-redmine-1.1-top.png ruby-redmine-1.1-top.png added
- File ruby-redmine-1.1-bottom.png ruby-redmine-1.1-bottom.png added
Ruby uses Redmine 1.1.
There is no way to show revisions in branch.
http://redmine.ruby-lang.org/projects/redmine/repository/show?rev=ruby-lang.org%2F1.1
Updated by Etienne Massip over 13 years ago
Toshi MARUYAMA wrote:
Ruby uses Redmine 1.1.
IMHO, 1.1 link is not smart either : "View all revisions" is a shortcut to "View all applicable revisions and not only the first ones as listed above", so it should keep on displaying only revisions in the selected branch.
There is no way to show revisions in branch.
What do you mean ?
Updated by Etienne Massip over 13 years ago
Etienne Massip wrote:
IMHO, 1.1 link is not smart either : "View all revisions" is a shortcut to "View all applicable revisions and not only the first ones as listed above", so it should keep on displaying only revisions in the selected branch.
Which is kinda the same as "View revisions", you'll tell me. That's maybe why the 2 links should not be displayed together.
Updated by Toshi MARUYAMA over 13 years ago
Etienne Massip wrote:
Toshi MARUYAMA wrote:
Ruby uses Redmine 1.1.
IMHO, 1.1 link is not smart either : "View all revisions" is a shortcut to "View all applicable revisions and not only the first ones as listed above", so it should keep on displaying only revisions in the selected branch.
There is no way to show revisions in branch.
What do you mean ?
View all revisions
http://redmine.ruby-lang.org/projects/redmine/repository/revisions
View revisions
http://redmine.ruby-lang.org/projects/redmine/repository/changes
Redmine 1.1 has no link "View revisions" in root directory.
So, there is no way to view revisions in root directory and master branch.
Updated by Etienne Massip over 13 years ago
Actually, if a branch is selected, then the only link displayed should be "View revisions" so you'll get all revisions for the branch / directory pair. The only case the "View all revisions" would be used is with the pair "all branches /root", whichever SCM
And, btw, can't we use only one link and merge RepositoryController#changes
and RepositoryController#revisions
?
Updated by Jean-Philippe Lang over 13 years ago
Etienne Massip wrote:
Actually, if a branch is selected, then the only link displayed should be "View revisions" so you'll get all revisions for the branch / directory pair. The only case the "View all revisions" would be used is with the pair "all branches /root", whichever SCM
I agree. We should never display both 'View all revisions' and 'View revisions'.
For example with subversion, we should not display the 'View all revisions' when inside a directory. It doesn't really makes sense and makes the 2 links quite confusing.
Proposed patch:
Index: app/views/repositories/show.rhtml =================================================================== --- app/views/repositories/show.rhtml (revision 5219) +++ app/views/repositories/show.rhtml (working copy) @@ -20,19 +20,17 @@ :revisions => @changesets, :entry => nil }%> <% end %> <p> -<% if @repository.supports_all_revisions? %> -<%= link_to l(:label_view_all_revisions), :action => 'revisions', :id => @project %> -<% end %> <% has_branches = (!@repository.branches.nil? && @repository.branches.length > 0) if @repository.supports_directory_revisions? && ( has_branches || !@path.blank? || !@rev.blank? ) %> -| <%= link_to l(:label_view_revisions), :action => 'changes', :path => to_path_param(@path), :id => @project %> -<% end %> +<% elsif @repository.supports_all_revisions? %> +<%= link_to l(:label_view_all_revisions), :action => 'revisions', :id => @project %> +<% end %> </p> <% if true # @path.blank? %>
And, btw, can't we use only one link and merge
RepositoryController#changes
andRepositoryController#revisions
?
They're not exactly the same, #changes retrives the commits from the scm, #revisions from the database which is way faster. #revisions can be used to display all revisions but not so usefull to get a file/directory history.
Updated by Etienne Massip over 13 years ago
Jean-Philippe Lang wrote:
They're not exactly the same, #changes retrives the commits from the scm, #revisions from the database which is way faster. #revisions can be used to display all revisions but not so usefull to get a file/directory history.
Thought the fetch from the SCM was done when displaying the page ?
Updated by Toshi MARUYAMA over 13 years ago
- File svn-root-with-rev.r5609.png svn-root-with-rev.r5609.png added
- File hg-app-1.1-stable.r5609.png hg-app-1.1-stable.r5609.png added
- File hg-root-1.1-stable-bottom.r5609.png hg-root-1.1-stable-bottom.r5609.png added
- File hg-root-bottom.r5609.png hg-root-bottom.r5609.png added
- File svn-branches.r5609.png svn-branches.r5609.png added
- File svn-root.r5609.png svn-root.r5609.png added
Updated by Toshi MARUYAMA over 13 years ago
Etienne Massip wrote:
Jean-Philippe Lang wrote:
They're not exactly the same, #changes retrives the commits from the scm, #revisions from the database which is way faster. #revisions can be used to display all revisions but not so usefull to get a file/directory history.
Thought the fetch from the SCM was done when displaying the page ?
To get tag history, Redmine calls "svn log http://redmine.rubyforge.org/svn/tags/1.1.3".
Updated by Etienne Massip over 13 years ago
I think there is still some confusion around the way revisions are handled, but maybe no more than in 1.1.
Also, adding support for SVN/CVS branches and tags would gives the reposityory tab screens a common behavior with other SCMs, I can open an issue if this makes sense to you ?
Updated by Toshi MARUYAMA over 13 years ago
Etienne Massip wrote:
Also, adding support for SVN/CVS branches and tags would gives the reposityory tab screens a common behavior with other SCMs,
Redmine Subversion repository layout is standard "trunk", "branches" and "tags".
But, if Subversion repository layout is not standard layout, user need to specify branches and tags path.
I can open an issue if this makes sense to you ?
I added related issues.
Updated by Toshi MARUYAMA over 13 years ago
But, if Subversion repository layout is not standard layout, user need to specify branches and tags path.
Redmine Mercurial mirror uses HgSubversion.
Hgsubversion detects source:sandbox/rails-2.2 and source:sandbox/rails-2.3 are branches.
$ hg branches default 5597:ae4eb29fea6b 1.1-stable 5582:53eba1bc3a40 1.0-stable 4955:d10103f89c1a 0.9-stable 3853:72aedf7ef5fb 0.8-stable 3304:3c08d4d012e0 ../sandbox/rails-2.3 2618:d79f3571761c ../sandbox/rails-2.2 2479:12f541caa4ed 0.7-stable 2194:fe4e88bbd556 0.6-stable 1242:04c936a7eed4
If Redmine shows "rails-2.2" and "rails-2.3" as brances,
user need to specify source:branches and source:sandbox are branches directories.
Updated by Toshi MARUYAMA about 13 years ago
- Priority changed from High to Normal