At my place of work we are currently looking for a documentation system for writing manuals and other customer and internal documentation. Its features should be:
- Small templating possibilities, since sometimes a customer name must be inserted somewhere, but the text stays the same.
- Reusability of text parts, since some parts might be skipped for some customer
- Revision control
- Easy review
- Easy to write for both developers and "mere mortals"
I proposed going with reST which would get converted to HTML and then, via PrinceXML, to PDF. Revisioning would be done in our SVN repository and we could thus re-use our existing Review Board installation, which is a nice bonus.
However, this system would not be very good for "normal" people since these are usually some interns who only know Word by name and can easily break styling (important for CI). Teaching them SVN is mostly out of question, reST might be as far as they get (cheat sheets will help a lot).
Sadly, the alternative is called Word and Sharepoint which is rather cumbersome for programmers and not very much reusable. Any form of CMS or Wiki feels a bit better than Word, but a question arises why to use Wiki when you can write same markup language in a simple text file.
So I want to adapt my proposed system to the needs of those mere mortals. This is what I've got so far:
- SVN repository is cloned via
git-svn
, and switched to a working branch - A Samba server gets set up, which is showing git's working directory, with
.git
directory hidden - An
inotify
script is set up, commiting every save to the working branch - A review request at Review Board gets updated daily/hourly from the working branch
- As soon as the documentation gets its "Ship it!", a manual script is run (by whomever) which would squash-merge the working branch to master and
dcommit
it. Old branch gets killed, new one opened, dito for review requests.
Now for the questions:
- One big deficiency I see is the rebasing problem, since that'd have to happen automatically. How would you solve that?
- Which other deficiencies do you see?
- Can you propose some other workflow? Maybe some other tools can manage this better? There is practically no limitation on installation complexity, but usage must be as simple as it gets and the result as powerful as it gets.