diff --git a/app/assets/javascripts/compare_autocomplete.js b/app/assets/javascripts/compare_autocomplete.js.es6
similarity index 72%
rename from app/assets/javascripts/compare_autocomplete.js
rename to app/assets/javascripts/compare_autocomplete.js.es6
index 294d2c9052cf9197ec75b7181017e0b7ee84ce0d..9a2082d97e067207a61df362c24b37e6e748c6d4 100644
--- a/app/assets/javascripts/compare_autocomplete.js
+++ b/app/assets/javascripts/compare_autocomplete.js.es6
@@ -9,7 +9,10 @@
         var $dropdown, selected;
         $dropdown = $(this);
         selected = $dropdown.data('selected');
-        return $dropdown.glDropdown({
+        const $dropdownContainer = $dropdown.closest('.dropdown');
+        const $fieldInput = $(`input[name="${$dropdown.data('field-name')}"]`, $dropdownContainer);
+        const $filterInput = $('input[type="search"]', $dropdownContainer);
+        $dropdown.glDropdown({
           data: function(term, callback) {
             return $.ajax({
               url: $dropdown.data('refs-url'),
@@ -42,6 +45,14 @@
             return $el.text().trim();
           }
         });
+        $filterInput.on('keyup', (e) => {
+          const keyCode = e.keyCode || e.which;
+          if (keyCode !== 13) return;
+          const text = $filterInput.val();
+          $fieldInput.val(text);
+          $('.dropdown-toggle-text', $dropdown).text(text);
+          $dropdownContainer.removeClass('open');
+        });
       });
     };
 
diff --git a/app/views/projects/compare/_ref_dropdown.html.haml b/app/views/projects/compare/_ref_dropdown.html.haml
index 27d928c87a0cd4db3c6e4ded2f9564cbb2492f48..05fb37cdc0f526d48daad2d8e41b4e4109ada6c9 100644
--- a/app/views/projects/compare/_ref_dropdown.html.haml
+++ b/app/views/projects/compare/_ref_dropdown.html.haml
@@ -1,5 +1,5 @@
 .dropdown-menu.dropdown-menu-selectable
-  = dropdown_title "Select branch/tag"
-  = dropdown_filter "Filter by branch/tag"
+  = dropdown_title "Select Git revision"
+  = dropdown_filter "Filter by Git revision"
   = dropdown_content
   = dropdown_loading
diff --git a/features/steps/project/commits/commits.rb b/features/steps/project/commits/commits.rb
index b8264f976871b4b2c9468c737e1f3c5f5d14677d..b08912de25f014cddb06036ce55bddf78ec5cf5f 100644
--- a/features/steps/project/commits/commits.rb
+++ b/features/steps/project/commits/commits.rb
@@ -42,15 +42,16 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
   end
 
   step 'I fill compare fields with branches' do
-    fill_in 'from', with: 'feature'
-    fill_in 'to',   with: 'master'
+    select_using_dropdown('from', 'feature')
+    select_using_dropdown('to', 'master')
 
     click_button 'Compare'
   end
 
   step 'I fill compare fields with refs' do
-    fill_in "from", with: sample_commit.parent_id
-    fill_in "to",   with: sample_commit.id
+    select_using_dropdown('from', sample_commit.parent_id, true)
+    select_using_dropdown('to', sample_commit.id, true)
+
     click_button "Compare"
   end
 
@@ -97,8 +98,8 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
   end
 
   step 'I fill compare fields with branches' do
-    fill_in 'from', with: 'master'
-    fill_in 'to',   with: 'feature'
+    select_using_dropdown('from', 'master')
+    select_using_dropdown('to', 'feature')
 
     click_button 'Compare'
   end
@@ -182,4 +183,15 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
     expect(page).to have_content "More submodules"
     expect(page).not_to have_content "Change some files"
   end
+
+  def select_using_dropdown(dropdown_type, selection, is_commit = false)
+    dropdown = find(".js-compare-#{dropdown_type}-dropdown")
+    dropdown.find(".compare-dropdown-toggle").click
+    dropdown.fill_in("Filter by Git revision", with: selection)
+    if is_commit
+      dropdown.find('input[type="search"]').send_keys(:return)
+    else
+      find_link(selection, visible: true).click
+    end
+  end
 end
diff --git a/spec/features/compare_spec.rb b/spec/features/compare_spec.rb
index 33dfd0d5b6298fd5152c6edf231adda9022e189e..c22109d19b699381db7812ee8316a8bebcda32de 100644
--- a/spec/features/compare_spec.rb
+++ b/spec/features/compare_spec.rb
@@ -45,6 +45,6 @@ describe "Compare", js: true do
     dropdown = find(".js-compare-#{dropdown_type}-dropdown")
     dropdown.find(".compare-dropdown-toggle").click
     dropdown.fill_in("Filter by branch/tag", with: selection)
-    click_link selection
+    find_link(selection, visible: true).click
   end
 end