Differences between revisions 9 and 27 (spanning 18 versions)
Revision 9 as of 2010-05-20 07:58:33
Size: 5760
Editor: frank
Comment:
Revision 27 as of 2013-09-01 03:06:38
Size: 959
Editor: LetaBurre
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Perfarce Extension ==
'''This extension is not distributed with Mercurial.'''

''Author: Frank Kingswood''

Public repository: http://www.kingswood-consulting.co.uk/hg/perfarce

=== Overview ===
This extension modifies the remote repository handling so that repository
paths that resemble
    p4://p4server[:port]/clientname
cause operations on the named p4 client specification on the p4 server.

The client specification must already exist on the server before using
this extension, and the working copy belonging to this client spec must be
visible to hg as Root or one of the AltRoots in the client spec.
If configuration keep=true then it is possible to share this working copy with local p4 operations.

=== Commands ===

{{{
hg clone [--startrev REV] [-r REV] [p4://server/clientname]
}}}
If the source repository name starts with p4:// then this
creates the destination repository and pulls all changes
from the p4 depot into it.
The --startrev and -r options set the first and last p4 changelist to pull. Setting a start revision
causes the contents of all files at that changelist to be included in the first converted revision.
There must be at least two revisions to clone if --startrev is set.
After the clone is complete the Perfarce extension will write a .hg/hgrc file with the p4 address and the configuration options in use.

{{{
hg incoming [p4://server/clientname]
}}}
If the source repository name starts with p4:// then this
reports changes in the p4 depot that are not yet in the
local repository.

{{{
hg pull [-r REV] [p4://server/clientname]
}}}
If the source repository name starts with p4:// then this
imports changes from the p4 depot, automatically creating
merges of changelists submitted by hg push.
The -r option sets the last p4 changelist to pull.
If the perfarce.keep configuration is false then
the import does not leave files in the p4
workarea, otherwise the p4 workarea will be updated
with the new files.

{{{
hg outgoing [p4://server/clientname]
}}}
If the destination repository name starts with p4:// then
this reports files affected by the revision(s) that are
in the local repository but not in the p4 depot.

{{{
hg push [-r REV] [--submit] [p4://server/clientname]
}}}
If the destination repository name starts with p4:// then
this exports changes from the local repository to the p4
depot. If no revision is specified then all changes since
the last p4 changelist are pushed. In either case, all
revisions to be pushed are folded into a single p4 changelist.
Optionally the resulting changelist is submitted to the p4
server, controlled by the --submit option to push, or by
the perfarce.submit configuration.
If the perfarce.keep configuration is false then after a successful submit the files in the
p4 workarea will be deleted.

{{{
hg p4id [-r REV] [-nip]
}}}
Shows the most recent P4 changelist known to Mercurial, or the P4 changelist associated with Mercurial revision REV.
The -n -i and -p options cause the local revision number, the global revision id and the p4 changelist number to be displayed.

{{{
hg p4pending [-s]
}}}
Shows pending changes, those that have been pushed and possibly submitted, but not yet pulled from p4.
If the -s option is given, then the pending changelists are presented in a long format with summaries of the changelist comment.

{{{
hg p4submit [-a] [changelist]
}}}
Submit a changelist to p4.
If the -a option is given then all changes that have been pushed will be submitted.

{{{
hg p4revert [-a] [changelist]
}}}
Delete a changelist from p4, reverting any file changes.
If the -a option is given then all changes that have been pushed but not submitted will be reverted.


=== Configuration ===
Configure your .hgrc to enable the extension by adding following lines:

{{{
[extensions]
perfarce = /path/to/perfarce.py

[perfarce]
keep = True
submit = False
tags = True
lowercasepaths = False
clientuser = search_regex replacement_string
}}}

If the '''keep''' option is true (this is default) then the Perfarce extension will keep the p4 workarea updated with the current top of tree in p4.
If '''keep''' is false then the Perfarce extension does not leave files in the p4 workarea unless it is creating a changelist.

If the '''submit''' option is true then Perfarce will automatically submit a changelist when pushing changes to the p4 depot.
The default is to create a pending changelist, and let the user review this before submitting, either with p4 submit or hg p4submit.

If the '''tags''' option is true (this is the default) then Perfarce will convert p4 labels into Mercurial tags. If '''tags''' is false then p4 labels are ignored. This can be used to reduce loading on the p4 server.

If the '''lowercasepaths''' option is true then the Perfarce extension forces all directory names received from p4 to lowercase, but leaving filenames unchanged.
The default is to preserve directory and file names.

The '''clientuser''' option allows for 'cheap' multiuser operation with p4. The option argument is split on the first space into
a search regular expression and a replacement string. If the regular expression matches the client spec name of an imported p4 changelist then
the username for the changelist is changed to the value of the replacement string after it is capitalized. The replacement string can
use regex matches to substitute part of the client spec name.An example could be
{{{
clientuser = ([a-z]+)\.([a-z-]+)--[a-zA-Z0-9-_.]+ \1 \2 <\1.\2@example.com>
}}}
which turns "firstname.lastname--my-client-name" into "Firstname Lastname <firstname.lastname@example.com>"



----
CategoryExtensionsByOthers
Play [[http://minecraft4freeonline.com/cat/0/all/newest/p1.html|All Games]] [[http://minecraft4freeonline.com/cat/1/minecraft-games/newest/p1.html|Minecraft Games]] [[http://minecraft4freeonline.com/cat/2/games-like-minecraft/newest/p1.html|Games Like Minecraft]] [[http://minecraft4freeonline.com/cat/3/action/newest/p1.html|Action]] [[http://minecraft4freeonline.com/cat/4/adventure/newest/p1.html|Adventure]] [[http://minecraft4freeonline.com/cat/5/strategy/newest/p1.html|Strategy]] at [[http://minecraft4freeonline.com|http://minecraft4freeonline.com]]<<BR>>
Minecraft Four Free On-line is depending on Minecraft Game. Action, approach, mine, create, obstructs, put together or immunity your platform, play minecraft for free and a lot more online games just like minecraft!<<BR>>
<<BR>>
{[[http://minecraft4freeonline.com/|Minecraft for free]]|[[http://minecraft4freeonline.com/|Free Minecraft]]|[[http://minecraft4freeonline.com/|Minecraft free]]|

Play All Games Minecraft Games Games Like Minecraft Action Adventure Strategy at http://minecraft4freeonline.com
Minecraft Four Free On-line is depending on Minecraft Game. Action, approach, mine, create, obstructs, put together or immunity your platform, play minecraft for free and a lot more online games just like minecraft!

{Minecraft for free|Free Minecraft|Minecraft free|

PerfarceExtension (last edited 2023-04-06 01:29:36 by Hudson Oliveira)