Mercurial > hg
view tests/test-convert-bzr-directories @ 10428:e553a425751d stable
convert: differentiate between IOError and OSError on commitctx()
The IOError exception is overloaded to mean 'this file was deleted in
the current commit'. Separate the code that handles IOError and file
deletion from general OSError exceptions. The latter are real errors,
but IOError is not always a throwable error.
This solves the accidental marking of files as 'deleted' in commits that
try to write for example in .hg/store/data revlogs that the current user
has no permission to modify (a normal OSError that should abort the
current commit).
Changed by pmezard: use getattr() to be on the safe side.
author | Giorgos Keramidas <keramida@ceid.upatras.gr> |
---|---|
date | Thu, 11 Feb 2010 23:15:42 +0200 |
parents | 9e6d6568bf7a |
children |
line wrap: on
line source
#!/bin/sh . "$TESTDIR/bzr-definitions" echo % empty directory mkdir test-empty cd test-empty bzr init -q source cd source echo content > a bzr add -q a bzr commit -q -m 'Initial add' mkdir empty bzr add -q empty bzr commit -q -m 'Empty directory added' echo content > empty/something bzr add -q empty/something bzr commit -q -m 'Added file into directory' cd .. hg convert source source-hg manifest source-hg 1 manifest source-hg tip cd .. echo % directory renames mkdir test-dir-rename cd test-dir-rename bzr init -q source cd source mkdir tpyo echo content > tpyo/something bzr add -q tpyo bzr commit -q -m 'Added directory' bzr mv tpyo typo bzr commit -q -m 'Oops, typo' cd .. hg convert source source-hg manifest source-hg 0 manifest source-hg tip cd .. echo % nested directory renames mkdir test-nested-dir-rename cd test-nested-dir-rename bzr init -q source cd source mkdir -p firstlevel/secondlevel/thirdlevel echo content > firstlevel/secondlevel/file echo this_needs_to_be_there_too > firstlevel/secondlevel/thirdlevel/stuff bzr add -q firstlevel bzr commit -q -m 'Added nested directories' bzr mv firstlevel/secondlevel secondlevel bzr commit -q -m 'Moved secondlevel one level up' cd .. hg convert source source-hg manifest source-hg tip cd .. echo % directory remove mkdir test-dir-remove cd test-dir-remove bzr init -q source cd source mkdir src echo content > src/sourcecode bzr add -q src bzr commit -q -m 'Added directory' bzr rm -q src bzr commit -q -m 'Removed directory' cd .. hg convert source source-hg manifest source-hg 0 manifest source-hg tip cd .. echo % directory replace mkdir test-dir-replace cd test-dir-replace bzr init -q source cd source mkdir first second echo content > first/file echo morecontent > first/dummy echo othercontent > second/something bzr add -q first second bzr commit -q -m 'Initial layout' bzr mv first/file second/file bzr mv first third bzr commit -q -m 'Some conflicting moves' cd .. hg convert source source-hg manifest source-hg tip cd ..