The thing about git, as well as all version control systems I have known so far which store diffs, is that computing the diff means post-analyzing a saved file. That is, you use any editor you like, and after making a whole batch of changes you manually commit to the repository, and the diff algorithm figures out what you changed. Some information is already lost about what order you made the changes and what the logical chunks actually were. But what if there was an editor that could save each individual change as a separate version? You put the cursor at one point in the file, and type some text; then you click elsewhere, and the editor does a "git commit this-file" automatically. Then you select some other text and delete it, and it does a commit again. It would be nice in that case to avoid doing the diff at all, because the editor already knows exactly what the change was. Would it be possible to store these fine-grained changes directly in a packfile, efficiently? Or would it require a different storage format? I know the diff algorithm used is already much smarter than a line-by-line diff, but is the storage format capable of representing changes over ranges of characters without "extra context" like the line-by-line diffs usually have? -- View this message in context: http://git.661346.n2.nabble.com/storing-pre-computed-fine-grained-diffs-tp7353466p7353466.html Sent from the git mailing list archive at Nabble.com. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html