Mercurial > evolve
changeset 787:a9277d11db47
merge stable into default.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 22 Jan 2014 14:30:45 -0800 |
parents | 7eaad1101242 (current diff) 59c78fd80a0b (diff) |
children | e973dd5bf583 |
files | |
diffstat | 1 files changed, 28 insertions(+), 48 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/evolve-faq.rst Mon Jan 20 10:57:10 2014 +0100 +++ b/docs/evolve-faq.rst Wed Jan 22 14:30:45 2014 -0800 @@ -12,13 +12,12 @@ Just use commit as usual. New changesets will be in the `draft` phase. -Rewrite a changeset: ``amend`` +Rewrite a changeset: ``commit --amend`` ------------------------------------------------------------ -A new command ``hg amend`` is added by the extension. It writes a new -changeset combining working-directory parent changes and parent. It -will work on any `draft` or `secret` changeset. It will not work on -`public` changesets. +It writes a new changeset combining working-directory parent changes and parent. +It will work on any `draft` or `secret` changeset. It will not work on `public` +changesets. To understand what the result of amend will be I use the two following aliases [#]_:: @@ -29,47 +28,22 @@ # status what amend will look like pstatus=status --rev .^ -It takes various options to pick an author, a date, and the branch of the -result (see ``hg help amend`` for details). - This command can even be invoked on changesets with children, provided none are public. -.. note:: As the amend command is very similar to mq's ``qrefresh``, a ``refresh`` - alias for amend is also available. But note that contrary to - ``qrefresh``, ``amend`` does not exclude changes on file not specified - on the command line. - - XXX add idank example - - .. [#] (defined by the evolve extension for you) -Move a changeset: ``graft`` +Move a changeset: ``grab`` ------------------------------------------------------------ -The graft command introduced in 2.0 allows you to "copy changes from other -branches onto the current branch". - -The graft command has been altered to allow the creation of an -obsolete marker indicating both the result cset and its source -(actually recording changeset movements). - -This is achieved using a new flag `-O` (or `old-obsolete`) [#]_. - +You can use ``hg grab <rev>`` to move a rev at your current location, making the +old version obsolete. -XXX example - -.. warning:: when using graft --continue after conflict resolution you **MUST** - pass `-O` or `-o` flag again because they are not saved for now +.. note:: grab is an alias for ``hg rebase --dest . --rev $@; hg up <result>`` -.. [#] add this `-O` to graft instead of a dedicated command is probably - abusive. But this was very convenient for experimental purposes. - This will likely change in non experimental release. - Delete a changeset: ``prune`` ------------------------------------------------------------ @@ -77,7 +51,8 @@ Just use ``hg prune <some-rev>``. -Moving within the history: ``up`` ``gdown`` and ``gup`` + +Moving within the history: ``gdown`` and ``gup`` ------------------------------------------------------------ While working on mutable part of the history you often need to move between @@ -86,6 +61,8 @@ You just need to use standard update to work with evolve. For convenience, you can use ``hg gup`` to move to the child commit or ``hg gdown`` to move to the parent commit. +Those command have ``previous`` and ``next`` alias. + .. note:: Those commands only exist for the convenience of getting qpush and qpop feeling back. @@ -94,6 +71,12 @@ You can use ``hg fold`` to collapse multiple changesets in a single one. +It takes two forms: + +``hg fold <rev>`` folds everything from you current changeset to `<rev>` + +``hg fold -r <revset>`` fold everything changeset matching the revset together. + Getting changes out of a commit ------------------------------------------------------------ @@ -154,8 +137,8 @@ You can still use rebase to move a whole segment of the changeset graph together. -.. warning:: Beware that rebasing obsolete changesets will result in - conflicting versions of the changesets. +.. warning:: Beware that rebasing changesets already obsolete will likely result in + divergent versions of the changesets. Resolve history troubles: ``evolve`` ------------------------------------------------------------ @@ -166,8 +149,9 @@ When you are finished amending a given changeset, you will want to declare it stable, in other words rebase its former descendants on its -newest version. This is not done automatically to avoid the -proliferation of useless hidden changesets. +newest version. + +You can also use evolve to solve `bumped` and `divergent` changeset/ Fix my history afterward: ``prune -n`` @@ -176,20 +160,15 @@ Sometimes you need to create an obsolete marker by hand. This may happen when upstream has applied some of your patches for example. -you can use ``hg prune --new <new-changeset> <old-changeset>`` to add obsolete +you can use ``hg prune <old-changeset> --succ <new-changeset>`` to add obsolete marker. -Export to mq: ``synchronize`` ------------------------------------------------------------- - -Another extension allows to export your changes to mq. - View diff from the last amend ------------------------------------------------------------ An ``odiff`` alias have been added by ``enable.sh`` -:: +:: [alias] odiff = diff --rev 'limit(precursors(.),1)' --rev . @@ -221,9 +200,11 @@ Extinct changesets are hidden using the *hidden* feature of mercurial. -Only ``hg log``, ``hg glog`` and ``hgview`` support it, other +Only ``hg log`` and ``hgview`` support it, other graphical viewer do not. +You can use ``hg log --graph --hidden`` from the command line + @@ -232,4 +213,3 @@ -