From ec2de7b9531093fee85921416ff42c9f1cd9c5e8 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 13 Jul 2016 13:32:56 +0100 Subject: [PATCH] Updated Design: Version Control (markdown) --- Design:-Version-Control.md | 60 ++++---------------------------------- 1 file changed, 5 insertions(+), 55 deletions(-) diff --git a/Design:-Version-Control.md b/Design:-Version-Control.md index 9d97de6..21b8c74 100644 --- a/Design:-Version-Control.md +++ b/Design:-Version-Control.md @@ -18,60 +18,10 @@ This raises some questions: Use cases include: -- a user creates a new version of the flows by simply clicking deploy - -``` - [v1] - ^ -Deploy new version: - [v1]-----[v2] - ^ -``` + - a user creates a new version of the flows by simply clicking deploy - a user can _optionally_ add a comment to the version - -``` - [v1]-----[v2:My New Flows] - ^ -``` - a user can see a history of versions - showing date/time + comment (aka `git log`) - -``` - [v1]-----[v2]-----[v3]-----[v4] - ^ -``` - - a user can revert to a previous version (aka, `git checkout `) - -``` - [v1]-----[v2]-----[v3]-----[v4] - ^ -Revert to v2 - [v1]-----[v2]-----[v3]-----[v4] - ^ -``` - - having reverted, a user can restore a future version (aka, `git checkout `) - -``` - [v1]-----[v2]-----[v3]-----[v4] - ^ -Revert to v4 - [v1]-----[v2]-----[v3]-----[v4] - ^ -``` - - - having reverted, by clicking deploy, the user can either chose to either erase the future versions, or add the new version at the end of the 'chain': - -``` - [v1]-----[v2]-----[v3]-----[v4] - ^ -Erase future: - [v1]-----[v2] - \------[v5] - ^ -Append: - [v1]-----[v2]-----[v3]-----[v4]-----[v5] - ^ -``` - + - a user can load a previous version into the editor, which, if then deployed becomes a new version ## API @@ -80,9 +30,9 @@ Whilst clearly influenced by git as a likely common backend, the version control The basic operations are: + - get a version - defaults to the most recent version, but a version id can also be specified - save a new version of flows/credentials with an optional description. This returns a version id. - - get the latest version - defaults to the most recent version, but a version id can also be specified - - get the version history - returns a list of id/timestamp/describtions - - revert to a given version + - get the version history - returns a list of id/user/timestamp/description +The API should also allow a 'user' identified to passed to each of these calls.