Our FIRST robotics team is working with binary CAD/CAM files and has been making a mess with unmergeable files in git and GitHub. GitHub supports SVN, and SVN allows binary files to be locked, but when I use the command
svn propset svn:needs-lock true ControlsBox.iam followed by
svn ci ., I get the following error:
svn: E175008: Commit failed (details follow):
svn: E175008: At least one property change failed; repository is unchanged
svn: E160024: Invalid PROPPATCH property
Is this an indirect indication that GitHub doesn't support the
svn:needs-lock property or that I'm doing something wrong? Is there a way to get this to work?
Best How To :
As mentioned, Git does not support file locking. But I know of at least two distributed systems that do: Veracity, and Mercurial (if you install the lock extension). I'm not sure whether Veracity is still under active development, and it doesn't look there is a good hosting site for it anymore. Mercurial, on the other hand, is very active, has a large number of users, and support on many hosting sites including BitBucket if you want a central server without the hassle of managing it yourself. Like Git, both of these systems also support starting up lightweight servers to allow users to push/pull between each other instead of using a central server, but there does need to be some sort of central location to store locks since the whole point of this exercise is to use those. Sadly the major hosting providers do not support the lock extension for Mercurial, that I know of.
Of course, you could also use SVN.
Google Code and Sourceforge and other places offer free SVN hosting, though none as nice as GitHub or even BitBucket (that I know of). A self-hosted SVN server takes a lot more setup than the distributed tools, but there are simple tools to help with that as well like VisualSVN Server.