nextcloud / text

📑 Collaborative document editing using Markdown
GNU Affero General Public License v3.0
551 stars 90 forks source link

Improved version history & view changes since last visit #4720

Open juliusknorr opened 1 year ago

juliusknorr commented 1 year ago
jancborchardt commented 1 year ago

@juliushaertl for the mockups it would be helpful to know what can get extracted. I assume it would be something like "Julius changed section 2. Heading etc etc" or "Nimisha added Filename.png in sectionname"?

@nextcloud/designers who is interested in looking into this? It would be 2 parts as Julius mentions above:

juliusknorr commented 1 year ago

The technical options what we can extract may depend on the document type, let me try to summarize what we already know:

Markdown

So some example I could imagine would be

Office

To be clarified, but I imagine we could get a similar structure there

nimishavijay commented 1 year ago

I can pick this up. Questions from my side:

For reference here is how Notion does it, very detailed

and Gdocs

juliusknorr commented 1 year ago

how often are the versions saved?

On every save of the file, but they are cleaned up afterwards, unless you give them a name to make them persistent:

The versioning app expires old versions automatically to make sure that the user doesn’t run out of space. This pattern is used to delete old versions:

For the first second we keep one version
For the first 10 seconds Nextcloud keeps one version every 2 seconds
For the first minute Nextcloud keeps one version every 10 seconds
For the first hour Nextcloud keeps one version every minute
For the first 24 hours Nextcloud keeps one version every hour
For the first 30 days Nextcloud keeps one version every day
After the first 30 days Nextcloud keeps one version every week

how this is reflected for collaborative editing (Julius and Jan updated a list in "Activities and schedule", Jan added a paragraph in "How to find the office", and Marco removed a table in "Things to remember" would be possible? or Julius, Jan and Marco changed "Activities and schedule", "How to find the office", and "Things to remember")

It does not at all. Currently versions only have one author (the person that saved the file). What might be feasible is to at least list multiple users as the author, but tracking back who did what is out of range for now.

We also talked about this briefly in the planning meeting that this is rather out of scope and we just focus on the changes for now.

Will the changes be reflected in the "Compare to current version" side by side view as well?

I think that would be a separate topic on how to bring inline change indication to the side by side view, for now I'd limit the scope to just the diff in the versions.

juliusknorr commented 1 year ago

Just to have it mentioned, there has been the idea to experiment with AI to summarize the changes, but first attempts didn't bring any valuable results, so while out of scope the structured changes can be a baseline for any future AI work as well.

max-nextcloud commented 1 year ago

Just discussed this briefly with @juliushaertl during our one on one. It might be a good starting point to look at actual changes in say the company handbook to get an idea of what we might want to display.

I'm still not clear what we are aiming for. A diff of html files is quite well defined. You can generate one here: https://php-htmldiff.caxy.com/

But if we want to provide context and leave out unchanged parts etc it becomes kind of vague for me.

So I propose to start from one or two actual document changes and try and come up with what a good presentation of those changes would look like.

It can be hard to contextualize based on headings because people just use them for all kinds of stuff and in arbitrary order. So if we want to use headings for context we also need to figure out what to do with that.

Real world use of headings ### Monday Today I went to the movies # :scream: That was sooo scary! What's the context of this sentence now? ### Tuesday Not sure what I'll do today.
nimishavijay commented 1 year ago

What it can look like:

In the sidebar:

Editor: image

What do you think? :)