GraphicalInterface
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. See http://haskell.org/haskellwiki/Patchwork for more details.
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.
- http://www.darcheology.org/ (Mac OS X) - Code is alpha but usable; looks very nice and should become quite polished.
