docs/from-mq.rst
changeset 192 706a3a57b567
parent 182 33b9cb1ce659
child 208 05d6e3e36980
equal deleted inserted replaced
191:0f1b8119a281 192:706a3a57b567
    26 ---------------------
    26 ---------------------
    27 
    27 
    28 hg qseries
    28 hg qseries
    29 ```````````
    29 ```````````
    30 
    30 
    31 All your work in progress are now real changeset all the time.
    31 All your work in progress is now in real changeset all the time.
    32 
    32 
    33 You can then use standard log to display them. You can use phase revset to
    33 You can use the standard log to display them. You can use the phase revset to
    34 display unfinished business only and template to have the same kind of compact
    34 display unfinished business only and templates to have the same kind of compact
    35 output qseries have.
    35 output qseries has.
    36 
    36 
    37 This will result in something like that::
    37 This will result in something like that::
    38 
    38 
    39   [alias]
    39   [alias]
    40   wip = log -r 'not public()' --template='{rev}:{node|short} {description|firstline}\n'
    40   wip = log -r 'not public()' --template='{rev}:{node|short} {description|firstline}\n'
    41 
    41 
    42 hg qnew
    42 hg qnew
    43 ````````
    43 ````````
    44 
    44 
    45 With evolve you handle standard changeset without additional overlay.
    45 With evolve you handle standard changesets without an additional overlay.
    46 
    46 
    47 Standard changeset are created using hg commit as usual.
    47 Standard changeset are created using hg commit as usual.::
    48 
    48 
    49   $ hg commit
    49   $ hg commit
    50 
    50 
    51 If you want to keep the "wip are not pushed" behavior, you are looking for
    51 If you want to keep the "wip are not pushed" behavior, you are looking for
    52 setting your changeset in the secret phase using the phase command.
    52 setting your changeset in the secret phase using the phase command.
    53 
    53 
    54 Note that you only need it for the first commit you want to be secret. Later
    54 Note that you only need it for the first commit you want to be secret. Later
    55 commit will inherit their parents phase.
    55 commits will inherit their parents phase.
    56 
    56 
    57 If you always want your new commit to be in the secret phase, your should
    57 If you always want your new commit to be in the secret phase, your should
    58 consider updating your configuration:
    58 consider updating your configuration:
    59 
    59 
    60   [phases]
    60   [phases]
    67 currently on. just call:
    67 currently on. just call:
    68 
    68 
    69   $ hg amend
    69   $ hg amend
    70 
    70 
    71 
    71 
    72 This command takes the same option than commit  plus useful switch '-e' (--edit)
    72 This command takes the same options as commit, plus the switch '-e' (--edit)
    73 to edit the commit message.
    73 to edit the commit message in an editor.
    74 
    74 
    75 Amend have also a -c switch which allow you to make and explicit amending
    75 Amend have also a -c switch which allow you to make an explicit amending
    76 commit before rewriting a changeset.
    76 commit before rewriting a changeset.::
    77 
    77 
    78   $ hg record -m 'feature A'
    78   $ hg record -m 'feature A'
    79   # oups, I forget some stuff
    79   # oups, I forget some stuff
    80   $ hg record babar.py
    80   $ hg record babar.py
    81   $ hg amend -c .^ # .^ refer to "working directoy parent, here 'feature A'
    81   $ hg amend -c .^ # .^ refer to "working directoy parent, here 'feature A'
    97           and gracefully merge them.
    97           and gracefully merge them.
    98 
    98 
    99 hg qpush
    99 hg qpush
   100 ````````
   100 ````````
   101 
   101 
   102 When you rewrite changeset, descendant of rewritten changeset are marked as
   102 When you rewrite changesets, descendants of rewritten changesets are marked as
   103 "out of sync". You new to rewrite them on top of the new version of their
   103 "out of sync". You need to rewrite them on top of the new version of their
   104 ancestor.
   104 ancestor.
   105 
   105 
   106 The evolution extension add a command to rewrite the next changeset:
   106 The evolution extension adds a command to rewrite the "out of sync" changesets:::
   107 
   107 
   108   $ hg stabilize
   108   $ hg stabilize
   109 
   109 
   110 You can also decide to do it manually using
   110 You can also decide to do it manually using::
   111 
   111 
   112   $ hg graft -O <old-version>
   112   $ hg graft -O <old-version>
   113 
   113 
   114 or 
   114 or::
   115 
   115 
   116   $ hg rebase -r <revset for old version> -d .
   116   $ hg rebase -r <revset for old version> -d .
   117 
   117 
   118 note: using graft allow you to pick the changeset you want next as the --move
   118 note: using graft allow you to pick the changeset you want next as the --move
   119 option of qpush do.
   119 option of qpush do.
   120 
   120 
   121 
   121 
   122 hg qrm
   122 hg qrm
   123 ```````
   123 ```````
   124 
   124 
   125 evolution introduce a new command to mark a changeset as "not wanted anymore".
   125 evolution introduce a new command to mark a changeset as "not wanted anymore".::
   126 
   126 
   127   $ hg kill <revset>
   127   $ hg kill <revset>
   128 
   128 
   129 hg qfold
   129 hg qfold
   130 `````````
   130 `````````
   137 
   137 
   138 
   138 
   139 or later::
   139 or later::
   140 
   140 
   141   $ hg collapse # XXX not implemented
   141   $ hg collapse # XXX not implemented
   142 
       
   143   $ hg rebase --collapse # XXX not tested
   142   $ hg rebase --collapse # XXX not tested
   144 
   143 
   145 
   144 
   146 hg qdiff
   145 hg qdiff
   147 `````````
   146 `````````
   148 
   147 
   149 ``odiff`` is an alias for `hg diff -r .^` it works as qdiff event outside mq.
   148 ``odiff`` is an alias for `hg diff -r .^` it works as qdiff, but outside mq.
   150 
   149 
   151 
   150 
   152 
   151 
   153 hg qfinish and hg qimport
   152 hg qfinish and hg qimport
   154 ````````````````````````````
   153 ````````````````````````````
   155 
   154 
   156 Is not useful anymore if you want to controll exchange and mutability of
   155 Is not necessary anymore. If you want to control exchange and mutability of
   157 changeset see the phase feature
   156 changesets, see the phase feature
   158 
   157 
   159 
   158 
   160 
   159 
   161 hg qcommit
   160 hg qcommit
   162 ```````````````
   161 ```````````````
   163 
   162 
   164 If you really need to send patches through a versionned mq patches you should
   163 If you really need to send patches through versioned mq patches, you should
   165 look at the qsync extension.
   164 look at the qsync extension.