233
234
if (!is_null_sha1(ref->old_sha1) &&
235
!prefixcmp(ref->name, "refs/tags/")) {
236
- sprintf(display, "- %-*s %-*s -> %s",
236
+ int r;
237
+ r = s_update_ref("updating tag", ref, 0);
238
+ sprintf(display, "%c %-*s %-*s -> %s%s", r ? '!' : '-',
239
SUMMARY_WIDTH, "[tag update]", REFCOL_WIDTH, remote,
238
- pretty_ref);
239
- return s_update_ref("updating tag", ref, 0);
240
+ pretty_ref, r ? " (unable to update local ref)" : "");
241
+ return r;
242
}
243
244
current = lookup_commit_reference_gently(ref->old_sha1, 1);
246
if (!current || !updated) {
247
const char *msg;
248
const char *what;
249
+ int r;
250
if (!strncmp(ref->name, "refs/tags/", 10)) {
251
msg = "storing tag";
252
what = "[new tag]";
256
what = "[new branch]";
257
}
258
256
- sprintf(display, "* %-*s %-*s -> %s", SUMMARY_WIDTH, what,
257
- REFCOL_WIDTH, remote, pretty_ref);
258
- return s_update_ref(msg, ref, 0);
259
+ r = s_update_ref(msg, ref, 0);
260
+ sprintf(display, "%c %-*s %-*s -> %s%s", r ? '!' : '*',
261
+ SUMMARY_WIDTH, what, REFCOL_WIDTH, remote, pretty_ref,
262
+ r ? " (unable to update local ref)" : "");
263
+ return r;
264
}
265
266
if (in_merge_bases(current, &updated, 1)) {
267
char quickref[83];
268
+ int r;
269
strcpy(quickref, find_unique_abbrev(current->object.sha1, DEFAULT_ABBREV));
270
strcat(quickref, "..");
271
strcat(quickref, find_unique_abbrev(ref->new_sha1, DEFAULT_ABBREV));
266
- sprintf(display, " %-*s %-*s -> %s", SUMMARY_WIDTH, quickref,
267
- REFCOL_WIDTH, remote, pretty_ref);
268
- return s_update_ref("fast forward", ref, 1);
272
+ r = s_update_ref("fast forward", ref, 1);
273
+ sprintf(display, "%c %-*s %-*s -> %s%s", r ? '!' : ' ',
274
+ SUMMARY_WIDTH, quickref, REFCOL_WIDTH, remote,
275
+ pretty_ref, r ? " (unable to update local ref)" : "");
276
+ return r;
277
} else if (force || ref->force) {
278
char quickref[84];
279
+ int r;
280
strcpy(quickref, find_unique_abbrev(current->object.sha1, DEFAULT_ABBREV));
281
strcat(quickref, "...");
282
strcat(quickref, find_unique_abbrev(ref->new_sha1, DEFAULT_ABBREV));
274
- sprintf(display, "+ %-*s %-*s -> %s (forced update)",
275
- SUMMARY_WIDTH, quickref, REFCOL_WIDTH, remote, pretty_ref);
276
- return s_update_ref("forced-update", ref, 1);
283
+ r = s_update_ref("forced-update", ref, 1);
284
+ sprintf(display, "%c %-*s %-*s -> %s (%s)", r ? '!' : '+',
285
+ SUMMARY_WIDTH, quickref, REFCOL_WIDTH, remote,
286
+ pretty_ref,
287
+ r ? "unable to update local ref" : "forced update");
288
+ return r;
289
} else {
290
sprintf(display, "! %-*s %-*s -> %s (non fast forward)",
291
SUMMARY_WIDTH, "[rejected]", REFCOL_WIDTH, remote,