On Tue, Apr 4, 2017 at 9:40 AM, Pierre-Yves David <pierre-yves.da...@ens-lyon.org> wrote: > # HG changeset patch > # User Pierre-Yves David <pierre-yves.da...@ens-lyon.org> > # Date 1491225382 -7200 > # Mon Apr 03 15:16:22 2017 +0200 > # Node ID 32116e1ad0d93b48d344f317899b974628310850 > # Parent 2632df096fc0ac7582382b1f94ea4b9ad0bce8f2 > # EXP-Topic update.mergehint > # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ > # hg pull > https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r 32116e1ad0d9 > update: add a hint when aborting for uncommitted changes > > Plain abort is a bit frustrating for the user. We now point at the '--merge' > option > in the hint. This is similar to what evolve 'next' and 'prev' do. Not that > evolution use a more direct hint "(do you want --merge)", but it might be a > bit > too error prone for new user. > > diff --git a/mercurial/hg.py b/mercurial/hg.py > --- a/mercurial/hg.py > +++ b/mercurial/hg.py > @@ -761,7 +761,8 @@ def updatetotally(ui, repo, checkout, br > ret = _clean(repo, checkout) > else: > if updatecheck == 'abort': > - cmdutil.bailifchanged(repo, merge=False) > + hint = _('to merge these changes with destination, use > --merge')
The existing messages say "commit or update --clean to discard changes". I sent a patch to also suggest --merge in the updatecheck=linear case (i.e. the legacy and default case), but we ended up dropping that because it's hard to recover from the merge state. I don't see a reason that we should recommend something different when updatecheck=abort. Using a hint of "commit or update --clean to discard changes" seems completely uncontroversial. Should we do that instead? Or should we start recommending --merge (for both these cases) despite the risk? I'm not sure. > + cmdutil.bailifchanged(repo, merge=False, hint=hint) > updatecheck = 'none' > ret = _update(repo, checkout, updatecheck=updatecheck) > > diff --git a/tests/test-merge5.t b/tests/test-merge5.t > --- a/tests/test-merge5.t > +++ b/tests/test-merge5.t > @@ -16,6 +16,7 @@ > $ rm b > $ hg update -c 2 > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > [255] > $ hg revert b > $ hg update -c 2 > diff --git a/tests/test-pull-update.t b/tests/test-pull-update.t > --- a/tests/test-pull-update.t > +++ b/tests/test-pull-update.t > @@ -27,6 +27,7 @@ Should respect config to disable dirty u > adding file changes > added 1 changesets with 1 changes to 1 files (+1 heads) > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > [255] > $ hg --config extensions.strip= strip --no-backup tip > $ hg co -qC tip > diff --git a/tests/test-update-branches.t b/tests/test-update-branches.t > --- a/tests/test-update-branches.t > +++ b/tests/test-update-branches.t > @@ -157,6 +157,7 @@ Cases are run as shown in that table, ro > > $ revtest '-c dirty linear' dirty 1 2 -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > @@ -172,6 +173,7 @@ Cases are run as shown in that table, ro > > $ revtest '-c dirtysub linear' dirtysub 1 2 -c > abort: uncommitted changes in subrepository 'sub' > + (to merge these changes with destination, use --merge) > parent=1 > M sub/suba > > @@ -200,11 +202,13 @@ Cases are run as shown in that table, ro > > $ revtest 'none dirty linear' dirty 1 2 > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > $ revtest 'none dirty linear' dirty 1 2 -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > @@ -226,6 +230,7 @@ Cases are run as shown in that table, ro > > $ revtest 'none dirty linear' dirty 1 2 -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > @@ -269,6 +274,7 @@ Cases are run as shown in that table, ro > > $ revtest 'none dirty linear' dirty 1 2 -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > @@ -323,6 +329,7 @@ Uses default value of "linear" when valu > Setup for later tests > $ revtest 'none dirty linear' dirty 1 2 -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > parent=1 > M foo > > @@ -560,6 +567,7 @@ Test that boolean flags allow --no-flag > > EOF > $ hg co 2 > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > [255] > $ hg co --no-check 2 > 0 files updated, 0 files merged, 0 files removed, 0 files unresolved > diff --git a/tests/test-update-issue1456.t b/tests/test-update-issue1456.t > --- a/tests/test-update-issue1456.t > +++ b/tests/test-update-issue1456.t > @@ -19,6 +19,7 @@ Test that local removed/deleted, remote > $ echo dirty > foo > $ hg up -c > abort: uncommitted changes > + (to merge these changes with destination, use --merge) > [255] > $ hg up -q > $ cat foo _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel