You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Wolfgang Keller <wo...@gmx.de> on 2006/06/19 18:15:34 UTC

Subversion for collaborative document editing?

Hello,

in our office (technical consulting company) we work a lot on quite large, 
structured documents (project reports), usually multiple users at once one 
the same document. Currently we are using youknowwhat for these documents and 
it's the usual mess, not just for merging all the modifications by all the 
editors. Now that I've found out about a quite affordable (much less $$$ than 
e.g. Framemaker) and "clickdroid"-proof "native" XML authoring application, I 
would love to replace this mess with a more efficient toolchain.

The basic idea is to use a sourcecode-management software to store the 
"source code" of the documents, which would be "native" XML (probably 
docbook). After looking at a few available SCM systems, I would prefer 
subversion for certain reasons such as the availability of "clickdroid"-proof 
installers and GUIs for non-*x systems as well as documentation.

What is still unclear to me however is 

- which sourcecode-management software is the best for our needs and
- what I need between the sourcecode-management software and the XML 
authoring application so that for the end-user it looks essentially as if 
(s)he was working with "just an ordinary filesystem".

So far it seems to me that the answer to the second question is essentially 
"a WWW server that supports WebDAV" (e.g. Apache with Mod_DAV) on the server 
with the SVN repository. The WebDAV server can then be mounted on the clients 
and the files can be retrieved and stored "as usual", the end-users just 
don't see any difference between the currently used file server and the 
WebDAV server. Diffing and merging of the modifications would have to be done 
on the server, more or less manually. Correct?

The answer to the first question apparently depends a lot on our requirement 
to support offline work with documents. We have a lot of free-lancers who 
work from home and we also work a lot abroad ourselves (using notebooks with 
fairly limited hardware resources). Does this mean that Subversion would not 
be an adequate choice for us? Do I have to look into one of the "distributed" 
sourcecode-management systems instead?

TIA for any help (and if available references to any documentation on this 
kind of application for sourcecode-management tools)

Sincerely,

Wolfgang Keller 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Subversion for collaborative document editing?

Posted by Wolfgang Keller <wo...@gmx.de>.
Hello,

and thanks for your reply.

On Wed, 21 Jun 2006 19:38:41 +0200, Ryan Schmidt wrote
(in article <02...@ryandesign.com>):

> AFAIK, your requirement of simultaneous editing of documents makes  
> auto-versioning over WebDAV non-optimal, because I believe it leads  
> to the following pattern:
> 
> - User A opens a document
> - User B opens the same document
> - User A makes changes and saves the document
> - User B makes changes and saves the document, thereby overwriting  
> User A's changes
> - Neither User A nor User B are aware that this has happened

Exactly.

My understanding of the setup was the following:

WebDAV is in fact simply used as a "network filesystem" used to access the 
Subversion repository.

The fact that "behind" the WebDAV connection there is a Subversion repository 
should allow to keep all modifications, each "save" by a user just creates a 
new version of the same file containing the "diff" to the last version. 
Afterwards, someone just takes the latest versions of each user and merges 
them on the server, using the corresponding subversion commands.

What's wrong with this understanding? I'm totally ignorant of version control 
systems in general, as well as Subversion and WebDAV in particular.

> If you teach your users revision control techniques, including having  
> their own working copies of things on their own machines, writing log  
> messages describing what they do, and how to merge and resolve  
> conflicts, then you empower users to avoid this situation.

The point is to avoid having to teach each and every "clickdroid" >:-> in the 
company such revision control techniques - and "enforce" their correct and 
consistent use afterwards!

> I don't know how well you will be able to merge or resolve conflicts  
> in your XML formats. 

This mostly depends on whether Subversion allows to use the right diff tool 
and how well this diff tool can handle specifics of XML files (such as 
whitespace insignificance etc.). But that's a topic that I will have to solve 
independently.

>> The answer to the first question apparently depends a lot on our  
>> requirement to support offline work with documents. We have a lot of 
>> free- lancers who work from home and we also work a lot abroad ourselves 
>> (using  notebooks with fairly limited hardware resources). Does this mean 
>> that Subversion  would not be an adequate choice for us? Do I have to 
>> look into one of the  "distributed" sourcecode-management systems instead? 
> 
> Subversion is said to have been designed for low-bandwidth  
> connections. The philosophy is that disk is plentiful and cheap, and  
> network access is limited. So if everyone has their own working copy  
> on their local drive and updates and commits as necessary,  
> distributed work shouldn't be a problem.

My point was to avoid that each and every contributor to a document would 
have to use Subversion commands - this should be equired _only_ for the one 
who merges the contributions of the different users.

Plus, XML document authoring software usually does not offer integration with 
version control systems, so somehow
 
> WebDAV access would, of course, be a problem in that setup, because  
> you'd need a constant WebDAV connection to the server. (Another  
> reason to avoid WebDAV in your situation.)

I would _love_ to get rid of the requirement to run a WebDAV server as well.

The functionality I need in fact is something that

- can be routed over TCP/IP
- looks like an ordinary filesystem to the client application
- does NOT overwrite the existing file on each "save"
- but instead store just the "diff" to the last saved version in a new 
version of the same file.

TIA,

Sincerely,

Wolfgang Keller

-- 
My email-address is correct.
Do NOT remove ".nospam" to reply.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Subversion for collaborative document editing?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jun 19, 2006, at 20:15, Wolfgang Keller wrote:

> What is still unclear to me however is
>
> - which sourcecode-management software is the best for our needs and
> - what I need between the sourcecode-management software and the XML
> authoring application so that for the end-user it looks essentially  
> as if
> (s)he was working with "just an ordinary filesystem".
>
> So far it seems to me that the answer to the second question is  
> essentially
> "a WWW server that supports WebDAV" (e.g. Apache with Mod_DAV) on  
> the server
> with the SVN repository. The WebDAV server can then be mounted on  
> the clients
> and the files can be retrieved and stored "as usual", the end-users  
> just
> don't see any difference between the currently used file server and  
> the
> WebDAV server. Diffing and merging of the modifications would have  
> to be done
> on the server, more or less manually. Correct?

AFAIK, your requirement of simultaneous editing of documents makes  
auto-versioning over WebDAV non-optimal, because I believe it leads  
to the following pattern:

- User A opens a document
- User B opens the same document
- User A makes changes and saves the document
- User B makes changes and saves the document, thereby overwriting  
User A's changes
- Neither User A nor User B are aware that this has happened

You should construct a test scenario to see if this actually occurs,  
but I'm led to believe it does.

If you teach your users revision control techniques, including having  
their own working copies of things on their own machines, writing log  
messages describing what they do, and how to merge and resolve  
conflicts, then you empower users to avoid this situation.

I don't know how well you will be able to merge or resolve conflicts  
in your XML formats. It depends on the specific XML format. I'm not  
familiar with the internals of docbook. I've just heard stories on  
the list about certain IDEs using XML files that are very non- 
mergeable because they include system-generated unique sequential ID  
numbers which then become non-unique during conflict resolution,  
causing problems. You may just have to try it out -- construct a few  
conflict situations and see how easy it is to resolve.


> The answer to the first question apparently depends a lot on our  
> requirement
> to support offline work with documents. We have a lot of free- 
> lancers who
> work from home and we also work a lot abroad ourselves (using  
> notebooks with
> fairly limited hardware resources). Does this mean that Subversion  
> would not
> be an adequate choice for us? Do I have to look into one of the  
> "distributed"
> sourcecode-management systems instead?

Subversion is said to have been designed for low-bandwidth  
connections. The philosophy is that disk is plentiful and cheap, and  
network access is limited. So if everyone has their own working copy  
on their local drive and updates and commits as necessary,  
distributed work shouldn't be a problem.

WebDAV access would, of course, be a problem in that setup, because  
you'd need a constant WebDAV connection to the server. (Another  
reason to avoid WebDAV in your situation.)



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org