view tests/test-symlinks @ 2021:fc22ed56afe3

Fix hg push and hg push -r sometimes creating new heads without --force. Fixing issue179. The algorithm checks if there not more new heads on the remote side than heads which become non-heads due to getting children. Pushing this repo: m /\ 3 3a| |/ / 2 2a |/ 1 to a repo only having 1, 2 and 3 didn't abort requiring --force before. Added test cases for this and some doc strings for used methods.
author Thomas Arendsen Hein <thomas@intevation.de>
date Wed, 29 Mar 2006 22:35:21 +0200
parents 6c61646fee5e
children fd77b7ee4aac
line wrap: on
line source

#!/bin/sh
#Test bug regarding symlinks that showed up in hg 0.7
#Author: Matthew Elder <sseses@gmail.com>

#make and initialize repo
hg init test; cd test;

#make a file and a symlink
touch foo; ln -s foo bar;

#import with addremove -- symlink walking should _not_ screwup.
hg addremove

#commit -- the symlink should _not_ appear added to dir state
hg commit -m 'initial'

#add a new file so hg will let me commit again
touch bomb

#again, symlink should _not_ show up on dir state
hg addremove

#Assert screamed here before, should go by without consequence
hg commit -m 'is there a bug?'

cd .. ; rm -rf test
hg init test; cd test;

mkdir dir
touch a.c dir/a.o dir/b.o
# test what happens if we want to trick hg
hg commit -A -m 0
echo "relglob:*.o" > .hgignore
rm a.c
rm dir/a.o
rm dir/b.o
mkdir dir/a.o
ln -sf nonexist dir/b.o
mkfifo a.c
# it should show a.c, dir/a.o and dir/b.o deleted
hg status
hg status a.c