diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-04-27 10:12:15 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-04-27 10:12:15 +0000 |
commit | a73f68a185df00db1aaa153f576f106ee752c54d (patch) | |
tree | 09fab2647035c64e944b7df68e78618eeb6966be /lib/redmine/scm/adapters/abstract_adapter.rb | |
parent | 6a3236daea38f0cf8b62ccf9f1212eb0f0395b08 (diff) | |
download | redmine-a73f68a185df00db1aaa153f576f106ee752c54d.tar.gz redmine-a73f68a185df00db1aaa153f576f106ee752c54d.zip |
Fixed: Links to repository directories don't work (#1119).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1365 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib/redmine/scm/adapters/abstract_adapter.rb')
-rw-r--r-- | lib/redmine/scm/adapters/abstract_adapter.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb index 41edf00ad..2c254d48d 100644 --- a/lib/redmine/scm/adapters/abstract_adapter.rb +++ b/lib/redmine/scm/adapters/abstract_adapter.rb @@ -59,8 +59,17 @@ module Redmine # Returns the entry identified by path and revision identifier # or nil if entry doesn't exist in the repository def entry(path=nil, identifier=nil) - e = entries(path, identifier) - e ? e.first : nil + parts = path.to_s.split(%r{[\/\\]}).select {|n| !n.blank?} + search_path = parts[0..-2].join('/') + search_name = parts[-1] + if search_path.blank? && search_name.blank? + # Root entry + Entry.new(:path => '', :kind => 'dir') + else + # Search for the entry in the parent directory + es = entries(search_path, identifier) + es ? es.detect {|e| e.name == search_name} : nil + end end # Returns an Entries collection |