Mercurial > hg-stable
view tests/test-remove @ 10251:a19d2993385d stable
subrepo: fix merging of already merged subrepos (issue1986)
This fixes a bug seen when merging a main repo which contains a subrepo when
both repos have been merged before. Each repo (main and sub) has two
branches, both of which have been merged before.
In a subrepo, if the revision to merge to is an ancestor of the current rev,
then the merge should be a noop.
Test provided by Steve Losh.
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 15 Jan 2010 21:08:04 +0100 |
parents | 1f665246dab3 |
children | 07ac2a560fce |
line wrap: on
line source
#!/bin/sh remove() { hg rm $@ hg st # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5 find . -name .hg -prune -o -type f -print | sort hg up -C } hg init a cd a echo a > foo echo % file not managed remove foo hg add foo hg commit -m1 # the table cases echo % 00 state added, options none echo b > bar hg add bar remove bar echo % 01 state clean, options none remove foo echo % 02 state modified, options none echo b >> foo remove foo echo % 03 state missing, options none rm foo remove foo echo % 10 state added, options -f echo b > bar hg add bar remove -f bar rm bar echo % 11 state clean, options -f remove -f foo echo % 12 state modified, options -f echo b >> foo remove -f foo echo % 13 state missing, options -f rm foo remove -f foo echo % 20 state added, options -A echo b > bar hg add bar remove -A bar echo % 21 state clean, options -A remove -A foo echo % 22 state modified, options -A echo b >> foo remove -A foo echo % 23 state missing, options -A rm foo remove -A foo echo % 30 state added, options -Af echo b > bar hg add bar remove -Af bar rm bar echo % 31 state clean, options -Af remove -Af foo echo % 32 state modified, options -Af echo b >> foo remove -Af foo echo % 33 state missing, options -Af rm foo remove -Af foo # test some directory stuff mkdir test echo a > test/foo echo b > test/bar hg ci -Am2 echo % dir, options none rm test/bar remove test echo % dir, options -f rm test/bar remove -f test echo % dir, options -A rm test/bar remove -A test echo % dir, options -Af rm test/bar remove -Af test echo 'test remove dropping empty trees (issue1861)' mkdir -p issue1861/b/c echo x > issue1861/x echo y > issue1861/b/c/y hg ci -Am add hg rm issue1861/b hg ci -m remove ls issue1861