doc/simple-tuto.t
author Alain Leufroy <alain.leufroy@logilab.fr>
Sun, 25 Sep 2011 12:46:45 +0200
changeset 98 8ad5c760c708
parent 95 5dcece86aeb0
permissions -rw-r--r--
[states] make enabling state saftier * Fix the lower state heads while enabling a state. * Add a --clever opiton that do not fix the lower heads (as earlier) * Add test for enable/disable state
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     1
Mutable History and collaboration
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
=====================================================================
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     4
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     5
History mutation
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     6
=====================
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     7
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     8
.. Albert Beugras
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     9
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    10
.. René de Robert
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    11
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    12
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    13
Here is small introduction of 
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    14
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    15
Single Developer Usage
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    16
======================
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    17
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    18
This tutorial shows how to use evolution to replace the basics of *mq*.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    19
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    20
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    21
Amending a changeset
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    22
---------------------
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    23
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    24
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    25
First there is some setup phase you will understand later.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    26
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    27
there is a local repository and a remote one.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    28
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    29
Please close your eyes.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    30
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    31
  $ hg init local
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    32
  $ cat >> local/.hg/hgrc << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    33
  > [paths]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    34
  > remote = ../remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    35
  > [ui]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    36
  > user = Albert Beugras
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    37
  > [diff]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    38
  > git = 1
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    39
  > [alias]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    40
  > amend = amend -d '0 0'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    41
  > tlog = log --template "{node|short}: '{desc}'\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    42
  > ttlog = log --template "{node|short}: '{desc}' ({state})\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    43
  > tglog = log -G --template "{node|short}: '{desc}' {branches}\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    44
  > [extensions]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    45
  > hgext.graphlog=
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    46
  > hgext.rebase=
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    47
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    48
  $ echo "states=$(echo $(dirname $TESTDIR))/hgext/states.py" >> local/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    49
  $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> local/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    50
  $ echo "evolution=$(echo $(dirname $TESTDIR))/hgext/evolution.py" >> local/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    51
  $ hg init remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    52
  $ cat >> remote/.hg/hgrc << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    53
  > [paths]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    54
  > local = ../local
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    55
  > [ui]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    56
  > user = René de Robert
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    57
  > [diff]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    58
  > git = 1
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    59
  > [alias]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    60
  > amend = amend -d '0 0'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    61
  > tlog = log --template "{node|short}: '{desc}' {branches}\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    62
  > ttlog = log --template "{node|short}: '{desc}' {state}\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    63
  > tglog = log -G --template "{node|short}: '{desc}' {branches}\n"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    64
  > [extensions]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    65
  > hgext.graphlog=
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    66
  > hgext.rebase=
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    67
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    68
  $ echo "states=$(echo $(dirname $TESTDIR))/hgext/states.py" >> remote/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    69
  $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> remote/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    70
  $ echo "evolution=$(echo $(dirname $TESTDIR))/hgext/evolution.py" >> remote/.hg/hgrc
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    71
  $ cd local
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    72
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    73
You can reopen you eyes.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    74
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    75
Now we make a first version of our shopping list.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    76
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    77
  $ cat  >> shopping << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    78
  > Spam
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    79
  > Whizzo butter
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    80
  > Albatross
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    81
  > Rat (rather a lot)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    82
  > Jugged fish
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    83
  > Blancmange
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    84
  > Salmon mousse
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    85
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    86
  $ hg commit -A -m "Monthy Python Shopping list"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    87
  adding shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    88
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    89
We share this first version with the outside.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    90
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    91
  $ hg push remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    92
  pushing to $TESTTMP/remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    93
  searching for changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    94
  adding changesets
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    95
  adding manifests
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    96
  adding file changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    97
  added 1 changesets with 1 changes to 1 files
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    98
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    99
Later I add additional item to my list
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   100
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   101
  $ cat >> shopping << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   102
  > Egg
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   103
  > Suggar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   104
  > Vinegar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   105
  > Oil
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   106
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   107
  $ hg commit -m "adding condiment"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   108
  $ cat >> shopping << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   109
  > Bananos
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   110
  > Pear
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   111
  > Apple
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   112
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   113
  $ hg commit -m "adding fruit"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   114
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   115
I now have the following history:
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   116
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   117
  $ hg tlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   118
  d85de4546133: 'adding fruit'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   119
  4d5dc8187023: 'adding condiment'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   120
  7e82d3f3c2cb: 'Monthy Python Shopping list'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   121
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   122
But, I just notice, I made a typo in Banana.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   123
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   124
  $ hg export tip
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   125
  # HG changeset patch
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   126
  # User test
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   127
  # Date 0 0
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   128
  # Node ID d85de4546133030c82d257bbcdd9b1b416d0c31c
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   129
  # Parent  4d5dc81870237d492284826e21840b2ca00e26d1
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   130
  adding fruit
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   131
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   132
  diff --git a/shopping b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   133
  --- a/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   134
  +++ b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   135
  @@ -9,3 +9,6 @@
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   136
   Suggar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   137
   Vinegar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   138
   Oil
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   139
  +Bananos
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   140
  +Pear
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   141
  +Apple
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   142
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   143
hopefully. I can use hg amend to rewrite my faulty changeset!
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   144
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   145
  $ sed -i'' -e s/Bananos/Banana/ shopping
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   146
  $ hg diff
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   147
  diff --git a/shopping b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   148
  --- a/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   149
  +++ b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   150
  @@ -9,6 +9,6 @@
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   151
   Suggar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   152
   Vinegar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   153
   Oil
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   154
  -Bananos
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   155
  +Banana
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   156
   Pear
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   157
   Apple
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   158
  $ hg amend
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   159
  abort: can not rewrite immutable changeset d85de4546133
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   160
  [255]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   161
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   162
By default all changeset are considered "published" and can't be rewrittent.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   163
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   164
 $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   165
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   166
You need to enable a mutable state in your repo the "ready" one
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   167
98
8ad5c760c708 [states] make enabling state saftier
Alain Leufroy <alain.leufroy@logilab.fr>
parents: 95
diff changeset
   168
  $ hg states ready --clever
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   169
  $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   170
  d85de4546133: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   171
  4d5dc8187023: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   172
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   173
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   174
Notice that changeset you already shared with the outside have been keep
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   175
published.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   176
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   177
The changeset we want to rewrite is now in a mutable state.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   178
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   179
  $ hg amend
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   180
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   181
A new changeset with the right diff replace the wrong one.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   182
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   183
  $ hg tlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   184
  0cacb48f4482: 'adding fruit'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   185
  4d5dc8187023: 'adding condiment'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   186
  7e82d3f3c2cb: 'Monthy Python Shopping list'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   187
  $ hg export tip
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   188
  # HG changeset patch
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   189
  # User test
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   190
  # Date 0 0
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   191
  # Node ID 0cacb48f44828d2fd31c4e45e18fde32a5b2f07b
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   192
  # Parent  4d5dc81870237d492284826e21840b2ca00e26d1
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   193
  adding fruit
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   194
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   195
  diff --git a/shopping b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   196
  --- a/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   197
  +++ b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   198
  @@ -9,3 +9,6 @@
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   199
   Suggar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   200
   Vinegar
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   201
   Oil
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   202
  +Banana
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   203
  +Pear
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   204
  +Apple
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   205
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   206
Getting Ride of branchy history
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   207
----------------------------------
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   208
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   209
While I was working on my list. someone help made a change remotly.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   210
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   211
close your eyes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   212
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   213
  $ cd ../remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   214
  $ hg up -q
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   215
  $ sed -i'' -e 's/Spam/Spam Spam Spam/' shopping
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   216
  $ hg ci -m 'SPAM'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   217
  $ cd ../local
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   218
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   219
open your eyes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   220
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   221
  $ hg pull remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   222
  pulling from $TESTTMP/remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   223
  searching for changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   224
  adding changesets
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   225
  adding manifests
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   226
  adding file changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   227
  added 1 changesets with 1 changes to 1 files (+1 heads)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   228
  (run 'hg heads .' to see heads, 'hg merge' to merge)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   229
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   230
I now have a new heads. Note that the remote head is immutable
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   231
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   232
  $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   233
  9ca060c80d74: 'SPAM' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   234
  0cacb48f4482: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   235
  4d5dc8187023: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   236
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   237
  $ hg tglog -r "::(9ca060c80d74 + 0cacb48f4482)"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   238
  o  9ca060c80d74: 'SPAM'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   239
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   240
  | @  0cacb48f4482: 'adding fruit'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   241
  | |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   242
  | o  4d5dc8187023: 'adding condiment'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   243
  |/
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   244
  o  7e82d3f3c2cb: 'Monthy Python Shopping list'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   245
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   246
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   247
instead of merging my head with the new one. I'm going to rebase my work
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   248
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   249
  $ hg diff
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   250
  $ hg rebase -d 9ca060c80d74 -s 4d5dc8187023
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   251
  merging shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   252
  merging shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   253
  merging shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   254
  merging shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   255
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   256
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   257
My local work is now rebase on the remote one.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   258
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   259
  $ hg kill e7a71e229632 ad97bbd3e37d # XXX fix me instead
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   260
  $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   261
  387187ad9bd9: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   262
  dfd3a2d7691e: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   263
  9ca060c80d74: 'SPAM' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   264
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   265
  $ hg tglog -r '::.'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   266
  @  387187ad9bd9: 'adding fruit'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   267
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   268
  o  dfd3a2d7691e: 'adding condiment'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   269
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   270
  o  9ca060c80d74: 'SPAM'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   271
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   272
  o  7e82d3f3c2cb: 'Monthy Python Shopping list'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   273
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   274
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   275
Removing changeset
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   276
------------------------
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   277
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   278
I add new item to my list
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   279
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   280
  $ cat >> shopping << EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   281
  > car
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   282
  > bus
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   283
  > plane
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   284
  > boat
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   285
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   286
  $ hg ci -m 'transport'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   287
  $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   288
  d58c77aa15d7: 'transport' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   289
  387187ad9bd9: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   290
  dfd3a2d7691e: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   291
  9ca060c80d74: 'SPAM' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   292
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   293
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   294
I have a new commit but I realize that don't want it. (transport shop list does
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   295
not fit well in my standard shopping list)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   296
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   297
  $ hg kill . # . is for working directory parent.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   298
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   299
  working directory now at 387187ad9bd9
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   300
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   301
The silly changeset is gone.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   302
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   303
  $ hg ttlog
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   304
  387187ad9bd9: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   305
  dfd3a2d7691e: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   306
  9ca060c80d74: 'SPAM' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   307
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   308
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   309
Reordering changeset
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   310
------------------------
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   311
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   312
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   313
We create two changeset.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   314
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   315
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   316
  $ cat >> shopping << EOF
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   317
  > Shampoo
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   318
  > Toothbrush
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   319
  > ... More bathroom stuff to come
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   320
  > Towel
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   321
  > Soap
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   322
  > EOF
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   323
  $ hg ci -m 'bathroom stuff' -q # XXX remove the -q
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   324
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   325
  $ sed -i'' -e 's/Spam/Spam Spam Spam/g' shopping
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   326
  $ hg ci -m 'SPAM SPAM'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   327
  $ hg ttlog
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   328
  c48f32fb1787: 'SPAM SPAM' (ready)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   329
  8d39a843582d: 'bathroom stuff' (ready)
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   330
  387187ad9bd9: 'adding fruit' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   331
  dfd3a2d7691e: 'adding condiment' (ready)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   332
  9ca060c80d74: 'SPAM' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   333
  7e82d3f3c2cb: 'Monthy Python Shopping list' (published)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   334
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   335
.. note: don't amend changeset 7e82d3f3c2cb or 9ca060c80d74 as they are
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   336
immutable.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   337
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   338
I now want to push to remote all my change but the bathroom one that i'm not totally happy with yet.
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   339
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   340
To be able to push "SPAM SPAM" I need a version of "SPAM SPAM" not children of "bathroom stuff"
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   341
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   342
You can use rebase or relocate for that:
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   343
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   344
  $ hg relocate 'p1(8d39a843582d)' --traceback
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   345
  merging shopping
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   346
  $ hg tglog -r '::(. + 8d39a843582d)'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   347
  @  02e33960e937: 'SPAM SPAM'
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   348
  |
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   349
  | o  8d39a843582d: 'bathroom stuff'
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   350
  |/
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   351
  o  387187ad9bd9: 'adding fruit'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   352
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   353
  o  dfd3a2d7691e: 'adding condiment'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   354
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   355
  o  9ca060c80d74: 'SPAM'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   356
  |
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   357
  o  7e82d3f3c2cb: 'Monthy Python Shopping list'
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   358
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   359
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   360
We have a new SPAM SPAM version without the bathroom stuff
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   361
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   362
  $ grep Spam shopping  # enouth spamm
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   363
  Spam Spam Spam Spam Spam Spam Spam Spam Spam
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   364
  $ grep Toothbrush shopping # no Toothbrush
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   365
  [1]
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   366
  $ hg export .
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   367
  # HG changeset patch
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   368
  # User test
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   369
  # Date 0 0
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   370
  # Node ID 02e33960e937ad1bd59241ebdafd7a2494240ddf
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   371
  # Parent  387187ad9bd9d8f9a00a9fa804a26231db547429
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   372
  SPAM SPAM
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   373
  
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   374
  diff --git a/shopping b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   375
  --- a/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   376
  +++ b/shopping
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   377
  @@ -1,4 +1,4 @@
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   378
  -Spam Spam Spam
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   379
  +Spam Spam Spam Spam Spam Spam Spam Spam Spam
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   380
   Whizzo butter
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   381
   Albatross
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   382
   Rat (rather a lot)
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   383
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   384
we can now push our change:
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   385
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   386
  $ hg push -r . remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   387
  pushing to $TESTTMP/remote
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   388
  searching for changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   389
  adding changesets
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   390
  adding manifests
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   391
  adding file changes
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   392
  added 3 changesets with 3 changes to 1 files
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   393
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   394
for simplicity shake we relocate the bathroom changeset
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   395
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   396
  $ hg relocate -r 8d39a843582d 02e33960e937
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   397
  merging shopping
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   398
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   399
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   400
Splitting change
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   401
------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   402
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   403
To be done (currently achieve with "two commit + debugobsolete")
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   404
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   405
Collapsing change
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   406
------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   407
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   408
To be done (currently achieve with "revert + debugobsolete" or "rebase --collapse")
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   409
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   410
collaboration
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   411
====================
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   412
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   413
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   414
sharing mutable changeset
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   415
----------------------------
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   416
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   417
To share mutable changeset with other just check that both have the "ready"
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   418
state activated. Otherwise you will get the previously observe behavior where
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   419
exchanged changeset are automatically published.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   420
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   421
  $ cd ../remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   422
  $ hg states 
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   423
  published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   424
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   425
The remote repository have only the immutable "published" state activated. Any
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   426
changeset echanged from "local" to "remote" will be set in the publised state:
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   427
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   428
  $ hg -R ../local push -f remote # XXX we should pull but the support is awful
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   429
  pushing to $TESTTMP/remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   430
  searching for changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   431
  adding changesets
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   432
  adding manifests
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   433
  adding file changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   434
  added 1 changesets with 1 changes to 1 files
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   435
  $ hg ttlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   436
  a3515e5d0332: 'bathroom stuff' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   437
  02e33960e937: 'SPAM SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   438
  387187ad9bd9: 'adding fruit' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   439
  dfd3a2d7691e: 'adding condiment' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   440
  9ca060c80d74: 'SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   441
  7e82d3f3c2cb: 'Monthy Python Shopping list' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   442
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   443
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   444
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   445
We do not want to publish the "bathroom changeset". Let's rollback the last transaction
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   446
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   447
  $ hg rollback
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   448
  repository tip rolled back to revision 4 (undo push)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   449
  working directory now based on revision 1
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   450
  $ hg ttlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   451
  02e33960e937: 'SPAM SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   452
  387187ad9bd9: 'adding fruit' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   453
  dfd3a2d7691e: 'adding condiment' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   454
  9ca060c80d74: 'SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   455
  7e82d3f3c2cb: 'Monthy Python Shopping list' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   456
  $ rm ../local/.hg/states/published-heads     # XXX USE --exact
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   457
  $ hg -R ../local publish 02e33960e937 # XXX FIX THE BUG
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   458
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   459
To enable the mutable "ready" state in a repository, use the states command.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   460
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   461
  $ hg states ready
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   462
  $ hg states 
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   463
  published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   464
  ready
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   465
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   466
I can nom exchange mutable changeset between "remote" and "local" repository.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   467
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   468
  $ hg pull local # XXX We pull too much stuff
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   469
  pulling from $TESTTMP/local
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   470
  searching for changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   471
  adding changesets
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   472
  adding manifests
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   473
  adding file changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   474
  added 10 changesets with 10 changes to 1 files (+5 heads)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   475
  (run 'hg heads' to see heads, 'hg merge' to merge)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   476
  $ hg ttlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   477
  a3515e5d0332: 'bathroom stuff' ready
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   478
  02e33960e937: 'SPAM SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   479
  387187ad9bd9: 'adding fruit' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   480
  dfd3a2d7691e: 'adding condiment' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   481
  9ca060c80d74: 'SPAM' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   482
  7e82d3f3c2cb: 'Monthy Python Shopping list' published
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   483
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   484
Rebasing out-of-sync change after update
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   485
----------------------------------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   486
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   487
Remotely someone add a new changeset on top of our mutable "bathroom" on.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   488
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   489
  $ hg up a3515e5d0332 -q
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   490
  $ cat >> shopping << EOF
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   491
  > Giraffe
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   492
  > Rhino
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   493
  > Lion
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   494
  > Bear
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   495
  > EOF
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   496
  $ hg ci -m 'animals' -q # XXX remove the -q
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   497
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   498
While this time locally, we rebase the updated the "bathroom changeset"
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   499
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   500
  $ cd ../local
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   501
  $ hg up a3515e5d0332 -q
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   502
  $ sed -i'' -e 's/... More bathroom stuff to come/Bath Robe/' shopping
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   503
  $ hg amend
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   504
  $ hg tlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   505
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   506
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   507
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   508
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   509
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   510
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   511
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   512
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   513
When we pull from remote again we get an unstable state!
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   514
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   515
  $ hg pull remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   516
  pulling from $TESTTMP/remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   517
  searching for changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   518
  adding changesets
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   519
  adding manifests
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   520
  adding file changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   521
  added 1 changesets with 1 changes to 1 files (+1 heads)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   522
  (run 'hg heads .' to see heads, 'hg merge' to merge)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   523
  $ hg tlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   524
  0b061760b677: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   525
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   526
  a3515e5d0332: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   527
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   528
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   529
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   530
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   531
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   532
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   533
The new changeset "animal" is based one an old changeset of "bathroom". You can
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   534
see both version showing up the log.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   535
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   536
  $ hg tglog -r '::(962d3a7d27ad + 0b061760b677)'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   537
  o  0b061760b677: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   538
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   539
  | @  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   540
  | |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   541
  o |  a3515e5d0332: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   542
  |/
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   543
  o  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   544
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   545
  o  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   546
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   547
  o  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   548
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   549
  o  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   550
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   551
  o  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   552
  
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   553
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   554
In hgviewn there is a nice doted relation highlighting 962d3a7d27ad  is a new
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   555
version of a3515e5d0332. this is not yet ported to graphlog.
93
1b962aaf0c7d docs: Small tutorial
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   556
95
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   557
To resolve this unstable state, you need to relocate 0b061760b677 onto
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   558
962d3a7d27ad the "hg evolve" will make the thinking for you and suggest it to
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   559
you.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   560
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   561
  $ hg evolve
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   562
  hg relocate --rev 0b061760b677 962d3a7d27ad
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   563
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   564
Let's do it
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   565
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   566
  $ hg relocate --rev 0b061760b677 962d3a7d27ad
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   567
  merging shopping
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   568
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   569
The old vesion of bathroom is hidden again now.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   570
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   571
  $ hg tlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   572
  39a85a192689: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   573
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   574
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   575
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   576
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   577
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   578
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   579
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   580
We can push this evolution to remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   581
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   582
  $ hg push -f remote # XXX should not require -f
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   583
  pushing to $TESTTMP/remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   584
  searching for changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   585
  adding changesets
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   586
  adding manifests
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   587
  adding file changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   588
  added 2 changesets with 2 changes to 1 files (+1 heads)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   589
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   590
remote get a warning that current working directory is based on an obsolete changeset
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   591
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   592
  $ cd ../remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   593
  $ hg up . # XXX "loulz"
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   594
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   595
  Working directory parent is obsolete
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   596
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   597
  $ hg up 39a85a192689
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   598
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   599
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   600
Relocating out-of-sync change after kill
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   601
----------------------------------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   602
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   603
The remote guy keep working
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   604
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   605
  $ sed -i'' -e 's/Spam/Spam Spam Spam Spam/g' shopping
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   606
  $ hg commit -m "SPAM SPAM SPAM"
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   607
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   608
Work I can keep getting localy
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   609
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   610
  $ cd ../local
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   611
  $ hg pull remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   612
  pulling from $TESTTMP/remote
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   613
  searching for changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   614
  adding changesets
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   615
  adding manifests
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   616
  adding file changes
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   617
  added 1 changesets with 1 changes to 1 files
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   618
  (run 'hg update' to get a working copy)
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   619
  $ hg tlog
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   620
  e768beeb835c: 'SPAM SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   621
  39a85a192689: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   622
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   623
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   624
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   625
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   626
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   627
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   628
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   629
In the mean time I noticed you can't buy animals in a super market and I kill the animal changeset:
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   630
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   631
  $ hg kill 39a85a192689 # issue warning here
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   632
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   633
  working directory now at 962d3a7d27ad
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   634
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   635
The animals changeset is still displayed because the "SPAM SPAM SPAM" changeset
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   636
is neither dead or obsolete.  My repository is in an unstable state again.
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   637
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   638
  $ hg tlog 
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   639
  e768beeb835c: 'SPAM SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   640
  39a85a192689: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   641
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   642
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   643
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   644
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   645
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   646
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   647
  $ hg tglog  -r '::e768beeb835c'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   648
  o  e768beeb835c: 'SPAM SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   649
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   650
  o  39a85a192689: 'animals'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   651
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   652
  @  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   653
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   654
  o  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   655
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   656
  o  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   657
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   658
  o  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   659
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   660
  o  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   661
  |
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   662
  o  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   663
  
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   664
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   665
#  $ hg evolve # XXX not ready yet
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   666
#  hg relocate --rev  e768beeb835c 962d3a7d27ad
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   667
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   668
  $ hg relocate -r  e768beeb835c 'p1(39a85a192689)'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   669
  merging shopping
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   670
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   671
  $ hg tlog 
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   672
  19098f8178f3: 'SPAM SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   673
  962d3a7d27ad: 'bathroom stuff'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   674
  02e33960e937: 'SPAM SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   675
  387187ad9bd9: 'adding fruit'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   676
  dfd3a2d7691e: 'adding condiment'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   677
  9ca060c80d74: 'SPAM'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   678
  7e82d3f3c2cb: 'Monthy Python Shopping list'
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   679
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   680
Handling Conflicting amend
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   681
----------------------------------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   682
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   683
We can detect that multiple diverging//conflicting amend have been made. There
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   684
will be a "evol-merge" command to merge conflicting amend
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   685
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   686
collaboration
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   687
====================
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   688
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   689
Turning changeset immutable
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   690
----------------------------------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   691
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   692
* push on published//only repo
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   693
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   694
* tag
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   695
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   696
* explicite published command
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   697
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   698
Handling Invalid amend on published changeset
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   699
----------------------------------------------
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   700
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   701
you can't amend published changeset. changeset that do this will have an "invalid amend" obsolete-status
5dcece86aeb0 improve tuto
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 93
diff changeset
   702