ARK-Builders / ARK-Builders/Memo

Version tracking

Open
#11 3 comments 0 reactions 2 assignees Claimed by @tuancoltech View on GitHub
feature
Dominant language
Kotlin
Stars
7
Forks
3
PR merge metrics
No merged PRs in 30d

Description

When we modify a note, its `ResourceId` changes as well. This is expected since we use content-addressing. In order to provide proper UX, we need to track versions of the same note and present them to user as a single note. We also need UI elements to present older versions to user ("timeback machine"). User should be able to view or remove unwanted versions. Forking older versions into another note is [separate feature](https://github.com/ARK-Builders/ARK-Memo/issues/10).

Version storage must be stored in `.ark/versions` file and should look approximately like this:
```
3155416 -> 7705444
5839051 -> 8921986
9279849 -> 1558729
3155416 -> 9763586
2128401 -> 19145158
```
Each entry of the file is a pair of `ResourceId`s, left _id_ is _parent_ and right _id_ is _child_.

This feature needs a button to invoke list of versions, or "timeback machine", for any note. Each version must have a button to see its content (read-only mode), to remove it and to [fork it (separate issue)](https://github.com/ARK-Builders/ARK-Memo/issues/10).

When we remove a version, we must keep the history unbroken.
Suppose, we have entries like this in storage:
```
3155416 -> 7705444
7705444 -> 8921986
```
If we want to remove `7705444` version, then we must replace these 2 entries with new entry:
```
3155416 -> 8921986
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.