P4UI
by David Jeske <jeske@chat.net>
Check out: software (and source)
-- screenshots
Disclaimer:This project isn't genuinely useful. It's a snapshot of my ideas and progress. If you really like the
idea, drop me a line, and encourage me to work on it some more.
About the Project
Back when I was working at 3dfx, I came to use the SourceSafe GUI, and
found it rather nice. The trouble was, I found SourceSafe itself terribly
unreliable -- My source control system of choice is Perforce. My experience with the SourceSafe GUI got me thinking how good things would be there were a
similar GUI for Perforce. (Perforce GUI lovers don't be offended, it's UI
seems to be an acquired taste that I care not to acquire)
At first I investigated Java. Afterall, I figured it would be the best
if the effort would yeild a cross-platform GUI. However, like the last two
times I tried to use Java, I found it immature, slow, and
painfaul to interface external code to. The fact that Perforce's
p4lib is a C++ library instead of C library makes things even harder.
After deciding once again Java/Swing wasn't ready for prime time, I decided
to learn and try out Visual Basic. I've learned all I ever want to know about
VB5, and can safetly say I think it's a horrible language. My biggest
gripes being the lack of preinitialized data syntax, first class
functions (i.e. function pointers), and general brokenness of
the associative array implementation
(i.e. collections).
The intent of the form based UI building stuff is interesting, but it turns out
much more painful than it should be. Making forms which resize well
is painful, most of the property pages are severely lacking, and the basic
controls are buggy. The NEXTSTEP Interface Builder is far more powerful.
All in all, it proved a great way to get 60-70% of the idea working, and
it also proved incapable of handling the other 30-40% in any decent fashion.
What works
- Browsing the depot
- File or directory revision history (right click on dir or file)
- File Ops:
- Revert
- check out
- View(whether in the client or not)/Edit
- The check-in dialog (but you can't actually check in the files yet)
What dosn't work
- some operations like rename, check-in, and directory operations
- The options dialog (it's not being looked at yet)
- some checkboxes and options in other dialogs don't work yet
Known Issues
- The tree view gets weird sometimes... it's bugs in the
Control itself, I'm trying to figure out a workaround. Also, I
tried to make it not expand or contract when you double-click, but
when the selection gets confused, it sometimes collapses everything
by mistake... working on it.
- It's pretty SLOW. This is because of how I'm forced to envoke
the perfoce command line. When I can connect to the client library
it'll be much faster.
- it just talks to the perforce command line in your path, so you
have to make sure one is there and that it's client and p4port
are setup correctly.
Check out: software
-- screenshots