ReceiveCommits: add a "SUCCESS" marker for successful change updates
This will be colored bright green in upcoming git releases, which draws attention to the actionable part of the output, which is the URL for the created/updated changes. Change-Id: Id9e2884f9bf3a9225e76f546e93127fac53079f4
This commit is contained in:
@@ -580,6 +580,7 @@ class ReceiveCommits {
|
||||
traceContext.forceLogging().addTag(RequestId.Type.TRACE_ID, traceId);
|
||||
addMessage(RequestId.Type.TRACE_ID.name() + ": " + traceId);
|
||||
}
|
||||
|
||||
try {
|
||||
if (!projectState.getProject().getState().permitsWrite()) {
|
||||
for (ReceiveCommand cmd : commands) {
|
||||
@@ -652,7 +653,15 @@ class ReceiveCommits {
|
||||
insertChangesAndPatchSets(newChanges, replaceProgress);
|
||||
newProgress.end();
|
||||
replaceProgress.end();
|
||||
reportMessages(newChanges);
|
||||
queueSuccessMessages(newChanges);
|
||||
refsPublishDeprecationWarning();
|
||||
}
|
||||
}
|
||||
|
||||
private void refsPublishDeprecationWarning() {
|
||||
// TODO(xchangcheng): remove after migrating tools which are using this magic branch.
|
||||
if (magicBranch != null && magicBranch.publish) {
|
||||
addMessage("Pushing to refs/publish/* is deprecated, use refs/for/* instead.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -737,9 +746,25 @@ class ReceiveCommits {
|
||||
}
|
||||
}
|
||||
|
||||
private void reportMessages(List<CreateRequest> newChanges) {
|
||||
/** Appends messages for successful change creation/updates. */
|
||||
private void queueSuccessMessages(List<CreateRequest> newChanges) {
|
||||
List<CreateRequest> created =
|
||||
newChanges.stream().filter(r -> r.change != null).collect(toList());
|
||||
List<ReplaceRequest> updated =
|
||||
replaceByChange
|
||||
.values()
|
||||
.stream()
|
||||
.filter(r -> r.inputCommand.getResult() == OK)
|
||||
.sorted(comparingInt(r -> r.notes.getChangeId().get()))
|
||||
.collect(toList());
|
||||
|
||||
if (created.isEmpty() && updated.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
addMessage("");
|
||||
addMessage("SUCCESS");
|
||||
|
||||
if (!created.isEmpty()) {
|
||||
addMessage("");
|
||||
addMessage("New Changes:");
|
||||
@@ -748,16 +773,8 @@ class ReceiveCommits {
|
||||
changeFormatter.newChange(
|
||||
ChangeReportFormatter.Input.builder().setChange(c.change).build()));
|
||||
}
|
||||
addMessage("");
|
||||
}
|
||||
|
||||
List<ReplaceRequest> updated =
|
||||
replaceByChange
|
||||
.values()
|
||||
.stream()
|
||||
.filter(r -> r.inputCommand.getResult() == OK)
|
||||
.sorted(comparingInt(r -> r.notes.getChangeId().get()))
|
||||
.collect(toList());
|
||||
if (!updated.isEmpty()) {
|
||||
addMessage("");
|
||||
addMessage("Updated Changes:");
|
||||
@@ -809,11 +826,6 @@ class ReceiveCommits {
|
||||
}
|
||||
addMessage("");
|
||||
}
|
||||
|
||||
// TODO(xchangcheng): remove after migrating tools which are using this magic branch.
|
||||
if (magicBranch != null && magicBranch.publish) {
|
||||
addMessage("Pushing to refs/publish/* is deprecated, use refs/for/* instead.");
|
||||
}
|
||||
}
|
||||
|
||||
private void insertChangesAndPatchSets(List<CreateRequest> newChanges, Task replaceProgress) {
|
||||
|
||||
@@ -301,13 +301,14 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
r2.assertOkStatus();
|
||||
r2.assertChange(Change.Status.NEW, null);
|
||||
r2.assertMessage(
|
||||
"New changes:\n"
|
||||
"success\n"
|
||||
+ "\n"
|
||||
+ "New changes:\n"
|
||||
+ " "
|
||||
+ url
|
||||
+ id2
|
||||
+ " another commit\n"
|
||||
+ "\n"
|
||||
+ "\n"
|
||||
+ "Updated changes:\n"
|
||||
+ " "
|
||||
+ url
|
||||
|
||||
Reference in New Issue
Block a user