<h2>1, Codev</h2><div>Codev is a COllaborative DEVelopment environment with command'based user interface,</div><div> as an ideal frontend for GNUnet</div><div><p></p></div><div>list of all projects will appear in a floating layer, at the center of the screen, called overview layer</div><div>overview layer:</div><div>, left panel:</div><div> , roots: home directory, plus attached devices</div><div> , project groups: content of roots</div><div>, main view:</div><div> projects: content of project groups</div><div><p></p></div><div><img src='codev.png' alt='codev.png'/></div><div><p></p></div><div>in a project view, the list of files of a project will be displayed in the left side'bar</div><div>opened files will be slightly highlighted</div><div>files and directories with names starting with a dot, will be hidden</div><div>".cache" directory inside a project is for files we don't want to share or backup</div><div><p></p></div><div>each opened file will have a side'bar at right showing its sections</div><div>there we can create new view corresponding to a section</div><div>sections with views will be slightly highlighted</div><div><p></p></div><div>text files will be opened in a text editor</div><div>directories containing media files, will be opened in a gallery view</div><div>files and directories inside a gallery, will be opened in a floating layer</div><div><p></p></div><div>non'local projects, web pages, PDF documents, etc, accessed from links inside the main project,</div><div> will be opened in a floating layer</div><div>web pages: move caret between visual elements (ignoring structural elements)</div><div><p></p></div><div>actions:</div><div>, next/previous word, line, paragraph, section</div><div> ask before crossing files</div><div>, next/previous section view, opened file</div><div>, go to the list of files to open a file view</div><div>, go to the list of sections to open a section view</div><div>, start and end selection, then copy or cut</div><div>, paste</div><div>, undo</div><div><p></p></div><div>, navigation: move, search</div><div>, selection</div><div>, completion</div><div><p></p></div><div>right click or ctrl+enter: show a list of available commands and their key bindings</div><div><p></p></div><div><b>collaborative development</b></div><div>flaws of version control systems:</div><div>, they double the storage (working directory, local repository)</div><div>, their design makes it difficult to modify the history</div><div> so in practice, the whole history must be kept indefinitely, even if not needed</div><div><p></p></div><div>when we download a project, a pristine copy is kept untouched in ".cache/codev/pristine",</div><div> and ref links will be created in the working directory, and then we can work on our own branch</div><div>after a while when we want to pull and merge changes made in the main branch,</div><div> first a three'way diff will be shown, based on the main branch, pristine, and the working directory,</div><div> then the user will be asked to accept all or some parts of the diff</div><div>to send a pull request to the main branch, first publish the pristine and the working directory (except .cache),</div><div> then send the two addresses to the main developer</div><div> the main developer will make a diff based on these two, plus her own working directory</div><div><p></p></div><div>we can use GNUnet to share files in a P2P (a opposed to client'server) network</div><div><a href='https://www.gnunet.org/en/'>https://www.gnunet.org/en/</a></div><div><a href='https://docs.gnunet.org/latest/'>https://docs.gnunet.org/latest/</a></div><div>"the GNUnet system" by Christian Grothoff (<a href='https://grothoff.org/christian/habil.pdf'>https://grothoff.org/christian/habil.pdf</a>)</div>
0 commit comments