This page describes possible work on ressurecting the built-in wxHaskell graphical interface for Darcs.
Contents
Why a graphical interface?
- It may be easier for newbies
- It may provide powerful functionality that would be inconvenient with the command-line interface
Is there a graphical interface?
Yes, but it's very incomplete and is liable to destroy data. If you want to try it out, download the darcs source (development and released source all have it). Here is what you get:
A freshened up version of the original gui code by DavidRoundy. This cleans up some bitrot so that the gui code compiles. It gives you a graphical interface to whatsnew, record, and most darcs commands which involve selecting patches; if you supply the arguments --gui via the command line
- wxDarcs - a very incomplete "standalone" interface which displays the state of your repository and lets you run various darcs commands at a click of a button.
wxDarcs only adds this storefront window and makes use of the underlying gui code by DavidRoundy.
MacOS X users get a fancy application bundle that they can double-click to make darcs go. make wxDarcs.dmg
Screenshots
Note that this interface is written using wxHaskell, and so, it should be portable across Windows, MacOS and Linux:
Where can I get the GUI?
Try one of these links below. But only do this if you understand that this stuff is so incomplete and potentially buggy that I wouldn't even dream of calling it an alpha:
MacOS X (Panther) - might not work - http://eric.kow.free.fr/download/wxDarcs.dmg
MacOS X (Tiger) - bugs with the widgets, yay! - http://eric.kow.free.fr/download/wxDarcs-Tiger-2.dmg
Other - darcs get http://darcs.net/
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
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.
