view tests/test-revert @ 5483:0c43f87baba3 default tip

Fix file-changed-to-dir and dir-to-file commits (issue660). Allow adding to dirstate files that clash with previously existing but marked for removal. Protect from reintroducing clashes by revert. This change doesn't address related issues with update. Current workaround is to do "clean" update by manually removing conflicting files/dirs from working directory.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 27 Oct 2007 16:27:55 +0400
parents bfd73b567b3d
children
line wrap: on
line source

#!/bin/sh

hg init
echo 123 > a
echo 123 > c
echo 123 > e
hg add a c e
hg commit -m "first" -d "1000000 0" a c e
echo 123 > b
echo %% should show b unknown
hg status
echo 12 > c
echo %% should show b unknown and c modified
hg status
hg add b
echo %% should show b added and c modified
hg status
hg rm a
echo %% should show a removed, b added and c modified
hg status
hg revert a
echo %% should show b added, copy saved, and c modified
hg status
hg revert b
echo %% should show b unknown, and c modified
hg status
hg revert --no-backup c
echo %% should show unknown: b
hg status
echo %% should show a b c e
ls
echo %% should verbosely save backup to e.orig
echo z > e
hg revert --all -v
echo %% should say no changes needed
hg revert a
echo %% should say file not managed
echo q > q
hg revert q
rm q
echo %% should say file not found
hg revert notfound
hg rm a
hg commit -m "second" -d "1000000 0"
echo z > z
hg add z
hg st
echo %% should add a, forget z
hg revert --all -r0
echo %% should forget a
hg revert --all -rtip
rm a *.orig
echo %% should silently add a
hg revert -r0 a
hg st a

hg update -C
chmod +x c
hg revert --all
echo %% should print non-executable
test -x c || echo non-executable

chmod +x c
hg commit -d '1000001 0' -m exe

chmod -x c
hg revert --all
echo %% should print executable
test -x c && echo executable

echo %% issue 241
hg init a
cd a
echo a >> a
hg commit -A -d '1 0' -m a
echo a >> a
hg commit -d '2 0' -m a
hg update 0
mkdir b
echo b > b/b

echo % should fail - no arguments
hg revert -rtip

echo % should succeed
hg revert --all -rtip

echo %% issue332
hg ci -A -m b -d '1000001 0'
echo foobar > b/b
mkdir newdir
echo foo > newdir/newfile
hg add newdir/newfile
hg revert b newdir
echo foobar > b/b
hg revert .

echo % reverting a rename target should revert the source
hg mv a newa
hg revert newa
hg st a newa