Merge branch 'stable-2.13'

* stable-2.13:
  ChangeScreen: Show correct file list when loaded with parent as base
  ChangeScreen: Load commit only once
  GetAuditLog: Set group name for external groups

Change-Id: I36a586392efdd317fd15530f312ed1d42a77308d
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2016-09-08 15:16:29 +02:00
2 changed files with 29 additions and 16 deletions

View File

@@ -283,11 +283,22 @@ public class ChangeScreen extends Screen {
loadChangeInfo(true, group.addFinal( loadChangeInfo(true, group.addFinal(
new GerritCallback<ChangeInfo>() { new GerritCallback<ChangeInfo>() {
@Override @Override
public void onSuccess(ChangeInfo info) { public void onSuccess(final ChangeInfo info) {
info.init(); info.init();
addExtensionPoints(info, initCurrentRevision(info)); addExtensionPoints(info, initCurrentRevision(info));
RevisionInfo rev = info.revision(revision);
CallbackGroup group = new CallbackGroup();
loadCommit(rev, group);
group.addListener(new GerritCallback<Void>() {
@Override
public void onSuccess(Void result) {
loadConfigInfo(info, base); loadConfigInfo(info, base);
} }
});
group.done();
}
})); }));
} }
@@ -952,18 +963,14 @@ public class ChangeScreen extends Screen {
} }
private void loadConfigInfo(final ChangeInfo info, RevisionInfo rev) { private void loadConfigInfo(final ChangeInfo info, RevisionInfo rev) {
CallbackGroup group = new CallbackGroup();
loadCommit(rev, group);
if (loaded) { if (loaded) {
group.done();
return; return;
} }
RevisionInfoCache.add(changeId, rev); RevisionInfoCache.add(changeId, rev);
ConfigInfoCache.add(info); ConfigInfoCache.add(info);
ConfigInfoCache.get(info.projectNameKey(), ConfigInfoCache.get(info.projectNameKey(),
group.addFinal(new ScreenLoadCallback<ConfigInfoCache.Entry>(this) { new ScreenLoadCallback<ConfigInfoCache.Entry>(this) {
@Override @Override
protected void preDisplay(Entry result) { protected void preDisplay(Entry result) {
loaded = true; loaded = true;
@@ -972,7 +979,7 @@ public class ChangeScreen extends Screen {
renderChangeInfo(info); renderChangeInfo(info);
loadRevisionInfo(); loadRevisionInfo();
} }
})); });
} }
static Timestamp myLastReply(ChangeInfo info) { static Timestamp myLastReply(ChangeInfo info) {
@@ -1101,7 +1108,7 @@ public class ChangeScreen extends Screen {
} }
private void loadCommit(final RevisionInfo rev, CallbackGroup group) { private void loadCommit(final RevisionInfo rev, CallbackGroup group) {
if (rev.isEdit()) { if (rev.isEdit() || rev.commit() != null) {
return; return;
} }
@@ -1162,7 +1169,7 @@ public class ChangeScreen extends Screen {
* *
* @param info change info * @param info change info
* @param revOrId revision or patch set id * @param revOrId revision or patch set id
* @param defaultValue value returned when rev is null * @param defaultValue value returned when revOrId is null
* @return resolved revision or default value * @return resolved revision or default value
*/ */
private RevisionInfo resolveRevisionOrPatchSetId(ChangeInfo info, private RevisionInfo resolveRevisionOrPatchSetId(ChangeInfo info,
@@ -1172,12 +1179,10 @@ public class ChangeScreen extends Screen {
revOrId = defaultValue; revOrId = defaultValue;
} else if ((parentNum = toParentNum(revOrId)) > 0) { } else if ((parentNum = toParentNum(revOrId)) > 0) {
CommitInfo commitInfo = info.revision(revision).commit(); CommitInfo commitInfo = info.revision(revision).commit();
if (commitInfo != null) {
JsArray<CommitInfo> parents = commitInfo.parents(); JsArray<CommitInfo> parents = commitInfo.parents();
if (parents.length() >= parentNum) { if (parents.length() >= parentNum) {
return RevisionInfo.forParent(-parentNum, parents.get(parentNum - 1)); return RevisionInfo.forParent(-parentNum, parents.get(parentNum - 1));
} }
}
} else if (!info.revisions().containsKey(revOrId)) { } else if (!info.revisions().containsKey(revOrId)) {
JsArray<RevisionInfo> list = info.revisions().values(); JsArray<RevisionInfo> list = info.revisions().values();
for (int i = 0; i < list.length(); i++) { for (int i = 0; i < list.length(); i++) {

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.server.group; package com.google.gerrit.server.group;
import com.google.gerrit.common.data.GroupDescription;
import com.google.gerrit.common.data.GroupDescriptions; import com.google.gerrit.common.data.GroupDescriptions;
import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.common.GroupAuditEventInfo; import com.google.gerrit.extensions.common.GroupAuditEventInfo;
@@ -28,6 +29,7 @@ import com.google.gerrit.reviewdb.client.AccountGroupByIdAud;
import com.google.gerrit.reviewdb.client.AccountGroupMemberAudit; import com.google.gerrit.reviewdb.client.AccountGroupMemberAudit;
import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.account.AccountLoader; import com.google.gerrit.server.account.AccountLoader;
import com.google.gerrit.server.account.GroupBackend;
import com.google.gerrit.server.account.GroupCache; import com.google.gerrit.server.account.GroupCache;
import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject; import com.google.inject.Inject;
@@ -45,16 +47,19 @@ public class GetAuditLog implements RestReadView<GroupResource> {
private final AccountLoader.Factory accountLoaderFactory; private final AccountLoader.Factory accountLoaderFactory;
private final GroupCache groupCache; private final GroupCache groupCache;
private final GroupJson groupJson; private final GroupJson groupJson;
private final GroupBackend groupBackend;
@Inject @Inject
public GetAuditLog(Provider<ReviewDb> db, public GetAuditLog(Provider<ReviewDb> db,
AccountLoader.Factory accountLoaderFactory, AccountLoader.Factory accountLoaderFactory,
GroupCache groupCache, GroupCache groupCache,
GroupJson groupJson) { GroupJson groupJson,
GroupBackend groupBackend) {
this.db = db; this.db = db;
this.accountLoaderFactory = accountLoaderFactory; this.accountLoaderFactory = accountLoaderFactory;
this.groupCache = groupCache; this.groupCache = groupCache;
this.groupJson = groupJson; this.groupJson = groupJson;
this.groupBackend = groupBackend;
} }
@Override @Override
@@ -100,8 +105,11 @@ public class GetAuditLog implements RestReadView<GroupResource> {
if (includedGroup != null) { if (includedGroup != null) {
member = groupJson.format(GroupDescriptions.forAccountGroup(includedGroup)); member = groupJson.format(GroupDescriptions.forAccountGroup(includedGroup));
} else { } else {
GroupDescription.Basic groupDescription =
groupBackend.get(includedGroupUUID);
member = new GroupInfo(); member = new GroupInfo();
member.id = Url.encode(includedGroupUUID.get()); member.id = Url.encode(includedGroupUUID.get());
member.name = groupDescription.getName();
} }
auditEvents.add(GroupAuditEventInfo.createAddGroupEvent( auditEvents.add(GroupAuditEventInfo.createAddGroupEvent(