Skip to content

Commit 55c0eba

Browse files
committed
Drop replacing lines from the table when they are exact replacements
Exclude `replacing` lines from the transaction table output when replacing a single package with the same name.
1 parent 12c73b2 commit 55c0eba

File tree

1 file changed

+37
-33
lines changed

1 file changed

+37
-33
lines changed

libdnf5-cli/output/transaction_table.cpp

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -312,43 +312,47 @@ TransactionTable::Impl::Impl(ITransaction & transaction) {
312312
scols_cell_set_color(scols_line_get_cell(ln_reason, COL_NAME), replaced_color);
313313
section.set_last_line(ln_reason);
314314
}
315-
for (auto & replaced : tspkg->get_replaces()) {
316-
// highlight incoming packages with epoch/version change
317-
if (tspkg->get_package()->get_epoch() != replaced->get_epoch() ||
318-
tspkg->get_package()->get_version() != replaced->get_version()) {
319-
auto cl_evr = scols_line_get_cell(ln, COL_EVR);
320-
scols_cell_set_color(cl_evr, "bold");
321-
}
315+
auto replacing_same_pkg = tspkg->get_replaces().size() == 1 &&
316+
tspkg->get_package()->get_name() == tspkg->get_replaces().front()->get_name();
317+
if (!replacing_same_pkg) {
318+
for (auto & replaced : tspkg->get_replaces()) {
319+
// highlight incoming packages with epoch/version change
320+
if (tspkg->get_package()->get_epoch() != replaced->get_epoch() ||
321+
tspkg->get_package()->get_version() != replaced->get_version()) {
322+
auto cl_evr = scols_line_get_cell(ln, COL_EVR);
323+
scols_cell_set_color(cl_evr, "bold");
324+
}
322325

323-
struct libscols_line * ln_replaced = scols_table_new_line(*tb, ln);
324-
// TODO(jmracek) Translate it
325-
std::string name("replacing ");
326-
name.append(replaced->get_name());
327-
scols_line_set_data(ln_replaced, COL_NAME, (" " + name).c_str());
328-
scols_line_set_data(ln_replaced, COL_ARCH, replaced->get_arch().c_str());
329-
scols_line_set_data(ln_replaced, COL_EVR, replaced->get_evr().c_str());
330-
scols_line_set_data(ln_replaced, COL_REPO, replaced->get_from_repo_id().c_str());
326+
struct libscols_line * ln_replaced = scols_table_new_line(*tb, ln);
327+
// TODO(jmracek) Translate it
328+
std::string name("replacing ");
329+
name.append(replaced->get_name());
330+
scols_line_set_data(ln_replaced, COL_NAME, (" " + name).c_str());
331+
scols_line_set_data(ln_replaced, COL_ARCH, replaced->get_arch().c_str());
332+
scols_line_set_data(ln_replaced, COL_EVR, replaced->get_evr().c_str());
333+
scols_line_set_data(ln_replaced, COL_REPO, replaced->get_from_repo_id().c_str());
331334

332-
auto replaced_size = static_cast<int64_t>(replaced->get_install_size());
333-
scols_line_set_data(
334-
ln_replaced, COL_SIZE, libdnf5::cli::utils::units::format_size_aligned(replaced_size).c_str());
335-
auto replaced_color = action_color(libdnf5::transaction::TransactionItemAction::REPLACED);
336-
auto obsoleted_color = "brown";
335+
auto replaced_size = static_cast<int64_t>(replaced->get_install_size());
336+
scols_line_set_data(
337+
ln_replaced, COL_SIZE, libdnf5::cli::utils::units::format_size_aligned(replaced_size).c_str());
338+
auto replaced_color = action_color(libdnf5::transaction::TransactionItemAction::REPLACED);
339+
auto obsoleted_color = "brown";
337340

338-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_EVR), replaced_color);
339-
if (pkg->get_arch() == replaced->get_arch()) {
340-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_ARCH), replaced_color);
341-
} else {
342-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_ARCH), obsoleted_color);
343-
}
344-
if (pkg->get_name() == replaced->get_name()) {
345-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_NAME), replaced_color);
346-
} else {
347-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_NAME), obsoleted_color);
341+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_EVR), replaced_color);
342+
if (pkg->get_arch() == replaced->get_arch()) {
343+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_ARCH), replaced_color);
344+
} else {
345+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_ARCH), obsoleted_color);
346+
}
347+
if (pkg->get_name() == replaced->get_name()) {
348+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_NAME), replaced_color);
349+
} else {
350+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_NAME), obsoleted_color);
351+
}
352+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_REPO), replaced_color);
353+
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_SIZE), replaced_color);
354+
section.set_last_line(ln_replaced);
348355
}
349-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_REPO), replaced_color);
350-
scols_cell_set_color(scols_line_get_cell(ln_replaced, COL_SIZE), replaced_color);
351-
section.set_last_line(ln_replaced);
352356
}
353357
}
354358

0 commit comments

Comments
 (0)