[Python-Dev] PEP: Migrating the Python CVS to Subversion

Trent Mick trentm at ActiveState.com
Wed Aug 10 20:47:40 CEST 2005

[Guido van Rossum wrote]
> Also, P4 has *no* command to tell you which
> files you've created without adding them to the repository yet -- so
> the most frequent build breakage is caused by missing new files.

This one is a frequent complaint from CVS-heads here at ActiveState.
I have a p4 wrapper called "px" that extends some p4 commands (and adds
a couple). One of the commands that it extends is "diff" to add a "-sn"
(new) option similar to the "-se" (edit), "-sd" (delete).

$ px help diff
...the usual 'p4 help diff'...
    new px options:   [-sn -c changelist#]

        Px adds another -s<flag> option:
                -sn     Local files not in the p4 client.

        Px also adds the --skip option (which only makes sense
        together with -sn) to specify that regularly skipped file
        (CVS control files, *~) should be skipped.

        The '-c' option can be used to limit diff'ing to files in
        the given changelist. '-c' cannot be used with any of the
        '-s' options.

'px' should grow a "px status" a la "svn|cvs status" to give a quick
summary of local differences.  Other additions:

$ px help px

    'px' entensions to 'p4':

    px --help
        Add px-specific help output to the usual 'p4 -h' and 'p4 -?'.
        See 'px help usage'.

    px -V, --version
        Print px-specific version information in addition to the usage
        'p4 -V' output.  See 'px help usage'.

    px -g ...
        Format input/output as *un*marshalled Python objects. Compare to
        the usual 'p4 -G ...'.  See 'px help usage'.

    px annotate ...
        Identify last change to each line in given file, like 'cvs
        annotate' or 'p4pr.pl'.  See 'px help annotate'.

    px backout ...
        Provide all the general steps for rolling back a perforce
        change as described in Perforce technote 14.  See 'px help

    px changes -d ...
        Print the full 'p4 describe -du' output for each listed change.
        See 'px help changes'.

    px diff -sn --skip ...
        List local files not in the p4 depot. Useful for importing new
        files into a depot via 'px diff -sn --skip ./... | px -x - add'.
        See 'px help diff'.

    px diff -c <change> ...
        Limit diffing to files opened in the given pending change.  See
        'px help diff'.

    px genpatch [<change>]
        Generate a patch (usable by the GNU 'patch' program) from a
        pending or submitted chagelist.  See 'px help genpatch'.

Available here:

Pure python. Works on Python >=2.2. Windows, Linux, Mac OS X, Unix.


Trent Mick
TrentM at ActiveState.com

More information about the Python-Dev mailing list