Fossil SCM
Merged dhr's todo and ideas update
Commit
b8cc22ebdf58e37c0ec0fa6ca72bdd77f83d5840
Parent
aeb2ac781d8ee71…
3 files changed
-91
+1
-10
+1
-10
-91
| --- ideas.txt | ||
| +++ ideas.txt | ||
| @@ -48,111 +48,20 @@ | ||
| 48 | 48 | mode: (readonly|appendonly|readwrite) |
| 49 | 49 | attachment: UUID name description |
| 50 | 50 | |
| 51 | 51 | * Header ends with a blank line. wiki content follows. |
| 52 | 52 | |
| 53 | -Cluster format: | |
| 54 | - | |
| 55 | - M+ uuid | |
| 56 | - Z manifest-cksum | |
| 57 | - | |
| 58 | - * Cluster generated in server mode only. | |
| 59 | - * Embargo cluster that reference phantoms or other embargoed clusters. | |
| 60 | - * Never send or ihave an embargoed cluster | |
| 61 | - | |
| 62 | -New sync algorithm based on clusters: | |
| 63 | - | |
| 64 | - * Keep a table of unclustered artifacts. Strive to keep this table | |
| 65 | - less than 100 entries. | |
| 66 | - * Client sends content of unclustered table as ihaves to server | |
| 67 | - * Server builds a new cluster if size of cluster table >100. | |
| 68 | - * Server sends unclustered table to client | |
| 69 | - * Server sends gimme for all unknown ihave received from client | |
| 70 | - * Client sends gimme for all unknown ihave received from server | |
| 71 | - * Previous two steps repeat until no more gimmes | |
| 72 | - | |
| 73 | -Details of new push algorithm: | |
| 74 | - | |
| 75 | - * Table "unsent" contains all files never pushed | |
| 76 | - * TEMP table "wanted" contains files the server does not have | |
| 77 | - Loop: | |
| 78 | - * Client sends login and "push" record | |
| 79 | - * Client sends file message for all files in unsent and removes | |
| 80 | - those files from the table. | |
| 81 | - * Client sends file message for all files in wanted. | |
| 82 | - * Client sends ihave messages for each entry in unclustered | |
| 83 | - ------ | |
| 84 | - * Server receives file message | |
| 85 | - * Server creates phantoms for unknown ihaves | |
| 86 | - * Server sends gimme messages for all phantoms | |
| 87 | - ------ | |
| 88 | - * Client clears its unsent table | |
| 89 | - * For each gimme message add an entry to wanted | |
| 90 | - * Halt if the wanted table is empty | |
| 91 | - | |
| 92 | -Details on new pull algorithm: | |
| 93 | - | |
| 94 | - Loop: | |
| 95 | - * Client sends login and "pull" record | |
| 96 | - * Client sends "prior" message with repository id and max record number | |
| 97 | - * Client sends "gimme" for each phantom | |
| 98 | - -------- | |
| 99 | - * Server creates new clusters to get unclustered size below 100 | |
| 100 | - * If there is "prior" message with repository id that matches this | |
| 101 | - server, then send file messages for all record ids greater than | |
| 102 | - prior | |
| 103 | - * Server sends ihave messages for each entry in unclustered | |
| 104 | - * Server sends maxrid message | |
| 105 | - -------- | |
| 106 | - * Client receives file records | |
| 107 | - * Client creates phantoms for unknown ihaves | |
| 108 | - * If no phantoms exist, record maxrid for the server and halt | |
| 109 | - | |
| 110 | 53 | Need a dephantomize algorithm |
| 111 | 54 | |
| 112 | 55 | |
| 113 | -Auxiliary tables needed for new sync algorithm: | |
| 114 | - | |
| 115 | - * unsent: files that have never been sent to another repository | |
| 116 | - * unclustered: non-phantom files not mentioned by a cluster | |
| 117 | - | |
| 118 | 56 | Random thoughts: |
| 119 | 57 | |
| 120 | - * Changes to manifest to support: | |
| 121 | - + Trees of wiki pages and tickets | |
| 122 | - + The ability to cap or close a branch | |
| 123 | - + See "Extended Manifests" below | |
| 124 | - | |
| 125 | - * Add the concept of "clusters" to speed the transfer of "tips" | |
| 126 | - on a sync. | |
| 127 | - | |
| 128 | - * Auxiliary tables: | |
| 129 | - + tip | |
| 130 | - + phantom | |
| 131 | - + mlink | |
| 132 | - + plink | |
| 133 | - + branch | |
| 134 | - + tree | |
| 135 | - | |
| 136 | 58 | * Plink.isprim changed to record: |
| 137 | 59 | + child is the principal descendent of parent. (1) |
| 138 | 60 | + child is a branch from parent (2) |
| 139 | 61 | + child uses parent as a merge (0) |
| 140 | 62 | |
| 141 | - * tree records | |
| 142 | - + type (code, wiki, ticket) | |
| 143 | - + name (for wiki and ticket only) | |
| 144 | - + treeid | |
| 145 | - | |
| 146 | - * branch records | |
| 147 | - + treeid | |
| 148 | - + origin_rid | |
| 149 | - + origin_time | |
| 150 | - + tip_rid | |
| 151 | - + tip_time | |
| 152 | - + color | |
| 153 | - | |
| 154 | 63 | * website can toggle isprim between principal and branch. |
| 155 | 64 | + How to preserve across rebuild. A new record type? |
| 156 | 65 | + How to share with other repositories |
| 157 | 66 | * isprim guessed using userid of parent and child. Change |
| 158 | 67 | in id suggests a branch. Same id suggests principal. |
| 159 | 68 |
| --- ideas.txt | |
| +++ ideas.txt | |
| @@ -48,111 +48,20 @@ | |
| 48 | mode: (readonly|appendonly|readwrite) |
| 49 | attachment: UUID name description |
| 50 | |
| 51 | * Header ends with a blank line. wiki content follows. |
| 52 | |
| 53 | Cluster format: |
| 54 | |
| 55 | M+ uuid |
| 56 | Z manifest-cksum |
| 57 | |
| 58 | * Cluster generated in server mode only. |
| 59 | * Embargo cluster that reference phantoms or other embargoed clusters. |
| 60 | * Never send or ihave an embargoed cluster |
| 61 | |
| 62 | New sync algorithm based on clusters: |
| 63 | |
| 64 | * Keep a table of unclustered artifacts. Strive to keep this table |
| 65 | less than 100 entries. |
| 66 | * Client sends content of unclustered table as ihaves to server |
| 67 | * Server builds a new cluster if size of cluster table >100. |
| 68 | * Server sends unclustered table to client |
| 69 | * Server sends gimme for all unknown ihave received from client |
| 70 | * Client sends gimme for all unknown ihave received from server |
| 71 | * Previous two steps repeat until no more gimmes |
| 72 | |
| 73 | Details of new push algorithm: |
| 74 | |
| 75 | * Table "unsent" contains all files never pushed |
| 76 | * TEMP table "wanted" contains files the server does not have |
| 77 | Loop: |
| 78 | * Client sends login and "push" record |
| 79 | * Client sends file message for all files in unsent and removes |
| 80 | those files from the table. |
| 81 | * Client sends file message for all files in wanted. |
| 82 | * Client sends ihave messages for each entry in unclustered |
| 83 | ------ |
| 84 | * Server receives file message |
| 85 | * Server creates phantoms for unknown ihaves |
| 86 | * Server sends gimme messages for all phantoms |
| 87 | ------ |
| 88 | * Client clears its unsent table |
| 89 | * For each gimme message add an entry to wanted |
| 90 | * Halt if the wanted table is empty |
| 91 | |
| 92 | Details on new pull algorithm: |
| 93 | |
| 94 | Loop: |
| 95 | * Client sends login and "pull" record |
| 96 | * Client sends "prior" message with repository id and max record number |
| 97 | * Client sends "gimme" for each phantom |
| 98 | -------- |
| 99 | * Server creates new clusters to get unclustered size below 100 |
| 100 | * If there is "prior" message with repository id that matches this |
| 101 | server, then send file messages for all record ids greater than |
| 102 | prior |
| 103 | * Server sends ihave messages for each entry in unclustered |
| 104 | * Server sends maxrid message |
| 105 | -------- |
| 106 | * Client receives file records |
| 107 | * Client creates phantoms for unknown ihaves |
| 108 | * If no phantoms exist, record maxrid for the server and halt |
| 109 | |
| 110 | Need a dephantomize algorithm |
| 111 | |
| 112 | |
| 113 | Auxiliary tables needed for new sync algorithm: |
| 114 | |
| 115 | * unsent: files that have never been sent to another repository |
| 116 | * unclustered: non-phantom files not mentioned by a cluster |
| 117 | |
| 118 | Random thoughts: |
| 119 | |
| 120 | * Changes to manifest to support: |
| 121 | + Trees of wiki pages and tickets |
| 122 | + The ability to cap or close a branch |
| 123 | + See "Extended Manifests" below |
| 124 | |
| 125 | * Add the concept of "clusters" to speed the transfer of "tips" |
| 126 | on a sync. |
| 127 | |
| 128 | * Auxiliary tables: |
| 129 | + tip |
| 130 | + phantom |
| 131 | + mlink |
| 132 | + plink |
| 133 | + branch |
| 134 | + tree |
| 135 | |
| 136 | * Plink.isprim changed to record: |
| 137 | + child is the principal descendent of parent. (1) |
| 138 | + child is a branch from parent (2) |
| 139 | + child uses parent as a merge (0) |
| 140 | |
| 141 | * tree records |
| 142 | + type (code, wiki, ticket) |
| 143 | + name (for wiki and ticket only) |
| 144 | + treeid |
| 145 | |
| 146 | * branch records |
| 147 | + treeid |
| 148 | + origin_rid |
| 149 | + origin_time |
| 150 | + tip_rid |
| 151 | + tip_time |
| 152 | + color |
| 153 | |
| 154 | * website can toggle isprim between principal and branch. |
| 155 | + How to preserve across rebuild. A new record type? |
| 156 | + How to share with other repositories |
| 157 | * isprim guessed using userid of parent and child. Change |
| 158 | in id suggests a branch. Same id suggests principal. |
| 159 |
| --- ideas.txt | |
| +++ ideas.txt | |
| @@ -48,111 +48,20 @@ | |
| 48 | mode: (readonly|appendonly|readwrite) |
| 49 | attachment: UUID name description |
| 50 | |
| 51 | * Header ends with a blank line. wiki content follows. |
| 52 | |
| 53 | Need a dephantomize algorithm |
| 54 | |
| 55 | |
| 56 | Random thoughts: |
| 57 | |
| 58 | * Plink.isprim changed to record: |
| 59 | + child is the principal descendent of parent. (1) |
| 60 | + child is a branch from parent (2) |
| 61 | + child uses parent as a merge (0) |
| 62 | |
| 63 | * website can toggle isprim between principal and branch. |
| 64 | + How to preserve across rebuild. A new record type? |
| 65 | + How to share with other repositories |
| 66 | * isprim guessed using userid of parent and child. Change |
| 67 | in id suggests a branch. Same id suggests principal. |
| 68 |
M
todo.txt
+1
-10
| --- todo.txt | ||
| +++ todo.txt | ||
| @@ -18,12 +18,10 @@ | ||
| 18 | 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | 21 | out what is going wrong. |
| 22 | 22 | |
| 23 | - * Bug: pull is ending prematurely. | |
| 24 | - | |
| 25 | 23 | * Bug: Make sure merge and other commands (check-out) do not try |
| 26 | 24 | to use a phantom. |
| 27 | 25 | |
| 28 | 26 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 29 | 27 | |
| @@ -44,11 +42,11 @@ | ||
| 44 | 42 | |
| 45 | 43 | * The ipaddr field of the rcvfrom table is not being set. This |
| 46 | 44 | field should be the IP address from which information is received |
| 47 | 45 | for the local repository. So when somebody does a push of new |
| 48 | 46 | files we record the ipaddr. Or when we do a pull, we record |
| 49 | - the ipaddr. | |
| 47 | + the ipaddr. (I think this has been fixed. Need to test.) | |
| 50 | 48 | |
| 51 | 49 | * Additional information displayed for the "vinfo" page: |
| 52 | 50 | |
| 53 | 51 | + All leaves of this version that are not included in the |
| 54 | 52 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | ||
| 55 | 53 | Leaves in the descendant table should be marked as such. |
| 56 | 54 | See the compute_leaves() function to see how to find all |
| 57 | 55 | leaves. |
| 58 | 56 | + Add file diff links to the file change list. |
| 59 | 57 | |
| 60 | - * Timeline enhanced so that you can specify a range of dates. | |
| 61 | - | |
| 62 | - * The /xfer handler (for push, pull, and clone) does not do | |
| 63 | - delta compression. This results in excess bandwidth usage. | |
| 64 | - There are some pieces in xfer.c that are sketches of ideas on | |
| 65 | - how to do delta compression, but nothing has been implemented. | |
| 66 | - | |
| 67 | 58 | * Enhancements to the diff and tkdiff commands in the cli. |
| 68 | 59 | Allow the entire tree or a subtree to be diffed, not just a |
| 69 | 60 | single file. Allow diffs against any two arbitrary versions, |
| 70 | 61 | not just diffs against the current check-out. |
| 71 | 62 | |
| 72 | 63 |
| --- todo.txt | |
| +++ todo.txt | |
| @@ -18,12 +18,10 @@ | |
| 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | out what is going wrong. |
| 22 | |
| 23 | * Bug: pull is ending prematurely. |
| 24 | |
| 25 | * Bug: Make sure merge and other commands (check-out) do not try |
| 26 | to use a phantom. |
| 27 | |
| 28 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 29 | |
| @@ -44,11 +42,11 @@ | |
| 44 | |
| 45 | * The ipaddr field of the rcvfrom table is not being set. This |
| 46 | field should be the IP address from which information is received |
| 47 | for the local repository. So when somebody does a push of new |
| 48 | files we record the ipaddr. Or when we do a pull, we record |
| 49 | the ipaddr. |
| 50 | |
| 51 | * Additional information displayed for the "vinfo" page: |
| 52 | |
| 53 | + All leaves of this version that are not included in the |
| 54 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | |
| 55 | Leaves in the descendant table should be marked as such. |
| 56 | See the compute_leaves() function to see how to find all |
| 57 | leaves. |
| 58 | + Add file diff links to the file change list. |
| 59 | |
| 60 | * Timeline enhanced so that you can specify a range of dates. |
| 61 | |
| 62 | * The /xfer handler (for push, pull, and clone) does not do |
| 63 | delta compression. This results in excess bandwidth usage. |
| 64 | There are some pieces in xfer.c that are sketches of ideas on |
| 65 | how to do delta compression, but nothing has been implemented. |
| 66 | |
| 67 | * Enhancements to the diff and tkdiff commands in the cli. |
| 68 | Allow the entire tree or a subtree to be diffed, not just a |
| 69 | single file. Allow diffs against any two arbitrary versions, |
| 70 | not just diffs against the current check-out. |
| 71 | |
| 72 |
| --- todo.txt | |
| +++ todo.txt | |
| @@ -18,12 +18,10 @@ | |
| 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | out what is going wrong. |
| 22 | |
| 23 | * Bug: Make sure merge and other commands (check-out) do not try |
| 24 | to use a phantom. |
| 25 | |
| 26 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 27 | |
| @@ -44,11 +42,11 @@ | |
| 42 | |
| 43 | * The ipaddr field of the rcvfrom table is not being set. This |
| 44 | field should be the IP address from which information is received |
| 45 | for the local repository. So when somebody does a push of new |
| 46 | files we record the ipaddr. Or when we do a pull, we record |
| 47 | the ipaddr. (I think this has been fixed. Need to test.) |
| 48 | |
| 49 | * Additional information displayed for the "vinfo" page: |
| 50 | |
| 51 | + All leaves of this version that are not included in the |
| 52 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | |
| 53 | Leaves in the descendant table should be marked as such. |
| 54 | See the compute_leaves() function to see how to find all |
| 55 | leaves. |
| 56 | + Add file diff links to the file change list. |
| 57 | |
| 58 | * Enhancements to the diff and tkdiff commands in the cli. |
| 59 | Allow the entire tree or a subtree to be diffed, not just a |
| 60 | single file. Allow diffs against any two arbitrary versions, |
| 61 | not just diffs against the current check-out. |
| 62 | |
| 63 |
M
todo.txt
+1
-10
| --- todo.txt | ||
| +++ todo.txt | ||
| @@ -18,12 +18,10 @@ | ||
| 18 | 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | 21 | out what is going wrong. |
| 22 | 22 | |
| 23 | - * Bug: pull is ending prematurely. | |
| 24 | - | |
| 25 | 23 | * Bug: Make sure merge and other commands (check-out) do not try |
| 26 | 24 | to use a phantom. |
| 27 | 25 | |
| 28 | 26 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 29 | 27 | |
| @@ -44,11 +42,11 @@ | ||
| 44 | 42 | |
| 45 | 43 | * The ipaddr field of the rcvfrom table is not being set. This |
| 46 | 44 | field should be the IP address from which information is received |
| 47 | 45 | for the local repository. So when somebody does a push of new |
| 48 | 46 | files we record the ipaddr. Or when we do a pull, we record |
| 49 | - the ipaddr. | |
| 47 | + the ipaddr. (I think this has been fixed. Need to test.) | |
| 50 | 48 | |
| 51 | 49 | * Additional information displayed for the "vinfo" page: |
| 52 | 50 | |
| 53 | 51 | + All leaves of this version that are not included in the |
| 54 | 52 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | ||
| 55 | 53 | Leaves in the descendant table should be marked as such. |
| 56 | 54 | See the compute_leaves() function to see how to find all |
| 57 | 55 | leaves. |
| 58 | 56 | + Add file diff links to the file change list. |
| 59 | 57 | |
| 60 | - * Timeline enhanced so that you can specify a range of dates. | |
| 61 | - | |
| 62 | - * The /xfer handler (for push, pull, and clone) does not do | |
| 63 | - delta compression. This results in excess bandwidth usage. | |
| 64 | - There are some pieces in xfer.c that are sketches of ideas on | |
| 65 | - how to do delta compression, but nothing has been implemented. | |
| 66 | - | |
| 67 | 58 | * Enhancements to the diff and tkdiff commands in the cli. |
| 68 | 59 | Allow the entire tree or a subtree to be diffed, not just a |
| 69 | 60 | single file. Allow diffs against any two arbitrary versions, |
| 70 | 61 | not just diffs against the current check-out. |
| 71 | 62 | |
| 72 | 63 |
| --- todo.txt | |
| +++ todo.txt | |
| @@ -18,12 +18,10 @@ | |
| 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | out what is going wrong. |
| 22 | |
| 23 | * Bug: pull is ending prematurely. |
| 24 | |
| 25 | * Bug: Make sure merge and other commands (check-out) do not try |
| 26 | to use a phantom. |
| 27 | |
| 28 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 29 | |
| @@ -44,11 +42,11 @@ | |
| 44 | |
| 45 | * The ipaddr field of the rcvfrom table is not being set. This |
| 46 | field should be the IP address from which information is received |
| 47 | for the local repository. So when somebody does a push of new |
| 48 | files we record the ipaddr. Or when we do a pull, we record |
| 49 | the ipaddr. |
| 50 | |
| 51 | * Additional information displayed for the "vinfo" page: |
| 52 | |
| 53 | + All leaves of this version that are not included in the |
| 54 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | |
| 55 | Leaves in the descendant table should be marked as such. |
| 56 | See the compute_leaves() function to see how to find all |
| 57 | leaves. |
| 58 | + Add file diff links to the file change list. |
| 59 | |
| 60 | * Timeline enhanced so that you can specify a range of dates. |
| 61 | |
| 62 | * The /xfer handler (for push, pull, and clone) does not do |
| 63 | delta compression. This results in excess bandwidth usage. |
| 64 | There are some pieces in xfer.c that are sketches of ideas on |
| 65 | how to do delta compression, but nothing has been implemented. |
| 66 | |
| 67 | * Enhancements to the diff and tkdiff commands in the cli. |
| 68 | Allow the entire tree or a subtree to be diffed, not just a |
| 69 | single file. Allow diffs against any two arbitrary versions, |
| 70 | not just diffs against the current check-out. |
| 71 | |
| 72 |
| --- todo.txt | |
| +++ todo.txt | |
| @@ -18,12 +18,10 @@ | |
| 18 | * Bug: If the server closes the socket unexpectedly, the |
| 19 | fwrite() in http.c:103 throws a signal and kills the child |
| 20 | process. fwrite() is not suppose to do this. Need to figure |
| 21 | out what is going wrong. |
| 22 | |
| 23 | * Bug: Make sure merge and other commands (check-out) do not try |
| 24 | to use a phantom. |
| 25 | |
| 26 | * Bug: When clone use incorrect http URL, local repo file is still created. |
| 27 | |
| @@ -44,11 +42,11 @@ | |
| 42 | |
| 43 | * The ipaddr field of the rcvfrom table is not being set. This |
| 44 | field should be the IP address from which information is received |
| 45 | for the local repository. So when somebody does a push of new |
| 46 | files we record the ipaddr. Or when we do a pull, we record |
| 47 | the ipaddr. (I think this has been fixed. Need to test.) |
| 48 | |
| 49 | * Additional information displayed for the "vinfo" page: |
| 50 | |
| 51 | + All leaves of this version that are not included in the |
| 52 | descendant list. With date, user, comment, and hyperlink. |
| @@ -55,17 +53,10 @@ | |
| 53 | Leaves in the descendant table should be marked as such. |
| 54 | See the compute_leaves() function to see how to find all |
| 55 | leaves. |
| 56 | + Add file diff links to the file change list. |
| 57 | |
| 58 | * Enhancements to the diff and tkdiff commands in the cli. |
| 59 | Allow the entire tree or a subtree to be diffed, not just a |
| 60 | single file. Allow diffs against any two arbitrary versions, |
| 61 | not just diffs against the current check-out. |
| 62 | |
| 63 |