Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-commit @ 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 | 9e3e975258a9 |
children |
line wrap: on
line source
#!/bin/sh cleanpath() { sed -e "s:/.*\(/test/.*\):...\1:" } echo % commit date test hg init test cd test echo foo > foo hg add foo hg commit -d '0 0' -m commit-1 echo foo >> foo hg commit -d '1 4444444' -m commit-3 hg commit -d '1 15.1' -m commit-4 hg commit -d 'foo bar' -m commit-5 hg commit -d ' 1 4444' -m commit-6 hg commit -d '111111111111 0' -m commit-7 echo % partial commit test echo bar > bar hg add bar rm bar hg commit -d "1000000 0" -m commit-8 2>&1 | cleanpath hg -q revert -a --no-backup mkdir dir echo boo > dir/file hg add hg -v commit -d '0 0' -m commit-9 dir echo > dir.file hg add hg commit -d '0 0' -m commit-10 dir dir.file 2>&1 | cleanpath echo >> dir/file mkdir bleh mkdir dir2 cd bleh hg commit -d '0 0' -m commit-11 . 2>&1 | cleanpath hg commit -d '0 0' -m commit-12 ../dir ../dir2 2>&1 | cleanpath hg -v commit -d '0 0' -m commit-13 ../dir cd .. hg commit -d '0 0' -m commit-14 does-not-exist 2>&1 | cleanpath ln -s foo baz hg commit -d '0 0' -m commit-15 baz 2>&1 | cleanpath touch quux hg commit -d '0 0' -m commit-16 quux 2>&1 | cleanpath echo >> dir/file hg -v commit -d '0 0' -m commit-17 dir/file cd .. echo % partial subdir commit test hg init test2 cd test2 mkdir foo echo foo > foo/foo mkdir bar echo bar > bar/bar hg add hg ci -d '1000000 0' -u test -m commit-subdir-1 foo hg ci -d '1000001 0' -u test -m commit-subdir-2 bar echo % subdir log 1 hg log -v foo echo % subdir log 2 hg log -v bar echo % full log hg log -v cd .. echo % dot and subdir commit test hg init test3 cd test3 mkdir foo echo foo content > foo/plain-file hg add foo/plain-file hg ci -d '1000000 0' -u test -m commit-foo-subdir foo echo modified foo content > foo/plain-file hg ci -d '2000000 0' -u test -m commit-foo-dot . echo % full log hg log -v echo % subdir log cd foo hg log . cd .. cd .. exit 0