repository seemingly corrupted after "abort: Operation not permitted: 'path_to_directory' "

j. van den hoff veedeehjay at googlemail.com
Thu Aug 8 16:29:33 UTC 2013


hi list,

first time in several years of (not too fancy) hg usage that seemingly  
something really bad happened.

a) the setup:
I have a repository (purely local, not connected to any other repo, backup  
is done otherwise...) containing a modestly deep file tree with some  
hundred files, mostly shell scripts. the repo is 3 years old with some 500  
revisions over all. over time there has been substantial restructuring
done, all with `hg mv'  as far as I recall. moreover, there are a bunch of  
untracked files in the tree (test files etc.)

b) problem 1 (the small one):
when trying to do `hg up' to some quite old revision I get an abort due to  
some untracked file not matching to earlier state of repo (to something to  
that extent). question: what is that about? why does mercurial care about  
some untracked file at all and does not leave it alone? ultimately, I  
simply deleted the (unimportant test-)file and this error went away (for  
now, at least), but still..

c) problem 2 (the BIG one):
after getting rid of problem 1 I restored the repo + working copy from  
yesterdays backup (just to make sure that I start over with a definitely  
uncorrupted setup) and tried again to `hg up' to the old revision. this  
failed with "abort: Operation not permitted: 'path_to_directory'"
where `path_to_directory' is the path to one of the subdirs in the current  
working copy. after this abort `hg' believed to be still at `tip' but the  
working copy was severely corrupted in several places (i.e. a diff vs. the  
backup showed many discrepancies). especially the `path_to_directory'  
reported by the abort was simply empty. issuing `hg up tip' did not help  
either. trying to update to "tip minus one" produced multiple conflicts of  
the type

remote changed {some_path_here} which local deleted
use (c)hanged version or leave (d)eleted?

which I did not try to really understand or resolve ...

so the working copy (if not the repo?) seemingly has ended up in an  
inconsistent or severely corrupted state. my only solution was to again  
retrieve the backup and start over.

I could also identify the most recent revision where the problem occurs if  
an update to that revision is attempted: it is the one _before_ which I  
moved some of the tracked files to a new directory. it's exactly that path  
is with reported by the `abort' message as not allowing the operation  
(whatever it is). so I can only update back until the oldest revision  
where the (then) new sub-directory was created and the respective tracked  
files moved to that new directory. the update to the revision before this  
rename/move is not reachable.

btw: I verified that I do not have a stupid permission problem here:  
everything is owned by me and writable AFAICS.


I hope the description is sufficiently clear. did'nt find anything in the  
mailing list archives so that's why I'm here...

I would of course appreciate any help/clarification what might be going on  
here.

thanks in advance

joerg

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/



More information about the Mercurial mailing list