Merge changes I6c512a69,I6ad54e54,I1ed59dc2 into stable-2.9

* changes:
  Limit file list to files that were touched in new patch set
  Remove unused TreeWalk in PatchListLoader
  Add basic test for PatchListCache that checks the returned patches
diff --git a/Documentation/.gitignore b/Documentation/.gitignore
index 8a3da24..2d19fc7 100644
--- a/Documentation/.gitignore
+++ b/Documentation/.gitignore
@@ -1,2 +1 @@
 *.html
-/.published
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 59de209..aed9e90 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -15,14 +15,11 @@
 ASCIIDOC       ?= asciidoc
 ASCIIDOC_EXTRA ?=
 ASCIIDOC_VER   ?= 8.6.3
-SVN            ?= svn
-PUB_ROOT       ?= https://gerrit-documentation.googlecode.com/svn/Documentation
 
 all: html
 
 clean:
 	rm -f *.html
-	rm -rf $(LOCAL_ROOT)
 
 ASCIIDOC_EXE := $(shell which $(ASCIIDOC))
 ifeq ($(wildcard $(ASCIIDOC_EXE)),)
@@ -34,53 +31,11 @@
   endif
 endif
 
-ifeq ($(origin VERSION), undefined)
-  VERSION := $(shell ./GEN-DOC-VERSION 2>/dev/null)
-endif
-
-DOC_HTML      := $(patsubst %.txt,%.html,$(wildcard *.txt))
-LOCAL_ROOT    := .published
-COMMIT        := $(shell git describe HEAD | sed s/^v//)
-PUB_DIR       := $(PUB_ROOT)/$(VERSION)
-PRIOR          = PRIOR
-
-ifeq ($(VERSION),)
-  REVISION = $(COMMIT)
-else
-  ifeq ($(VERSION),$(COMMIT))
-    REVISION := $(VERSION)
-  else
-    REVISION := $(VERSION) (from v$(COMMIT))
-  endif
-endif
+DOC_HTML := $(patsubst %.txt,%.html,$(wildcard *.txt))
+REVISION := $(shell git describe HEAD | sed s/^v//)
 
 html: $(DOC_HTML)
 
-update: html
-ifeq ($(VERSION),)
-	./GEN-DOC-VERSION
-endif
-	@-rm -rf $(LOCAL_ROOT)
-	@echo "Checking out current $(VERSION)"
-	@if ! $(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) 2>/dev/null ; then \
-		echo "Copying $(PRIOR) to $(VERSION) ..." && \
-		$(SVN) cp -m "Create $(VERSION) documentation" $(PUB_ROOT)/$(PRIOR) $(PUB_DIR) && \
-		$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) ; \
-	fi
-	@rm -f $(LOCAL_ROOT)/*.html
-	@cp *.html $(LOCAL_ROOT)
-	@cd $(LOCAL_ROOT) && \
-	  r=`$(SVN) status | perl -ne 'print if s/^!  *//' ` && \
-	  if [ -n "$$r" ]; then $(SVN) rm $$r; fi && \
-	  a=`$(SVN) status | perl -ne 'print if s/^\?  *//' ` && \
-	  if [ -n "$$a" ]; then \
-	    $(SVN) add $$a && \
-	    $(SVN) propset svn:mime-type text/html $$a ; \
-	    fi && \
-	  echo "Committing $(VERSION) at v$(COMMIT)" && \
-	  $(SVN) commit -m "Updated $(VERSION) documentation to v$(COMMIT)"
-	@-rm -rf $(LOCAL_ROOT)
-
 $(DOC_HTML): %.html : %.txt
 	@echo "FORMAT $@"
 	@rm -f $@+ $@
diff --git a/Documentation/images/user-review-ui-change-screen-commit-info-merge-commit.png b/Documentation/images/user-review-ui-change-screen-commit-info-merge-commit.png
index 75cd60c..097637e 100644
--- a/Documentation/images/user-review-ui-change-screen-commit-info-merge-commit.png
+++ b/Documentation/images/user-review-ui-change-screen-commit-info-merge-commit.png
Binary files differ
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritResources.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritResources.java
index 19d50ff..e50445d 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritResources.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritResources.java
@@ -70,6 +70,6 @@
   @Source("warning.png")
   public ImageResource warning();
 
-  @Source("important.png")
-  public ImageResource important();
+  @Source("merge.png")
+  public ImageResource merge();
 }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.java
index 4ba5793..e5ed0a2 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.java
@@ -44,7 +44,6 @@
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.gwt.user.client.ui.UIObject;
-import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwtexpui.clippy.client.CopyableLabel;
 import com.google.gwtexpui.safehtml.client.SafeHtmlBuilder;
 
@@ -65,7 +64,7 @@
   @UiField AnchorElement browserLink;
   @UiField Element parents;
   @UiField FlowPanel parentCommits;
-  @UiField VerticalPanel parentWebLinks;
+  @UiField FlowPanel parentWebLinks;
   @UiField InlineHyperlink authorNameEmail;
   @UiField Element authorDate;
   @UiField InlineHyperlink committerNameEmail;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
index 34454f0..7e0c997 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
@@ -83,6 +83,7 @@
     <!-- To make room for the copyableLabel from the adjacent column -->
     .parentWebLink {
       margin-left:16px;
+      display: block;
     }
 
     .mergeCommit {
@@ -128,7 +129,7 @@
           </div>
           <g:Image
               ui:field='mergeCommit'
-              resource='{ico.important}'
+              resource='{ico.merge}'
               visible='false'
               title='Merge Commit'>
             <ui:attribute name='title'/>
@@ -143,7 +144,7 @@
           <g:FlowPanel ui:field='parentCommits'/>
         </td>
         <td>
-          <g:VerticalPanel ui:field='parentWebLinks'/>
+          <g:FlowPanel ui:field='parentWebLinks'/>
         </td>
       </tr>
       <tr>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/important.png b/gerrit-gwtui/src/main/java/com/google/gerrit/client/important.png
deleted file mode 100644
index 81e9ed2..0000000
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/important.png
+++ /dev/null
Binary files differ
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/merge.png b/gerrit-gwtui/src/main/java/com/google/gerrit/client/merge.png
new file mode 100644
index 0000000..9c892db
--- /dev/null
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/merge.png
Binary files differ
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java
index fab8836..599d5ab 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java
@@ -137,13 +137,11 @@
 
   @Override
   public UiAction.Description getDescription(RevisionResource rsrc) {
-    PatchSet.Id current = rsrc.getChange().currentPatchSetId();
     try {
       return new UiAction.Description()
         .setTitle(String.format("Publish revision %d",
             rsrc.getPatchSet().getPatchSetId()))
         .setVisible(rsrc.getPatchSet().isDraft()
-            && rsrc.getPatchSet().getId().equals(current)
             && rsrc.getControl().canPublish(dbProvider.get()));
     } catch (OrmException e) {
       throw new IllegalStateException(e);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/EmailArguments.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/EmailArguments.java
index 66ea1e0..ebf5ac7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/EmailArguments.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/EmailArguments.java
@@ -42,7 +42,7 @@
 
 import java.util.List;
 
-class EmailArguments {
+public class EmailArguments {
   final GitRepositoryManager server;
   final ProjectCache projectCache;
   final GroupBackend groupBackend;