=head1 NAME

p4delta - Summarize the differences between a Perforce project and local files.

=head1 SYNOPSIS

B<p4delta> [options] [file ...]

=head1 DESCRIPTION

Summarizes the differences between a Perforce project and local files, showing the
changes of the files themselves and of their contents. Added, changed, and
deleted files are denoted with `+', `*', and `-' respectively. The number of
lines are displayed.

=head1 OPTIONS

=over 4

=item B<-c>, B<--confirm>

Confirm deleted files with the user before removing them from Perforce. The default
is simply to execute the remove command for relevant files. This option is valid
only with the --execute option.

=item B<-e>, B<--execute>

Execute the associated Perforce commands ("add", "edit", and "remove") for the
added, edited and deleted files.

=item B<-f>, B<--force>

Compare all local files against those in Perforce. The default is to compare
only the local files that are opened.

=item B<-h>, B<--help>

Display a help message.

=item B<-q>, B<--quiet>

Run with minimum output.

=item B<-v>, B<--version>

Display the version and exit.

=item B<-V>, B<--verbose>

Run with maximum output.

=back

=head1 ARGUMENTS

Arguments may be either files or directories.

=over 4

=item B<File>

If a file is provided, it is compared against the equivalent in CVS, if any. The
.cvsignore files are applied, so that although the file was explicitly provided,
it may be ignored.

=item B<Directory>

Directories are processed recursively for files that are not filtered out by
.cvsignore files.

=back

=over 4

=item B<File>

If a file is provided, it is compared against the equivalent in Perforce, if
any. .p4ignore files are applied, so that although the file was explicitly
provided, it may be ignored.

=item B<Directory>

Directories are processed recursively for files that are not filtered out by
.p4ignore files.

=back

=head1 EXAMPLES

    % p4delta

Lists the changed files.

    % p4delta --execute

Lists the changed files, and executes the associated add, edit and remove
commands.

    % p4delta --execute --confirm

Add, edit and remove the appropriate files, but get confirmation from the user
before removing any files.

=head1 ENVIRONMENT

=over 4

=item B<$HOME/.p4ignore>, B<.../project/.p4ignore>

Files and directories may be filtered by .p4ignore files, locate both in the
user's home directory and locally, in each directory. For example:

    *.bak
    *.class
    *.o
    *.out
    *~
    .libs
    logs
    core

See http://www.loria.fr/~molli/cvs/doc/cvs_18.html#SEC170 for how this is used
in CVS, from which this idea was taken.

=item B<$HOME/.p4deltarc>, B<.../project/.p4deltarc>

Resource files containing name/value pairs, separated by either ':' or '='. The
valid fields of a .p4deltarc file are as follows, with their default values:

    quiet:   false
    verbose: false
    execute: false
    force:   false

"yes" and "on" are synonymnous with "true". "no" and "off" signify "false".

The values in the project .p4deltarc file will override those in the user's
.p4deltarc file. The project .p4deltarc is searched from the current directory
up through each parent directory that is in Perforce.

=item B<P4DELTAOPTS>

A string of whitespace-delimited options, the same as listed above. These values
override those of the resource files.

=back

=head1 NOTES

If a file exists in the Perforce project but not locally, it is assumed that the file
has been deleted, not that it may have been recently added by another user. The
--confirm option can be used to deal with this situation.

=head1 AUTHOR

Jeff Pace <jpace@incava.org>

=head1 COPYRIGHT

Copyright (c) 2002, Jeff Pace.

All Rights Reserved. This module is free software. It may be used, redistributed
and/or modified under the terms of the Lesser GNU Public License. See
http://www.gnu.org/licenses/lgpl.html for more information.

=cut


syntax highlighted by Code2HTML, v. 0.9.1