27
jshom
7y

Version Control for Writing

Project Type
Project idea
Summary

Version Control for Writing

Description
We have git and mercurial for code version control and would love to be able to use the same concepts for writing essays, plays or anything for natural language. This should probably have a web ui that clearly shows branching, commits and diffs.
Tech Stack
Up for debate
Comments
  • 2
    Notepad.cc
  • 4
    Lets get subtractive... what do you think would make this VCS different from current tech (I'm thinking GIT is probably most apropos, but maybe not). I think if we diff this problem we'll have our list of features to implement, or at least a start.
  • 4
    @agaskins good idea. VCS work on a line by line basis whereas this will be on a sentence by sentence basis. I’m thinking if we start of my writing an abstraction above git by converting sentences into lines. This would allow us to see changes in sentences and not reinvent the wheel for all possible vcs techniques. Then from there, being able to show a git log for a writing piece would be the mvp. What do you think?
  • 4
    That's a great idea! Seriously, I hadn't even thought that far in to it, but yeah sentence-to-line conversion, with new line being an end of a paragraph makes sense and would be very easy to implement. Well... easy for straight forward writing. I'm trying to foresee if there's any issues here with certain sorts of prose, and maybe some with script writing (e.g. screen plays, not code). But I think the abstraction layer to VCS idea can likely handle any of those. Would the writing be just plain text, or would markup be involved? Scripts have some very specific syntax and such that are used, not sure if that even matters. How far do we take this? Purist VCS or something more feature rich?
  • 1
    I mean, the sentence-to-line abstraction for something like git almost does the job right there. So if it's a pure VCS I'm not sure what else it needs, aside from some more appropriate formatting of reports, logs and various verbiage changes.
  • 3
    @agaskins interesting idea with markdown or formatted text. I'll have to sleep in the idea but the only difference then would be displaying the text with bold, h1 ... Odds are there is a markdown parser anyway so that shouldn't be a problem. Once we have the underlying tech, which now honestly seems pretty easy to implement, then we should build a Github/Bitbucket type implementation of it which would be feature rich. I doubt the pure VCS will add much value as writers are typically not technical.
  • 0
    @jshom I think it's all in the marketing. Like you said, a site like bb or github... done right and with enough to offer I could see it taking off. I've often wanted to be able compare things I've rewritten with their previous incarnations, so much so that I've been known to copy and undo a million steps to see if it was actually better now, lol. I think writers could get on board with it.
  • 0
    not to mention the inherent backup feature that comes with using an online vcs. That's a no-brainer for a writer. They already eat up tools like google docs.
  • 2
    I like the idea of collaborative writing too. I'll have to wait until tomorrow to brainstorm on that one though. I need to finish up and get off here for the night, haha. Good idea you have here, though! Keep it going @jshom and I think you'll have something!
  • 3
    Google
    Docs
    Has
    Version
    Control
  • 2
    @calmyourtities
    But
    It's
    As
    Basic
    As
    Possible.

    :P

    No real stats, logs, feedback, etc. You can't, for example, just compare a section with it's earlier versions. Well, I haven't used it in a long time, so maybe I'm just behind on GDocs features.
  • 5
    latex with 1 line per sentence + git
  • 0
    @calmyourtities yes, but it's a consumer tool. You cannot control when to "commit" your changes or describe them, neverless branch out from a core branch and test out an idea. It exists, but it doesn't do the job well enough.
  • 3
    as @notarealDev said: LaTeX + Git.
    I wrot a few lab reports like this with 2 people. It works, if the others would do their job...
  • 1
    Google docs has built in version control 🤔
  • 1
    I had an idea awhile that I won't have time to do. For the long foreseeable future.

    Version Control System for Audio. Specifically Music Producers.

    I think there is some money to be made there.
  • 0
    @Dacexi right, but it is not at the professional grade level. I've been using GDocs for a long time, here are the critical things that you cannot do with GDocs.
    1. Controlled Versions (you don't know when it saves the version)
    2. Branching (you can create a new doc but merging it then left for you to do)
    3. Sharing versions (You can't choose a specific version/commit to share or see what you changed clearly)

    In general, GDocs was meant for collaboration with versioning as an afterthought. This project will be with versioning as it's core objective making writing English or any language similar to writing code.
  • 0
    @khalildh that would be awesome! I haven't made music but I know that you use samples at certain levels (instruments); that would be super fun to do. Image a diff playback :)
  • 2
    Markdown + git? For me is the easiest way
  • 0
    I use Authorea when I want that kind of vc
  • 0
    What's wrong with git ? If you mean the diffs should be more contextual rather than a simple equality match, only then is there a need for a newer version control system.
  • 0
    Maybe version control for designers will be more useful?
  • 0
    That's pretty much what GitBook is
  • 0
    @jshom kinda ties into some of my ideas i had about text analysis... wouldn't it be more interesting to make it based on syntactic sentence analysis? make a syntax graph and track changes off that?
  • 1
    I think this is a great idea, but it's also important to move away from the concept of git and version control, and just focus on tracking changes over time.

    I do agree it's useful to have different versions of what you write, but limited to specific parts of your writing.

    For example in a novel a writer can orginze thier text into scenes, and each of those scenes could be branched out from. Then they could easily switch between scene versions in the editor as they read/write. That way they can see how a specific version looks with the other surrounding scenes.

    Also for the web side of things I'd recommend checking out https://quilljs.com/

    QuillJS is a rich text editor that has a really cool concept of describing its contents with JSON objects called "deltas". Which support things like atributes, join/merge operations, and easy HTML rendering.

    Overall I think it's a great idea, and be happy to contribute.
Add Comment