# HG changeset patch # User Kristian H?gsberg # Date 1207713237 14400 # Node ID c78f677d96b82249d259c863d72be88f18af0165 # Parent 78afac5bb7b8d8a3bcad0baec1533912de48182c Make transaction resolve step optional. diff -r 78afac5bb7b8 -r c78f677d96b8 main.c --- a/main.c Tue Apr 08 00:10:31 2008 -0400 +++ b/main.c Tue Apr 08 23:53:57 2008 -0400 @@ -421,7 +421,7 @@ } } - errors = razor_transaction_describe(trans); + errors = razor_transaction_resolve(trans); if (errors) return 1; @@ -453,7 +453,7 @@ } } - errors = razor_transaction_describe(trans); + errors = razor_transaction_resolve(trans); if (errors) return 1; @@ -626,7 +626,12 @@ struct razor_set *system, *upstream, *next; struct razor_transaction *trans; char path[PATH_MAX], new_path[PATH_MAX]; - int i, errors, fd; + int i = 0, errors, fd, dependencies = 1; + + if (i < argc && strcmp(argv[i], "--no-dependencies") == 0) { + dependencies = 0; + i++; + } /* Create the new next repo file up front to ensure exclusive * access. */ @@ -653,7 +658,7 @@ return 1; } trans = razor_transaction_create(system, upstream); - for (i = 0; i < argc; i++) { + for (; i < argc; i++) { if (mark_packages_for_update(trans, upstream, argv[i]) == 0) { fprintf(stderr, "no package matched %s\n", argv[i]); unlink(new_path); @@ -661,10 +666,12 @@ } } - errors = razor_transaction_describe(trans); - if (errors) { - unlink(new_path); - return 1; + if (dependencies) { + errors = razor_transaction_resolve(trans); + if (errors) { + unlink(new_path); + return 1; + } } next = razor_transaction_finish(trans); diff -r 78afac5bb7b8 -r c78f677d96b8 razor.c --- a/razor.c Tue Apr 08 00:10:31 2008 -0400 +++ b/razor.c Tue Apr 08 23:53:57 2008 -0400 @@ -2696,7 +2696,7 @@ } int -razor_transaction_describe(struct razor_transaction *trans) +razor_transaction_resolve(struct razor_transaction *trans) { struct razor_transaction_package *p, *pend, *tps; int errors_only = 0; @@ -2841,8 +2841,6 @@ { struct razor_transaction_package *p, *end; - resolve_transaction(trans); - end = trans->packages.data + trans->packages.size; for (p = trans->packages.data; p < end; p++) { if (p->state != RAZOR_PACKAGE_UNSATISFIABLE) @@ -2871,8 +2869,6 @@ struct razor_transaction_package *p, *end; int cmp; - resolve_transaction(trans); - /* FIXME */ if (trans->errors) return NULL; diff -r 78afac5bb7b8 -r c78f677d96b8 razor.h --- a/razor.h Tue Apr 08 00:10:31 2008 -0400 +++ b/razor.h Tue Apr 08 23:53:57 2008 -0400 @@ -118,7 +118,7 @@ void razor_transaction_remove_package(struct razor_transaction *transaction, struct razor_package *package); void razor_transaction_update_all(struct razor_transaction *transaction); -int razor_transaction_describe(struct razor_transaction *trans); +int razor_transaction_resolve(struct razor_transaction *trans); struct razor_set *razor_transaction_finish(struct razor_transaction *trans); void razor_transaction_destroy(struct razor_transaction *trans); diff -r 78afac5bb7b8 -r c78f677d96b8 test-driver.c --- a/test-driver.c Tue Apr 08 00:10:31 2008 -0400 +++ b/test-driver.c Tue Apr 08 23:53:57 2008 -0400 @@ -267,7 +267,7 @@ razor_transaction_remove_package(ctx->trans, pkg); } - errors = razor_transaction_describe(ctx->trans); + errors = razor_transaction_resolve(ctx->trans); printf("\n"); while (ctx->n_install_pkgs--)