171
}
172
}
173
174
-static void fill_reftable_log_record(struct reftable_log_record *log)
174
+static void fill_reftable_log_record(struct reftable_log_record *log, const struct ident_split *split)
175
{
176
- const char *info = git_committer_info(0);
177
- struct ident_split split = {0};
176
+ const char *tz_begin;
177
int sign = 1;
178
180
- if (split_ident_line(&split, info, strlen(info)))
181
- BUG("failed splitting committer info");
182
-
179
reftable_log_record_release(log);
180
log->value_type = REFTABLE_LOG_UPDATE;
181
log->value.update.name =
186
- xstrndup(split.name_begin, split.name_end - split.name_begin);
182
+ xstrndup(split->name_begin, split->name_end - split->name_begin);
183
log->value.update.email =
188
- xstrndup(split.mail_begin, split.mail_end - split.mail_begin);
189
- log->value.update.time = atol(split.date_begin);
190
- if (*split.tz_begin == '-') {
184
+ xstrndup(split->mail_begin, split->mail_end - split->mail_begin);
185
+ log->value.update.time = atol(split->date_begin);
186
+
187
+ tz_begin = split->tz_begin;
188
+ if (*tz_begin == '-') {
189
sign = -1;
192
- split.tz_begin++;
190
+ tz_begin++;
191
}
194
- if (*split.tz_begin == '+') {
192
+ if (*tz_begin == '+') {
193
sign = 1;
196
- split.tz_begin++;
194
+ tz_begin++;
195
}
196
199
- log->value.update.tz_offset = sign * atoi(split.tz_begin);
197
+ log->value.update.tz_offset = sign * atoi(tz_begin);
198
}
199
200
static int read_ref_without_reload(struct reftable_stack *stack,
1016
reftable_stack_merged_table(arg->stack);
1017
uint64_t ts = reftable_stack_next_update_index(arg->stack);
1018
struct reftable_log_record *logs = NULL;
1019
+ struct ident_split committer_ident = {0};
1020
size_t logs_nr = 0, logs_alloc = 0, i;
1021
+ const char *committer_info;
1022
int ret = 0;
1023
1024
+ committer_info = git_committer_info(0);
1025
+ if (split_ident_line(&committer_ident, committer_info, strlen(committer_info)))
1026
+ BUG("failed splitting committer info");
1027
+
1028
QSORT(arg->updates, arg->updates_nr, transaction_update_cmp);
1029
1030
reftable_writer_set_limits(writer, ts, ts);
1090
log = &logs[logs_nr++];
1091
memset(log, 0, sizeof(*log));
1092
1089
- fill_reftable_log_record(log);
1093
+ fill_reftable_log_record(log, &committer_ident);
1094
log->update_index = ts;
1095
log->refname = xstrdup(u->refname);
1096
memcpy(log->value.update.new_hash, u->new_oid.hash, GIT_MAX_RAWSZ);
1237
.value.symref = (char *)create->target,
1238
.update_index = ts,
1239
};
1240
+ struct ident_split committer_ident = {0};
1241
struct reftable_log_record log = {0};
1242
struct object_id new_oid;
1243
struct object_id old_oid;
1244
+ const char *committer_info;
1245
int ret;
1246
1247
reftable_writer_set_limits(writer, ts, ts);
1269
!should_write_log(&create->refs->base, create->refname))
1270
return 0;
1271
1266
- fill_reftable_log_record(&log);
1272
+ committer_info = git_committer_info(0);
1273
+ if (split_ident_line(&committer_ident, committer_info, strlen(committer_info)))
1274
+ BUG("failed splitting committer info");
1275
+
1276
+ fill_reftable_log_record(&log, &committer_ident);
1277
log.refname = xstrdup(create->refname);
1278
log.update_index = ts;
1279
log.value.update.message = xstrndup(create->logmsg,
1349
struct reftable_log_record old_log = {0}, *logs = NULL;
1350
struct reftable_iterator it = {0};
1351
struct string_list skip = STRING_LIST_INIT_NODUP;
1352
+ struct ident_split committer_ident = {0};
1353
struct strbuf errbuf = STRBUF_INIT;
1354
size_t logs_nr = 0, logs_alloc = 0, i;
1355
+ const char *committer_info;
1356
int ret;
1357
1358
+ committer_info = git_committer_info(0);
1359
+ if (split_ident_line(&committer_ident, committer_info, strlen(committer_info)))
1360
+ BUG("failed splitting committer info");
1361
+
1362
if (reftable_stack_read_ref(arg->stack, arg->oldname, &old_ref)) {
1363
ret = error(_("refname %s not found"), arg->oldname);
1364
goto done;
1433
1434
ALLOC_GROW(logs, logs_nr + 1, logs_alloc);
1435
memset(&logs[logs_nr], 0, sizeof(logs[logs_nr]));
1420
- fill_reftable_log_record(&logs[logs_nr]);
1436
+ fill_reftable_log_record(&logs[logs_nr], &committer_ident);
1437
logs[logs_nr].refname = (char *)arg->newname;
1438
logs[logs_nr].update_index = deletion_ts;
1439
logs[logs_nr].value.update.message =
1465
*/
1466
ALLOC_GROW(logs, logs_nr + 1, logs_alloc);
1467
memset(&logs[logs_nr], 0, sizeof(logs[logs_nr]));
1452
- fill_reftable_log_record(&logs[logs_nr]);
1468
+ fill_reftable_log_record(&logs[logs_nr], &committer_ident);
1469
logs[logs_nr].refname = (char *)arg->newname;
1470
logs[logs_nr].update_index = creation_ts;
1471
logs[logs_nr].value.update.message =