diff --git a/hgext/absorb.py b/hgext/absorb.py --- a/hgext/absorb.py +++ b/hgext/absorb.py @@ -971,9 +971,10 @@ label='absorb.description') fm.end() if not opts.get('dry_run'): - if not opts.get('apply_changes'): - if ui.promptchoice("apply changes (yn)? $$ &Yes $$ &No", default=1): - raise error.Abort(_('absorb cancelled\n')) + if (not opts.get('apply_changes') and + state.ctxaffected and + ui.promptchoice("apply changes (yn)? $$ &Yes $$ &No", default=1)): + raise error.Abort(_('absorb cancelled\n')) state.apply() if state.commit(): diff --git a/tests/test-absorb.t b/tests/test-absorb.t --- a/tests/test-absorb.t +++ b/tests/test-absorb.t @@ -129,6 +129,20 @@ nothing applied [1] +The prompt is not given if there are no changes to be applied, even if there +are some changes that won't be applied: + + $ hg absorb + showing changes for a + @@ -0,2 +0,1 @@ + -2b + -4d + +1 + + 0 changesets affected + nothing applied + [1] + Insertaions: $ cat > a << EOF