Local change search

When I use Google Docs, I often find myself wondering “What did this line of text say before it was changed?” But there is no easy way to answer that question.

Ideally I would like to point to any given word, phrase, sentence or paragraph, and quickly get a history of just that portion of the text. What was the sequence of changes that produced this particular sentence? When was it last changed? Who changed it?

It would very useful to have a “local change search” feature, which would give me that kind of local history of changes to a document. All the information needed to implement such a thing may very well already be contained in Google Doc’s Version history.

Alas, as an end user, you only have access to Version history for the entire document. There are no tools available to you to forensically examine selected portions of successive versions of that history.

I wonder how difficult it would be to implement local change search. I’m sure a lot of people would find it useful.

One thought on “Local change search”

  1. As I’m sure you know, many source control systems have a feature that determines the last “commit” that changed each line of the document. The feature is often snarkily called “blame,” because it’s often used to find out _who_ changed something.

    It seems that could be a building block for the search you describe: Use blame to find the most recent change to the line(s) of interest. Use blame again to find the penultimate change to that part of the document. Iterate back as far as you like. I don’t know offhand whether there’s a blame feature with an interface that offers enough control to focus the search like this, but it seems the machinery exists.

    A good interface could not only present the local history, but let the user explore the context of the changes, like what else changed at the same time.

    The biggest challenge, it seems, would be figuring out how to do this when the document and its revision history are locked away in a datacenter.

Leave a Reply

Your email address will not be published. Required fields are marked *