We help IT Professionals succeed at work.

Subversion + DAV = multiple transactions on Mac Problems

379 Views
Last Modified: 2013-12-16
Ok, so we've got subversion (v1.3) setup on a Linux machine.  Everything is working great for all platforms (Windows & Linux) but the Mac still is posing a major problem.  To accomodate designers, we are using the DAV and Autoversioning features of SVN.  All the Mac designers have to do is mount the Subversion repository and drag and drop files.  To the end user this is working fine, they drop files on to the DAV mount, the files are then auto versioned and auto updated to the development server(using post-commit hook).

The problem is this: each time a file is overwritten (i.e. Modified), the Mac performs a Delete, an Add, and then a Modify.  Thus 3 revisions occur for what should be 1 revision.  On Windows and Linux, only 1 revision occur (a single Update/Modify).  On the Mac it appears that this is caused only by the finder, because if I use the terminal to copy the file to the DAV-SVN mount, only a single transaction is incurred (as expected).  

So something about the finder drag&drop causes this behavior.  The Finder also performs an Add and a Delete of the "._" resource files.  So even though the "._" files are not maintained in the repository, they incur 2 additional transactions (thus 2 additional revision numbers).  I can probably use the pre-commit hook to reject all "._" files to prevent these transactions.

This is just one of those annoying problems that one cannot foresee when tackling a project.  It is really frustrating though because the revision numbers are growing 3 to 5 times as fast and the extra revisions are just chaff and every time the file is deleted, the revision history is lost for that file.

So, does anyone know how to reduce the number of Subversion transactions incurred when dragging&dropping from Mac finder to SVN-DAV mounted location?  I need to get an overwrite to be 1 Update transaction rather than 3 Delete, Add, Update transactions.

Using Mac OSX 10.4.4
Gentoo Linux with Apache 2.1
Subversion 1.3
Comment
Watch Question

Author

Commented:
After some discussions on Freenode.net IRC, it was noted that the Mac finder performs what is called an "Atomic Replace", whereby any file that is overwritten is first, deleted, recreated, then updated.  not sure if this gives any insight to the situation?

Author

Commented:
After some research, the only way (without huge amounts of effort) to bypass the multiple commit actions of the Finder and DAV+SVN, is to use a 3rd party DAV capable client.  I found that the DAV client shipped with GoLive works much better than most apps out there (I do not recommend Goliath).
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.