Hi,
we have a remote website available over ftp which we'd like to keep
versioning of (ideally) with subversion.
The idea is (or was) to run a nightly script which looked for any new files
and added them to the archive, then ran a commit. We would get a patchset
by email every time a change was made to the site.
I tried mirroring the files to a local directory, then running svn on the
local dir, but this is messy to say the least.
I then started using curlftpfs to mount the remote filesystem. It's not
very efficient, but it worked for a while and it's only a small site so
convenience over-rode efficiency. Regrettably, it has started failing
on file adds with:
svn: Can't open '.svn/props/tempfile.tmp': Operation not supported
An strace of "svn add heca.php" includes:
rename(".svn/tmp/entries", ".svn/entries") = 0
lstat64(".svn/entries", {st_mode=S_IFREG|0644, st_size=5012, ...}) = 0
chmod(".svn/entries", 0444) = 0
lstat64("heca.php", {st_mode=S_IFREG|0755, st_size=73, ...}) = 0
stat64(".svn/prop-base/heca.php.svn-base", 0xbfad960c) = -1 ENOENT (No such file or directory)
open(".svn/props/tempfile.tmp", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = -1 EOPNOTSUPP (Operation not supported)
lstat64("heca.php", {st_mode=S_IFREG|0755, st_size=73, ...}) = 0
lstat64("heca.php", {st_mode=S_IFREG|0755, st_size=73, ...}) = 0
lstat64("heca.php", {st_mode=S_IFREG|0755, st_size=73, ...}) = 0
stat64(".svn/text-base/heca.php.svn-base", 0xbfad92ac) = -1 ENOENT (No such file or directory)
brk(0x9cbd000) = 0x9cbd000
open(".svn/text-base/heca.php.svn-base", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
lstat64(".svn/text-base/heca.php.svn-base", 0xbfad93dc) = -1 ENOENT (No such file or directory)
open(".svn/all-wcprops", O_RDONLY|O_LARGEFILE) = 3
fcntl64(3, F_GETFD) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
My guess is that opening the file with O_EXCL isn't implemented in
curlftpfs. Strangely, only certain files show this problem though. When I
ftp'ed in I noticed a difference in permissions (the failing files had
execute set). In some cases removing the execute bit fixed this, but it
didn't in others.
Needless to say "svn commit" isn't working either.
A bit of a long shot, but has anyone any suggestions?
Gavin
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!