Mercurial > hg-stable
changeset 13437:6169493ac3f9 stable
Do not allow merging with uncommitted changes in a subrepo
author | Oleg Stepanov <oleg.stepanov@jetbrains.com> |
---|---|
date | Wed, 16 Feb 2011 08:56:11 -0800 |
parents | b391c0c9be61 |
children | 48463d889d4e |
files | mercurial/merge.py tests/test-merge-subrepos.t |
diffstat | 2 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Thu Feb 17 18:05:27 2011 -0200 +++ b/mercurial/merge.py Wed Feb 16 08:56:11 2011 -0800 @@ -508,6 +508,11 @@ if not force and (wc.files() or wc.deleted()): raise util.Abort(_("outstanding uncommitted changes " "(use 'hg status' to list changes)")) + for s in wc.substate: + if wc.sub(s).dirty(): + raise util.Abort(_("outstanding uncommitted changes in " + "subrepository '%s'") % s) + elif not overwrite: if pa == p1 or pa == p2: # linear pass # all good
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-merge-subrepos.t Wed Feb 16 08:56:11 2011 -0800 @@ -0,0 +1,25 @@ + $ hg init + + $ echo a > a + $ hg ci -qAm 'add a' + + $ hg init subrepo + $ echo 'subrepo = http://example.net/libfoo' > .hgsub + $ hg ci -qAm 'added subrepo' + + $ hg up -qC 0 + $ echo ax > a + $ hg ci -m 'changed a' + created new head + + $ hg up -qC 1 + $ cd subrepo + $ echo b > b + $ hg add b + $ cd .. + +Should fail, since there are added files to subrepo: + + $ hg merge + abort: outstanding uncommitted changes in subrepository 'subrepo' + [255]