diff options
author | Nagy Gabor <ngaba@bibl.u-szeged.hu> | 2009-05-14 18:25:16 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2009-07-23 03:16:52 +0200 |
commit | 1d19f0896ccc1560a7e2f5b93cfe095b4aefe84a (patch) | |
tree | fc8916e5fb63e474d3cdcd8af937b1c6d07d811d /src | |
parent | ca6ef852f9944ad31e8a136f7faf71da2c5fb57f (diff) | |
download | pacman-1d19f0896ccc1560a7e2f5b93cfe095b4aefe84a.tar.gz pacman-1d19f0896ccc1560a7e2f5b93cfe095b4aefe84a.tar.xz |
Introduce -Suu
If the user switches from unstable repo to a stable one, it is quite hard to
sync its system with the new repo (the user will see many "Local is newer
than stable" messages, nothing more). That's why I introduced -Suu, which
treats a sync package like an upgrade, iff the package version doesn't match
with the local one's.
I added a new pactest (sync104.py) to test this, and I updated the
documentation of -Su.
Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
[Dan: slight doc reword]
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/pacman/pacman.c | 4 | ||||
-rw-r--r-- | src/pacman/sync.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 48d45ad1..d5e600a5 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -130,7 +130,7 @@ static void usage(int op, const char * const myname) printf(_(" -l, --list <repo> view a list of packages in a repo\n")); printf(_(" -p, --print-uris print out URIs for given packages and their dependencies\n")); printf(_(" -s, --search <regex> search remote repositories for matching strings\n")); - printf(_(" -u, --sysupgrade upgrade all packages that are out of date\n")); + printf(_(" -u, --sysupgrade upgrade all outdated packages (-uu enables downgrade)\n")); printf(_(" -w, --downloadonly download packages but do not install/upgrade anything\n")); printf(_(" -y, --refresh download fresh package databases from the server\n")); printf(_(" --needed don't reinstall up to date packages\n")); @@ -508,7 +508,7 @@ static int parseargs(int argc, char *argv[]) config->op_q_unrequired = 1; break; case 'u': - config->op_s_upgrade = 1; + (config->op_s_upgrade)++; config->op_q_upgrade = 1; config->flags |= PM_TRANS_FLAG_UNNEEDED; break; diff --git a/src/pacman/sync.c b/src/pacman/sync.c index cb0b8b19..4da65400 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -563,7 +563,7 @@ static int sync_trans(alpm_list_t *targets) if(config->op_s_upgrade) { printf(_(":: Starting full system upgrade...\n")); alpm_logaction("starting full system upgrade\n"); - if(alpm_trans_sysupgrade() == -1) { + if(alpm_trans_sysupgrade(config->op_s_upgrade >= 2) == -1) { pm_fprintf(stderr, PM_LOG_ERROR, "%s\n", alpm_strerrorlast()); retval = 1; goto cleanup; |