mercurial/help/config.txt
branchstable
changeset 33170 26c49ed51a69
parent 32139 de86a6872d06
child 33260 85d1ac011582
equal deleted inserted replaced
33169:aadd79149ac3 33170:26c49ed51a69
   859   # force autobuild hook to run before other incoming hooks
   859   # force autobuild hook to run before other incoming hooks
   860   priority.incoming.autobuild = 1
   860   priority.incoming.autobuild = 1
   861 
   861 
   862 Most hooks are run with environment variables set that give useful
   862 Most hooks are run with environment variables set that give useful
   863 additional information. For each hook below, the environment variables
   863 additional information. For each hook below, the environment variables
   864 it is passed are listed with names of the form ``$HG_foo``. The
   864 it is passed are listed with names in the form ``$HG_foo``. The
   865 ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks.
   865 ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks.
   866 their respectively contains the type of hook which triggered the run and
   866 They contain the type of hook which triggered the run and the full name
   867 the full name of the hooks in the config. In the example about this will
   867 of the hook in the config, respectively. In the example above, this will
   868 be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``.
   868 be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``.
   869 
   869 
   870 ``changegroup``
   870 ``changegroup``
   871   Run after a changegroup has been added via push, pull or unbundle.  ID of the
   871   Run after a changegroup has been added via push, pull or unbundle.  The ID of
   872   first new changeset is in ``$HG_NODE`` and last in ``$HG_NODE_LAST``. URL
   872   the first new changeset is in ``$HG_NODE`` and last is in ``$HG_NODE_LAST``.
   873   from which changes came is in ``$HG_URL``.
   873   The URL from which changes came is in ``$HG_URL``.
   874 
   874 
   875 ``commit``
   875 ``commit``
   876   Run after a changeset has been created in the local repository. ID
   876   Run after a changeset has been created in the local repository. The ID
   877   of the newly created changeset is in ``$HG_NODE``. Parent changeset
   877   of the newly created changeset is in ``$HG_NODE``. Parent changeset
   878   IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
   878   IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
   879 
   879 
   880 ``incoming``
   880 ``incoming``
   881   Run after a changeset has been pulled, pushed, or unbundled into
   881   Run after a changeset has been pulled, pushed, or unbundled into
   882   the local repository. The ID of the newly arrived changeset is in
   882   the local repository. The ID of the newly arrived changeset is in
   883   ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
   883   ``$HG_NODE``. The URL that was source of the changes is in ``$HG_URL``.
   884 
   884 
   885 ``outgoing``
   885 ``outgoing``
   886   Run after sending changes from local repository to another. ID of
   886   Run after sending changes from the local repository to another. The ID of
   887   first changeset sent is in ``$HG_NODE``. Source of operation is in
   887   first changeset sent is in ``$HG_NODE``. The source of operation is in
   888   ``$HG_SOURCE``; Also see :hg:`help config.hooks.preoutgoing` hook.
   888   ``$HG_SOURCE``. Also see :hg:`help config.hooks.preoutgoing`.
   889 
   889 
   890 ``post-<command>``
   890 ``post-<command>``
   891   Run after successful invocations of the associated command. The
   891   Run after successful invocations of the associated command. The
   892   contents of the command line are passed as ``$HG_ARGS`` and the result
   892   contents of the command line are passed as ``$HG_ARGS`` and the result
   893   code in ``$HG_RESULT``. Parsed command line arguments are passed as
   893   code in ``$HG_RESULT``. Parsed command line arguments are passed as
   915   failure, the command doesn't execute and Mercurial returns the failure
   915   failure, the command doesn't execute and Mercurial returns the failure
   916   code.
   916   code.
   917 
   917 
   918 ``prechangegroup``
   918 ``prechangegroup``
   919   Run before a changegroup is added via push, pull or unbundle. Exit
   919   Run before a changegroup is added via push, pull or unbundle. Exit
   920   status 0 allows the changegroup to proceed. Non-zero status will
   920   status 0 allows the changegroup to proceed. A non-zero status will
   921   cause the push, pull or unbundle to fail. URL from which changes
   921   cause the push, pull or unbundle to fail. The URL from which changes
   922   will come is in ``$HG_URL``.
   922   will come is in ``$HG_URL``.
   923 
   923 
   924 ``precommit``
   924 ``precommit``
   925   Run before starting a local commit. Exit status 0 allows the
   925   Run before starting a local commit. Exit status 0 allows the
   926   commit to proceed. Non-zero status will cause the commit to fail.
   926   commit to proceed. A non-zero status will cause the commit to fail.
   927   Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
   927   Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
   928 
   928 
   929 ``prelistkeys``
   929 ``prelistkeys``
   930   Run before listing pushkeys (like bookmarks) in the
   930   Run before listing pushkeys (like bookmarks) in the
   931   repository. Non-zero status will cause failure. The key namespace is
   931   repository. A non-zero status will cause failure. The key namespace is
   932   in ``$HG_NAMESPACE``.
   932   in ``$HG_NAMESPACE``.
   933 
   933 
   934 ``preoutgoing``
   934 ``preoutgoing``
   935   Run before collecting changes to send from the local repository to
   935   Run before collecting changes to send from the local repository to
   936   another. Non-zero status will cause failure. This lets you prevent
   936   another. A non-zero status will cause failure. This lets you prevent
   937   pull over HTTP or SSH. Also prevents against local pull, push
   937   pull over HTTP or SSH. It can also prevent propagating commits (via
   938   (outbound) or bundle commands, but not effective, since you can
   938   local pull, push (outbound) or bundle commands), but not completely,
   939   just copy files instead then. Source of operation is in
   939   since you can just copy files instead. The source of operation is in
   940   ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
   940   ``$HG_SOURCE``. If "serve", the operation is happening on behalf of a remote
   941   SSH or HTTP repository. If "push", "pull" or "bundle", operation
   941   SSH or HTTP repository. If "push", "pull" or "bundle", the operation
   942   is happening on behalf of repository on same system.
   942   is happening on behalf of a repository on same system.
   943 
   943 
   944 ``prepushkey``
   944 ``prepushkey``
   945   Run before a pushkey (like a bookmark) is added to the
   945   Run before a pushkey (like a bookmark) is added to the
   946   repository. Non-zero status will cause the key to be rejected. The
   946   repository. A non-zero status will cause the key to be rejected. The
   947   key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
   947   key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
   948   the old value (if any) is in ``$HG_OLD``, and the new value is in
   948   the old value (if any) is in ``$HG_OLD``, and the new value is in
   949   ``$HG_NEW``.
   949   ``$HG_NEW``.
   950 
   950 
   951 ``pretag``
   951 ``pretag``
   952   Run before creating a tag. Exit status 0 allows the tag to be
   952   Run before creating a tag. Exit status 0 allows the tag to be
   953   created. Non-zero status will cause the tag to fail. ID of
   953   created. A non-zero status will cause the tag to fail. The ID of the
   954   changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
   954   changeset to tag is in ``$HG_NODE``. The name of tag is in ``$HG_TAG``. The
   955   local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
   955   tag is local if ``$HG_LOCAL=1``, or in the repository if ``$HG_LOCAL=0``.
   956 
   956 
   957 ``pretxnopen``
   957 ``pretxnopen``
   958   Run before any new repository transaction is open. The reason for the
   958   Run before any new repository transaction is open. The reason for the
   959   transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
   959   transaction will be in ``$HG_TXNNAME``, and a unique identifier for the
   960   transaction will be in ``HG_TXNID``. A non-zero status will prevent the
   960   transaction will be in ``HG_TXNID``. A non-zero status will prevent the
   961   transaction from being opened.
   961   transaction from being opened.
   962 
   962 
   963 ``pretxnclose``
   963 ``pretxnclose``
   964   Run right before the transaction is actually finalized. Any repository change
   964   Run right before the transaction is actually finalized. Any repository change
   965   will be visible to the hook program. This lets you validate the transaction
   965   will be visible to the hook program. This lets you validate the transaction
   966   content or change it. Exit status 0 allows the commit to proceed. Non-zero
   966   content or change it. Exit status 0 allows the commit to proceed. A non-zero
   967   status will cause the transaction to be rolled back. The reason for the
   967   status will cause the transaction to be rolled back. The reason for the
   968   transaction opening will be in ``$HG_TXNNAME`` and a unique identifier for
   968   transaction opening will be in ``$HG_TXNNAME``, and a unique identifier for
   969   the transaction will be in ``HG_TXNID``. The rest of the available data will
   969   the transaction will be in ``HG_TXNID``. The rest of the available data will
   970   vary according the transaction type. New changesets will add ``$HG_NODE`` (id
   970   vary according the transaction type. New changesets will add ``$HG_NODE``
   971   of the first added changeset), ``$HG_NODE_LAST`` (id of the last added
   971   (the ID of the first added changeset), ``$HG_NODE_LAST`` (the ID of the last
   972   changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables, bookmarks and phases
   972   added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables.  Bookmark and
   973   changes will set ``HG_BOOKMARK_MOVED`` and ``HG_PHASES_MOVED`` to ``1``, etc.
   973   phase changes will set ``HG_BOOKMARK_MOVED`` and ``HG_PHASES_MOVED`` to ``1``
       
   974   respectively, etc.
   974 
   975 
   975 ``txnclose``
   976 ``txnclose``
   976   Run after any repository transaction has been committed. At this
   977   Run after any repository transaction has been committed. At this
   977   point, the transaction can no longer be rolled back. The hook will run
   978   point, the transaction can no longer be rolled back. The hook will run
   978   after the lock is released. See :hg:`help config.hooks.pretxnclose` docs for
   979   after the lock is released. See :hg:`help config.hooks.pretxnclose` for
   979   details about available variables.
   980   details about available variables.
   980 
   981 
   981 ``txnabort``
   982 ``txnabort``
   982   Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose`
   983   Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose`
   983   docs for details about available variables.
   984   for details about available variables.
   984 
   985 
   985 ``pretxnchangegroup``
   986 ``pretxnchangegroup``
   986   Run after a changegroup has been added via push, pull or unbundle, but before
   987   Run after a changegroup has been added via push, pull or unbundle, but before
   987   the transaction has been committed. Changegroup is visible to hook program.
   988   the transaction has been committed. The changegroup is visible to the hook
   988   This lets you validate incoming changes before accepting them. Passed the ID
   989   program. This allows validation of incoming changes before accepting them.
   989   of the first new changeset in ``$HG_NODE`` and last in ``$HG_NODE_LAST``.
   990   The ID of the first new changeset is in ``$HG_NODE`` and last is in
   990   Exit status 0 allows the transaction to commit. Non-zero status will cause
   991   ``$HG_NODE_LAST``. Exit status 0 allows the transaction to commit. A non-zero
   991   the transaction to be rolled back and the push, pull or unbundle will fail.
   992   status will cause the transaction to be rolled back, and the push, pull or
   992   URL that was source of changes is in ``$HG_URL``.
   993   unbundle will fail. The URL that was the source of changes is in ``$HG_URL``.
   993 
   994 
   994 ``pretxncommit``
   995 ``pretxncommit``
   995   Run after a changeset has been created but the transaction not yet
   996   Run after a changeset has been created, but before the transaction is
   996   committed. Changeset is visible to hook program. This lets you
   997   committed. The changeset is visible to the hook program. This allows
   997   validate commit message and changes. Exit status 0 allows the
   998   validation of the commit message and changes. Exit status 0 allows the
   998   commit to proceed. Non-zero status will cause the transaction to
   999   commit to proceed. A non-zero status will cause the transaction to
   999   be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
  1000   be rolled back. The ID of the new changeset is in ``$HG_NODE``. The parent
  1000   IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
  1001   changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
  1001 
  1002 
  1002 ``preupdate``
  1003 ``preupdate``
  1003   Run before updating the working directory. Exit status 0 allows
  1004   Run before updating the working directory. Exit status 0 allows
  1004   the update to proceed. Non-zero status will prevent the update.
  1005   the update to proceed. A non-zero status will prevent the update.
  1005   Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
  1006   The changeset ID of first new parent is in ``$HG_PARENT1``. If updating to a
  1006   of second new parent is in ``$HG_PARENT2``.
  1007   merge, the ID of second new parent is in ``$HG_PARENT2``.
  1007 
  1008 
  1008 ``listkeys``
  1009 ``listkeys``
  1009   Run after listing pushkeys (like bookmarks) in the repository. The
  1010   Run after listing pushkeys (like bookmarks) in the repository. The
  1010   key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
  1011   key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
  1011   dictionary containing the keys and values.
  1012   dictionary containing the keys and values.
  1015   repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
  1016   repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
  1016   ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
  1017   ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
  1017   value is in ``$HG_NEW``.
  1018   value is in ``$HG_NEW``.
  1018 
  1019 
  1019 ``tag``
  1020 ``tag``
  1020   Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
  1021   Run after a tag is created. The ID of the tagged changeset is in ``$HG_NODE``.
  1021   Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
  1022   The name of tag is in ``$HG_TAG``. The tag is local if ``$HG_LOCAL=1``, or in
  1022   repository if ``$HG_LOCAL=0``.
  1023   the repository if ``$HG_LOCAL=0``.
  1023 
  1024 
  1024 ``update``
  1025 ``update``
  1025   Run after updating the working directory. Changeset ID of first
  1026   Run after updating the working directory. The changeset ID of first
  1026   new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
  1027   new parent is in ``$HG_PARENT1``. If updating to a merge, the ID of second new
  1027   in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
  1028   parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
  1028   update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
  1029   update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``.
  1029 
  1030 
  1030 .. note::
  1031 .. note::
  1031 
  1032 
  1032    It is generally better to use standard hooks rather than the
  1033    It is generally better to use standard hooks rather than the
  1033    generic pre- and post- command hooks as they are guaranteed to be
  1034    generic pre- and post- command hooks, as they are guaranteed to be
  1034    called in the appropriate contexts for influencing transactions.
  1035    called in the appropriate contexts for influencing transactions.
  1035    Also, hooks like "commit" will be called in all contexts that
  1036    Also, hooks like "commit" will be called in all contexts that
  1036    generate a commit (e.g. tag) and not just the commit command.
  1037    generate a commit (e.g. tag) and not just the commit command.
  1037 
  1038 
  1038 .. note::
  1039 .. note::