How well is an Apache Subversion repository suited to facilitating collaborative editing of multiple .docx, .doc, .xls(s), etc. files?

How well will SVN facilitate collaborative editing in this instance?--e.g., how would svn handle merging of the same file edited in different ways by two different clients?

This is dual-sided question really.

how would svn handle merging of the same file edited in different ways

Very good. It's really one of basic features of any merge-based SCMs - combine diverged history of changes

How well will SVN facilitate collaborative editing in this instance?

Poorly, because, as already noted, old MS-Office files was "just binary" for subversion, automatic merge of binaries may give unpredictable results, for manual hand-driven merges it's more question to Subversion admins, which can (have to) provide and configure special diff|merge tools for *.doc in repository in order to allow end-users do merges in usual WYSIWYG-way

For new, XML-based Office situation became even worse. AFAICR, docx|.xlsx files are really multi-files zip archives and merge can, theoretically, affect and change more than one file. I don't know how to handle this case


SVN is not really suited to the versioning of binary files (which .doc and .xls are), as the files don't contain text it's practically impossible to diff the files or to merge changes. The newer format (.docx and .xlsx) are actually XML documents which could help slightly with diff and merge operations but would still be quite difficult.

My recommendation would be to use something like Google Docs which will allow for versioning and simultaneous editing by up to 50 users (does spreadsheets too). If your dead set on using SVN I would recommend sticking to plain text documents, I know of a few people who used LaTeX and SVN for some assignments, which allowed them to do formatting.


Not very much. In fact, no version control system is very good at such a task, they are tailored at handling plain text files (the types you mention are all binary). You can handle them, but tasks like "show changes" or "who did..." won't have answers. And that is most of the point of version control.

Perhaps a better solution is to share documents via Google docs or such?