Mercurial > hg
view tests/test-mq-symlinks.t @ 24051:7956d17431bc
windows: seek to the end of posixfile when opening in append mode
The position is implementation defined when opening in append mode,
and it seems like Linux sets it to EOF while Windows keeps it at zero.
This has caused problems in the past when a file is opened and tell()
is immediately called, such as 48c232873a54 and 6bf93440a717.
Since the only caller of osutil.posixfile is this windows module, this seems
like a better place to fix the issue than in osutil.c and pure.osutil.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 31 Jan 2015 12:39:44 -0500 |
parents | a387b0390082 |
children | 4d2b9b304ad0 |
line wrap: on
line source
#require symlink $ echo "[extensions]" >> $HGRCPATH $ echo "mq=" >> $HGRCPATH $ hg init $ hg qinit $ hg qnew base.patch $ echo aaa > a $ echo bbb > b $ echo ccc > c $ hg add a b c $ hg qrefresh $ "$TESTDIR/readlink.py" a a -> a not a symlink test replacing a file with a symlink $ hg qnew symlink.patch $ rm a $ ln -s b a $ hg qrefresh --git $ "$TESTDIR/readlink.py" a a -> b $ hg qpop popping symlink.patch now at: base.patch $ hg qpush applying symlink.patch now at: symlink.patch $ "$TESTDIR/readlink.py" a a -> b test updating a symlink $ rm a $ ln -s c a $ hg qnew --git -f updatelink $ "$TESTDIR/readlink.py" a a -> c $ hg qpop popping updatelink now at: symlink.patch $ hg qpush --debug applying updatelink patching file a committing files: a committing manifest committing changelog now at: updatelink $ "$TESTDIR/readlink.py" a a -> c $ hg st test replacing a symlink with a file $ ln -s c s $ hg add s $ hg qnew --git -f addlink $ rm s $ echo sss > s $ hg qnew --git -f replacelinkwithfile $ hg qpop popping replacelinkwithfile now at: addlink $ hg qpush applying replacelinkwithfile now at: replacelinkwithfile $ cat s sss $ hg st test symlink removal $ hg qnew removesl.patch $ hg rm a $ hg qrefresh --git $ hg qpop popping removesl.patch now at: replacelinkwithfile $ hg qpush applying removesl.patch now at: removesl.patch $ hg st -c C b C c C s replace broken symlink with another broken symlink $ ln -s linka linka $ hg add linka $ hg qnew link $ hg mv linka linkb $ rm linkb $ ln -s linkb linkb $ hg qnew movelink $ hg qpop popping movelink now at: link $ hg qpush applying movelink now at: movelink $ "$TESTDIR/readlink.py" linkb linkb -> linkb