Allen Bierbaum wrote: > > I frequently write docbook documents colloratively with other authors. > So that each of us can be working on the document in parallel, we use a > version control system (CVS to be specific) to manage the document. > > This works great and because Docbook/XML is an ASCII-based format the > version control system is able to resolve most changes/merges with no > problem. > > What is a problem though is that with most Docbook editors, changing a > single word in a paragraph causes a very large "diff" in the file. This > makes it difficult to find what exactly changed in the document from > version to version. > > For example, a single spelling change in a large paragraph could cause > the entire paragraph to be replaced in the new version. This can make > tracing through document histories VERY painful and frustrating. > > As and example take the following document: > > <sect1> > <title>Section 1</title> > <para>This is the first paragraph of text. CHANGE THIS. There > is more text to follow, but this should show the problem fine. > If only the save option wrote this paragraph out better.</para> > </sect1> > > Now imagine that I wanted to change the section of text at "CHANGE > THIS". Then it would look like: > > <sect1> > <title>Section 1</title> > <para>This is the first paragraph of text. Diff. There is more > text to follow, but this should show the problem fine. If only > the save option wrote this paragraph out better.</para> > </sect1> > > The problem is that by changing 2 words I have created a file diff for > every line of the paragraph (because words were shifted to new lines). > > XXE already supports a save option that allows for a max line length, > but this doesn't really solve the problem. Although it can help > minimize it so that only the lines on or after the changed word are > considered different. > > One "simple" solution may be to add an option to the save options that > creates new lines at end-of-sentence punctuation marks. This could > probably be implemented in the same area that the current max line > length code is at. > > So, with this option the example would look like: > > <sect1> > <title>Section 1</title> > <para>This is the first paragraph of text. > CHANGE THIS. > There is more text to follow, but this should show the problem fine. > If only the save option wrote this paragraph out better. > </para> > </sect1> > > This a single change would look like: > > <sect1> > <title>Section 1</title> > <para>This is the first paragraph of text. > Diff. > There is more text to follow, but this should show the problem fine. > If only the save option wrote this paragraph out better.</para> > </sect1>
What you have described is really interesting. Something I haven't imagined at all. We intend to support repositories through plug-ins before end of year: WebDAV, parametric HTTP POST, CVS being considered (in that order of priority). When implementing the repository plug-in for CVS, we'll probably have to use your idea or a similar one. In the short term, we are really too busy to implement it. Sorry. -- Hussein SHAFIE hussein at pixware.fr Pixware www.pixware.fr Immeuble Capricorne, 23 rue Colbert, 78180 Montigny Le Bretonneux, France Phone: +33 (0)1 30 60 07 00 Fax: +33 (0)1 30 96 05 23

