This page describes possible work on ressurecting the built-in wxHaskell graphical interface for Darcs. [[`TableOfContents `_([2])]] Why a graphical interface? -------------------------- - It may be easier for newbies - It may provide powerful functionality that would be inconvenient with the command-line interface Current projects ---------------- There are three students of the `BTU Cottbus `_ working on a new darcs GUI application based on the `Grapefruit `_ FRP library. They are supervised by Wolfgang Jeltsch. GUI ideas --------- - a patch dependency visualiser - an iTunes-like interface to patches (click on the 'author' column, and you see the patches sorted by author, for example) - click on a patch and you get some subtle feedback on all the patches it depends on (for example, they change colour) - maybe some kind of help resolving conflicts? (no clear ideas) - A file browser that highlights files not added to the repository, files that have unrecorded changes, etc. - Diff visualisation - MacOS X - integration with `FileMerge `_? - a generic diff visualiser, which would allow to pick-and-choose lines of code into a third file, a la Visual Source Safe and the open-source `kdiff3 `_. - There should be two ways to use the darcs gui. One is to have a seperate gui for each command, so that you can run something like ``darcs whatsnew -gui``. The other is to have a standalone gui. - The standalone gui could take a patch-oriented view towards repositories, rather than a task oriented one. That is, rather than decide you want to record some patches and then select the patches (for instance), you select a bunch of patches and decide you want to record them. (This is inspired from one of the patchworks' screenshots) TODO ~~~~ - File selection: add, remove, move (this requires some thought) - *not implemented* - Replace - *not implemented* - Set pref - *not implemented* - Repository selection - *not implemented* (for standalone gui only) - Select a repository - should be able to type in a repository path (remote), or use file dialogue to select a local one, or choose from \_darcs/prefs/repositories - Interaction with SSH - password or passphrase, maybe ssh-agent - Radio buttons for multi-record selection (pending also Ganesh looking into multi-record) Implementation ideas -------------------- - Implement a darcs --gui flag that launches a standalone darcs gui. Make darcs run as if it had the darcs --gui flag if it is called as darcsGui (this will be useful for the double-clickable executable). Not that the darcs --gui flag is not the same as the --gui flag for arguments. - We look into Blobs as a graphical tool for visualising patch dependencies Things we could use... ---------------------- - A gui branch of darcs (somebody just needs to set this up on a server somewhere) - A mailing list so that we don't annoy everybody on darcs-users or darcs-devel? - Some people interested in hacking on this? See also -------- - `http://patchworks.counsell.org `_ (Mac OS X) - Jonathon Mah and Tom Counsell; Very alpha, but can show whatsnew, and record or revert groups of hunks by drag and drop. - `http://eclipsedarcs.org/ `_ - Eclipse plugin for Darcs - `http://tortoisedarcs.sourceforge.net `_ (Windows) - Windows GUI for Darcs.