Thanks to Stu (no URL) and Ant, I think I’ve made some progress on scplugin! For some background, see my post on Subversion on Mac OSX and my subsequent attempts to get SCPlugin to work with Finder.
After trying Stu’s and Ant’s suggestions, I now get a Subversion menu when I control-click or right-click on a file/directory in the Finder. Woo hoo! Everything looks good, too. If I open the Subversion menu on a file which isn’t part of a svn working copy, only the Checkout and About menu items are available (as expected). Subversion working copies show the full menu (or whatever is appropriate). However, there are two things that still seem to be broken: the svn status indicators (icon overlays?) aren’t showing up in Finder, and I seem to have hosed the connection to my repository. Doh!
We’re using smb file shares to host our repository. When I first set this up, I connected to the file share (⌘K in Finder) and checked out a working copy of the repository. I could only work via the command line, but everything worked. Fastforward to a few days ago (when Stu and Ant dropped comments). I’m now trying to use scplugin again (not the command line), and all of the sudden nothing is working. It finally dawned on me that perhaps I should try the command line again. It turns out that when I first created my working copy, I must have somehow given a connection-specific smb string instead of the server name followed by the share. Here are the errors I’m getting:
svn commit -m 'Changed script to be user-independent' my_script
subversion/libsvn_client/commit.c:873: (apr_err=180001)
svn: Commit failed (details follow):
subversion/libsvn_ra_local/ra_plugin.c:285: (apr_err=180001)
svn: Unable to open an ra_local session to URL
subversion/libsvn_ra_local/split_url.c:125: (apr_err=180001)
svn: Unable to open repository 'file:///Volumes/server-3/my_proj/trunk/my_script'
The /Volumes/server-3 bit is where the problem lies–It should be /Volumes/sharename, instead of the third connection to this server. I did some hunting around on the net and found out how to fix broken svn repository references: use svn switch --relocate
, such as:
svn switch --relocate file:///Volumes/server-3 file:///Volumes/sharename working_copy_root
or so I thought. 🙁 Now I’m getting the following error:
svn commit -m 'Changed script to be user-independent' my_script
subversion/libsvn_client/commit.c:873: (apr_err=5)
svn: Commit failed (details follow):
subversion/libsvn_subr/io.c:2199: (apr_err=5)
svn: Can't write to file '/Volumes/sharename/my_proj/db/transactions/3-1.txn/rev': Input/output error
Bummer. It may be time for a bug report…
Rats! I was working on my subversion-controlled project when I noticed that the svn status indicators were showing up in Finder. I thought that perhaps a recent patch had fixed subversion, but it looks like only scplugin got fixed. I’m still getting errors when I try to commit changes, either via scplugin (Finder) or the command line. Here’s the error from the scplugin status window:
subversion/libsvn_client/commit.c:873: (apr_err=5)
svn: Commit failed (details follow):
subversion/libsvn_subr/io.c:2199: (apr_err=5)
svn: Can’t write to file ‘/Volumes/sharename/my_proj/db/transactions/4-4.txn/rev’: Input/output error
Pingback: SonicChicken weblog » Blog Archive » Mac OSX Subversion with an SMB repository (again)
Running svn version 1.3.1 (r19032) on Mac 10.4.6, with a working copy on a SMB mounted drive and trying to do a commit using http, I’m seeing the following consistently:
Peters-Computer:~/smbhome/peter $svn co http://athena/svn/debug/trunk dbg2
A dbg2/dir1
A dbg2/dir1/doc.txt
A dbg2/dir1/foo.c
A dbg2/dir1/thing.doc
A dbg2/dir1/README1
svn: In directory ‘dbg2/dir1’
svn: Can’t copy ‘dbg2/dir1/.svn/tmp/text-base/doc.txt.svn-base’ to ‘dbg2/dir1/doc.txt.tmp’: Input/output error
Using the same computer, the same command works great when I’m checking out to a directory on the local hard drive or on an NFS mounted fs.