I have a strange Darcs issue here.
I'm running a VM with a Linux guest OS and a Windows host OS. I've set up /mnt
as a "shared folder"; any files placed here are actually stored in a folder on the host OS. Among other things, this causes all files to have their permissions set to 666 root,root
. (Naturally, Windows doesn't support Unix-style file modes.)
Here's what happened:
cd /mnt/some-random-folder
darcs init
cd ~/some-random-folder
darcs pull /mnt/some-random-folder
darcs add
the filesdarcs record
So far, everything works fine. But now...
user1:~/some-random-folder> darcs push
Pushing to "/mnt/some-random-folder"...
Sun Jan 20 12:11:50 GMT 2013 User1
* Update dependencies.
Shall I push this patch? (1/1) [ynW...], or ? for more options: y
darcs: ./_darcs/tentative_pristine-0: rename: permission denied (Permission denied)
Apply failed!
Erm... what the heck just happened??
(And, more to the point, how do I make it stop happening and actually work?)
I tried using cp
to synchronise the repos, thinking maybe the problem was that I started with a totally empty repo with no patches. That changes the error message (now it can't open _darcs\index
- permission denied), but it still doesn't actually work.
Edit: Darcs 2.8.1 release.
Having played with this further, it appears that accessing files on the host OS from the guest OS does all sorts of strange things. Stuff like, I delete a file, ls
tells me the file is gone, but when I try to write to that file, it says it can't because it already exists. Unmount and remount the filesystem and the problem goes away.
In short, I think this is probably nothing to do with Darcs at all, and is just the VMware drives being strange / buggy.