Slashdot Mirror


Document Management and Version Control?

Tom wonders: "I am working in a medium-sized software development company. The functional analysts use Microsoft Word to document the specifications, and Sharepoint to publish the documents. However we'd like to improve our process to have better revision control and traceability. We have looked at alternatives like using Wikis, or static HTML documents with CVS. The functional analysts want ease of use, while we developers would like to see high-quality end products, revision control (i.e. tagging & branching of the document base), and traceability features. What tools and document formats do you use and would recommend?"

34 of 326 comments (clear)

  1. The simple answer by Ckwop · · Score: 5, Informative

    Latex with CVS. This is what I use for my documents. It's simple (yes it is simple.. markup languages are not hard to understand) and with CVS it's far more feature complete than Word in version control.

    There's plenty of WYSIWYG tools for Latex. Let Google be your guide.

    Simon.

    1. Re:The simple answer by CRCulver · · Score: 5, Informative

      There's plenty of WYSIWYG tools for Latex.

      I'm always happy to see fellow TeX evangelists here. If you don't know about LaTeX yet, check out the TeX Frequently Asked Questions and discover the joys of a typesetting system that is not only high-quality, but free as in freedom and immensely extendable.

      LaTeX's markup makes so much sense that a WYSIWYG tool isn't necessary, for even the man on the street can be just a productive with doing it up in a text editor. A good and free as in beer guide to the system is The Not So Short Introduction to LaTeX2e , though if you are going to be markup up lots of math (LaTeX's specialty) you'll probably want Graetzer's Math Into LaTeX since LShort doesn't cover it so much.

    2. Re:The simple answer by Ithika · · Score: 4, Informative

      LaTex may be terminally cool for creating fancy-looking documents. But it doesn't solve any problems that this guy cares about. For his purposes, it's just another word processing format.

      Not true. The OP asks about version control and branching... and the best way to store something for version control is as plain text. Yes, modern version control software allows fairly sophisticated binary deltas (for example, I believe SVN has this capability) but there are still features that can't be done without text.

      For example, can your version control software tell you what text changed between two revisions of Word documents? It can if they're LaTeX documents.

    3. Re:The simple answer by flooey · · Score: 4, Informative

      LaTex may be terminally cool for creating fancy-looking documents. But it doesn't solve any problems that this guy cares about. For his purposes, it's just another word processing format.

      Actually, switching to LaTeX changes the scope of the problem from tracking changes to arbitrary files to tracking changes to text files. There are a lot more tools that are good for the latter problem than the former, so the available options get bigger. You're right that it doesn't suggest a good tool to go with, though.

    4. Re:The simple answer by CRCulver · · Score: 3, Informative

      This is totally false. All modern LaTeX installations allow one to typeset text in UTF-8. As a student of comparative Indo-European linguistics, I regularly typeset documents mixing the Greek, Cyrillic (including obscure OCS characters), and Latin scripts, as well as the International Phonetic Alphabet. I've also typeset some simple things in simplified Chinese.

    5. Re:The simple answer by CRCulver · · Score: 2, Informative
      I should add that it's usually a simple matter of adding
      \usepackage[utf8]{inputenc}
      to the document preamble. For hyphenation, you also need to do
      \usepackage[x,y...]{babel}
      where x where the arguments are whatever languages you want. Today I wrote a letter to a friend where my document preamble had
      \usepackage[polutonikogreek,danish,french,latin,ro manian,british]{babel}
      And you tell me LaTeX can't handle the languages of the world?
    6. Re:The simple answer by masklinn · · Score: 3, Informative

      Uh, no, latex embeds semantics into the document, then uses classes & packages to translate these semantics to visual displays.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    7. Re:The simple answer by VE3MTM · · Score: 2, Informative
      Quoting fm6:
      But LaTeX does not do any such thing. It embeds formatting info in the document.


      Only if the author sucks at writing LaTeX, and does things like this:

      {\Large This is a heading}\bigskip
      Here is some text. Here is some {\bf important} text.


      When they should be doing things like this:
      \section {This is a heading}
      Here is some text. Here is some \emph {important} text.


      A LaTeX document, used properly, does not have any styling information in the document -- that's the job of the document class, and possibly custom commands. Using formatting commands manually in LaTeX is no different than setting formatting (bold, italics, font size) manually in Word documents. You should be using styles to format things document-wide.

      Learn to use something effectively next time before you start bashing it.
      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 Whoops, silly middle mouse button...
    8. Re:The simple answer by fperez · · Score: 2, Informative

      To save the OP the googling: lyx and svn (you can include raw latex for the diehards, if you want).

      I've written many collaborative documents in this manner. One involved people across 2 continents, 7 institutions, Linux, OSX and MS Windows, a tight deadline, strict government formatting requirements, and noone with enough time to merge the whole thing.

      One simple makefile, and anyone could do at anytime

      svn update
      make pdf

      and check that the final PDF was in tiptop agreement with the NIH formatting guidelines, print it, review it, etc.

      The guy hitting the 'submit' button was pulling contributions up until a few hours before the actual deadline. Try that with MS Word...

  2. Subversion... by nweaver · · Score: 4, Informative

    Subversion is your friend...

    It handles binaries right (unlike CVS)

    It works over a variety of transport layers (HTTP/HTTPS/SSH) with some decent authentication models.

    It treast revisions as an archive-wide property.

    You can't check in an inconsistant state.

    It runs under *NIX, Mac, Windows, etc.

    Its free software.

    Try it. I switched a few months back from CVS and have been very happy.

    --
    Test your net with Netalyzr
    1. Re:Subversion... by BigCheese · · Score: 2, Informative

      If you're in Windows try TortiseSVN . It's a Explorer plugin and makes Subversion very easy to use.

      --
      The obscure we see eventually. The completely obvious, it seems, takes longer. - Edward R. Murrow
    2. Re:Subversion... by delirium28 · · Score: 2, Informative
      Check out:

      SmartSVN

      Back when I was looking at SVN clients, I found this one had the most promise. Of course, if you have users who know Windows Explorer (assuming your site is MS-based), then TortiseSVN is another good alternative.

      --
      Who is John Galt?
    3. Re:Subversion... by Tordek · · Score: 3, Informative

      Make them read this http://svnbook.red-bean.com/

      Wait, scratch that... FORCE them to read it...

      I've been using it (okay, I'm not in any Big Projects as we speak, but i've tried it), and it can be mostly simplified to svn update && svn commit for most of the time...

      --
      Tordek, Dwarven Warrior - Juegos de Rol en Argentina
    4. Re:Subversion... by dpaton.net · · Score: 4, Informative

      After several years of working with SourceSafe and it's truly braindead way of dealing with atomic commits and binary files (not to mention the massive data loss problems we had with it) my office switched to SVN for EVRYTHING. All employees use it for everything, from notes on ideas in Notepad or BBEdit or pico, to massive software projects with hundreds of files and over a million lines of code. Using TortiseSVN to put it into the windows desktop shell, it's nearly transparent, and it allows atomic commits to work intelligently, making the engineers who work with programs that have multiple files (hardware in myb case, a half dozen files for each PCB design, it works even better for revision control for the software guys), which has allowed us to recover a really insane amount of time we'd been handing over to M$SS for maintainance and babysitting. Additionally, the (automagically compressed) repository size for 11 hardware guys and 13 software guys with a year's worth of code and binaries (2M lines and hundreds of MBs, local, respectiively) is a paltry 180MB. That's with upwards of 20 commits on everyone's data every day. I admit, I sound like I drank the SVN kool-aid, and I'm OK with that. The next step is to install it at home and use it to back up /home, /documents and /music on my various and sundry computers (seperate server, weekly media swap, etc).

      I love it that much, and you can too!

      --
      This is not a sig. this is a duck. quack.
    5. Re:Subversion... by vyvepe · · Score: 2, Informative

      You can also export part of the repository (from a give revision up), import it to a clean one, and switch them.

  3. Question I ask my coworkers too by lymond01 · · Score: 2, Informative

    Someone replied: "Ever heard of Adobe Acrobat? That's what it's for." I'd like to say they missed the point of the question, which isn't just edits to a document. What I think the poster, and myself, are searching for is a web-based document server that tracks who's working on what, when. So if I decide I'm going to work on the Abstract of a paper, I go online, download it, and work on it. Let Word or whatever track my exact edits.

    When another user decides to edit it, they'll see that it's "checked out" and that they should work on something else, or contact me to continue with my edits. This avoids people working on the same document. Version control. It doesn't have to be complex to the end user, but I think the behind-the-scenes work for tracking uploads and downloads, different document piles, etc, would be extensive.

    1. Re:Question I ask my coworkers too by Anonymous Coward · · Score: 2, Informative

      SugarCRM's document feature does exactly that (web-based check-in/check-out). Plus, it's open source (yay) and does a bunch of other stuff, which you may or may not need (I believe you can just turn off other modules/functions that you don't need so that they don't bother you).

      http://www.sugarcrm.com/

    2. Re:Question I ask my coworkers too by Truman+Starr · · Score: 2, Informative
      Quite right - Submitter is not looking for a word processing tool, necessarily. Just something that allows you to fall back to an earlier revision if necessary, and maintain accountability for changes. Subversion is really rather robust in this respect. You can branch off toward infinite if you'd like.

      In a nutshell: You set up the central repository, and then everyone who might work on a file maps a directory to this trunk. Whenever you make a change to a document, you check that in to the central Subversion repository. It makes a note of who did what, and will update everyone else's copy of the document when they perform an update. In the event that two people change the same doc at the same time, it allows an outside agent (admin or the like) to see who added (or deleted) what, and accept changes accordingly. It is very handy for maintaining a productive work environment, especially with regard to coding, for example. Everyone can maintain a full copy of the code that is (hopefully) compile-able for testing, even if they are only responsible for a small functional subset.

      As a disclaimer, my use of Subversion is limited to an isolated network. It is entirely self-contained and inaccessible from outside, so we don't have to worry about security or any fancy remote-access modes. Also, it is only used for tracking changes in Python and C files and basic .doc files. I'm not sure how it handles more advanced file types.

  4. All-encompassing tools by masklinn · · Score: 3, Informative

    While I haven't managed to get them integrated into the workflow yet (working on it), I find tools such as Trac extremely interresting and full of potential: Trac integrates a wiki (for base documentation) with a bugtracker (bugzilla-like) and a Subversion repository while linking all of them together (you can use the SVN commit comments to link a commit to a bug, track them from the wiki, generate timelines, ...)

    And important document should never ever be stored in proprietary binary formats: you can't decrypt them yourself, can't change bugs, can't do anything.

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  5. Trac by XeusTsu · · Score: 3, Informative

    I myself like using trac which I believe is opensource and works off of a subversion tree. To my knowledge Subversion is meant to be a better solution then CVS for most items, and can be used on it's own.

    On the other hand, my company uses Subversion and TortoiseSVN as a shell extension, edit files locally and simply commit them to the subversion repository. You can do all the blame, branching/tagging you need, but our company is likely much smaller then yours. Something to look at I guess.

  6. Meta-answer by Jerf · · Score: 4, Informative

    I doubt I'll have much to add to the long list of people describing their experiences with various systems, but I'll pop out this meta-thought: Your developers and "functional analysts" probably have wildly varying needs, especially if the "functional analysts" use word-processing documents like Word. There's no crime in given each group of people a separate system.

    Your devs probably ought to get subversion because the continuing cost of using a sub-optimal source management system adds up to staggering amounts pretty fast. Your other writers probably aren't continuously branching and merging and doing all the other things subversion allows (if nothing else that's really confusing for most documents), so they can use a simpler, easier-to-use system that doesn't incur continuous costs due to confusion and documents getting mangled or destroyed due to incorrect use of the system.

    The right tool for the right job.

    (Note: I'm not saying you should use multiple systems; I'm just saying it's not a crime, if they solve different problems. If you can get your writers to use SVN, especially if they use something with a decent plaintext representation that stands a chance in Hell of merging, hey, great, more power to you.)

  7. Trac/Subversion + Knowledge Tree by Qbertino · · Score: 2, Informative

    Many have mentioned Trac/Subversion allready and I second that.
    For managing Documents I would use Knowledge Tree. The open source version is cool and the professional edition adds in all the stuff managers like.

    --
    We suffer more in our imagination than in reality. - Seneca
  8. Microsoft Word and Sharepoint by Karma+Farmer · · Score: 3, Informative

    Based on the requirements, you should be using Microsoft Word and Microsoft Sharepoint.

    If those don't fill your needs, then either you've failed to describe your requirements or you've failed to correctly set up the software.

  9. SVN + WebDAV + Autoversioning by HFShadow · · Score: 5, Informative

    http://svnbook.red-bean.com/nightly/en/svn.webdav. autoversioning.html

    From the SVN Handbook:
    "Because so many operating systems already have integrated WebDAV clients, the use case for this feature borders on fantastical: imagine an office of ordinary users running Microsoft Windows or Mac OS. Each user "mounts" the Subversion repository, which appears to be an ordinary network folder. They use the shared folder as they always do: open files, edit them, save them. Meanwhile, the server is automatically versioning everything. Any administrator (or knowledgeable user) can still use a Subversion client to search history and retrieve older versions of data."

    1. Re:SVN + WebDAV + Autoversioning by Anonymous Coward · · Score: 3, Informative

      We tried this setup with a Linux/Apache server and WinXP clients. A word of caution: Windows XP WebDAV implementation is horribly, horribly broken especially if you want to have any resemblance of security. Couple of days and several dozen google searches later we were able to patch something together, but it was definitely not pretty.

  10. Sharepoint has revisioning by MexicanMenace · · Score: 2, Informative

    The poster says they're using Sharepoint. It already has the capability to "check out" a file instead of just opening and saving it. Click the down-arrow next to the document name and select "check out". The document list will then update to show that you've got the document checked out. When you've edited and saved the document, do the same and select "check in".

    Doing this keeps previous versions of the document. If you just open, edit & save, then you're just updating the current version of the document.

  11. Re:Subversion...[*Does* Call Binary Diff Tools] by malloc · · Score: 5, Informative

    Of course, Subversion is no more your friend than CVS in this case since neither can do proper diffs! It's binary data for f*ck sake! Subversion handles binaries better than CVS, but not for the reason you state.

    Actually, GUI Subversion clients like TortoiseSVN can show diffs for binary files like Word or OpenOffice, using the built-in diff capability of these programs. The end result is you can double-click your binary document and get a window showing you the differences.

    The latest nightly TortoiseSVN builds even include an image diff viewer.

    -Malloc
    --
    ___________________ I want to be free()!
  12. Confluence fits your requirements by puppetluva · · Score: 2, Informative
    We chose Confluence at my firm ( http://www.atlassian.com/ ). They are the same people who write Jira (the project management system on a bunch of open-source sites). It handled all of our requirements (very similar to yours) and it works really, really well. I don't work for the company, but I feel good talking-up people who make good products. My favorite features:
    • WYSIWYG editor built in with an option to do wiki-markup if you want.
    • Full versioning of the docs and attachments
    • Full searchable indexing of both docs and attachments (even word, powerpoint, excel, and pdfs)
    • Customizable navigation and templating
    • Easily customizable permissions
    • It works great with open-source databases (postgres in our case) and pay ones and its searching is very powerful
    • You can be set-up and running in about 30 minutes
    My favorite feature is that we don't have to mess with it at all. We set it up and both non-developers and developers get along with it well. I would chose it over Sharepoint or Notes in a heartbeat (both of which I used before and thought were a mess).
  13. Lucidoc by Xofer+D · · Score: 2, Informative

    It sounds like you want something like Lucidoc. It integrates with Word and even IE, and does what you seem to want, I believe. It's pretty seamless, and used in health care document systems. Have a look at it and see if it does what you want; it sure would be easier than convincing MS Word users to use cvs or svn. Disclaimer: I am neither a vendor nor a user of this stuff, but I know one of the developers.

    --
    The Signal/Noise ratio can be improved in two ways. Remaining silent is the OTHER way.
  14. Telelogic's Doors by bheilig · · Score: 2, Informative

    We use Telelogic's Doors It's good for large projects with multiple systems. It supports requirements tracability and revision history to the object (typically a paragraph). After you're done you can export it to MS Word and you can customize this process using a scripting language and Word templates. I work for a government contractor and the systems we develop include hardware and software efforts on multiple independent processors. It might be overkill for what you need.

    Brian

  15. Go for Alienbrain by codesurgeon · · Score: 2, Informative

    Having individuals on the team without a development background and/or the need for a decent UI and all the features you could ask for in a version control system, I'd urge you to get your hands on Alienbrain. It is stable, easily accessible for non-techies, industry-proven and still the market-leader in game dev. You could of course look into UIs for subversion etc. but I guess something along the lines of Alienbrain would be most feasible in your case. And for the rest set up a wiki.

  16. Word has this built in by boatboy · · Score: 4, Informative

    Alot of people don't realize it, but there is document versioning built into Word. If it's turned on, it will track changes, etc. by user. There is also pretty rich editing capabilities. Reviewers can mark up the doc with comments, etc... Adding sharepoint lets you distribute that process pretty well. Get an in-depth Word book and figure out how to do it in sharepoint/word.

    1. Re:Word has this built in by glesga_kiss · · Score: 3, Informative
      While the in-built "track changes" is useful, it's not version control. You can't go back to the document as it was on Jan 1st 2006. Part of the reason for version control is to safeguard against corruption. "Track changes" doesn't do this.

      I use the comments stuff heavilly myself though, very useful to mark and annotate work-in-progress.