[Phillip J. Eby wrote]
Yeah, this is actually on my list, just haven't got 'round to it yet. For systems that include their control data in-band (as files/dirs in the project area) it's pretty easy, but my impression was that most things besides CVS and Subversion don't do this. It would help if folks using the other tools could give some idea of how you go about finding tracked files using them, so I could get a better idea of how the extension API should work.
If I understand what you are asking here, you get the list of Perforce files in the current client view (kinda the equivalent of an SVN working copy) with the "p4 have ./..." command: $ p4 help have have -- List revisions last synced p4 have [ file ... ] List revisions of named files that were last synced from the depot. If no file name is given list all files synced on this client. The format is depot-file#revision - client-file $ p4 have ./... //depot/main/Apps/ActivePython-devel/README.txt#9 - c:\trentm\as\ActivePython-devel\README.txt ... Some notes: - Why "./..."? Firstly, you need to specify a path argument because otherwise p4 defaults to the *whole* client view, which may (and likely does) include directories outside of your current dir. Secondly, "..." is Perforce's way of say "recursively under the given directory". So "./..." as a path argument effectively makes a p4 command behave like an svn/cvs command's default: recursively under the current dir. - If you *do* get into the business of doing this Perforce stuff, you may want to steal from or use my "p4lib.py" (either of which you are welcome todo -- MIT license): http://trentm.com/projects/px/p4lib.py which provides parsing of some of the common p4 commands. (It is not perfect and arguably the Right Thing for Python/Perforce bindings would use Perforce's C++ API. 'p4lib.py' does have the benefit of being pure Python.) >>> import p4lib, sys, pprint >>> sys.displayhook = pprint.pprint >>> p4 = p4lib.P4() >>> p4.have("./...") [{'depotFile': '//depot/main/Apps/ActivePython-devel/README.txt', 'localFile': 'c:\\trentm\\as\\ActivePython-devel\\README.txt', 'rev': 9}, ... ] Cheers, Trent -- Trent Mick TrentM@ActiveState.com