Killing a migration from WORM to SHA256 with ^C breaks things; future attempts to do the migration fail: #!/bin/bash BASE=/tmp/migrate-bug set -x chmod -R +w $BASE rm -rf $BASE mkdir -p $BASE cd $BASE # create annex git init . git annex init # make a big (sparse) file and add it dd if=/dev/zero of=bigfile bs=1 count=0 seek=1G git annex add --backend WORM bigfile git commit -m 'added bigfile' # look at status git annex status # now migrate it, but kill migration during checksum # Simulate ^C by making a new process group and sending SIGINT setsid git annex migrate --backend SHA256 bigfile & PID=$! sleep 1 kill -INT -$PID wait # look at status git annex status # this migration fails git annex migrate --backend SHA256 bigfile # but fsck says everything's OK git annex fsck The error: migrate bigfile git-annex: /tmp/migrate-bug/.git/annex/objects/K9/V1/WORM-s1073741824-m1321566308--bigfile/WORM-s1073741824-m1321566308--bigfile: createLink: already exists (File exists) failed git-annex: migrate: 1 failed > Fixed it to delete the stale temp file. [[done]] > > Thanks for making such clear test cases, Jim! --[[Joey]]