doc: fix grammar, spelling, punctuation
I restrained myself to making only changes that turn bad English into
good English. There are still opportunities to improve, but other
changes require some discussion and review. This change should be
uncontroversial.
$ cat >> $HGRCPATH <<EOF
> [defaults]
> amend=-d "0 0"
> [web]
> push_ssl = false
> allow_push = *
> [phases]
> publish = False
> [alias]
> qlog = log --template='{rev} - {node|short} {desc} ({phase})\n'
> [diff]
> git = 1
> unified = 0
> [extensions]
> hgext.rebase=
> hgext.graphlog=
> EOF
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
$ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "add $1"
> }
$ glog() {
> hg glog --template '{rev}:{node|short}@{branch}({phase}) {desc|firstline}\n' "$@"
> }
various init
$ hg init local
$ cd local
$ mkcommit a
$ mkcommit b
$ cat >> .hg/hgrc << EOF
> [phases]
> publish = True
> EOF
$ hg pull -q . # make 1 public
$ rm .hg/hgrc
$ mkcommit c
$ mkcommit d
$ hg up 1
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ mkcommit e -q
created new head
$ mkcommit f
$ hg qlog
5 - e44648563c73 add f (draft)
4 - fbb94e3a0ecf add e (draft)
3 - 47d2a3944de8 add d (draft)
2 - 4538525df7e2 add c (draft)
1 - 7c3bad9141dc add b (public)
0 - 1f0dee641bb7 add a (public)
test kill and immutable changeset
$ hg log -r 1 --template '{rev} {phase} {obsolete}\n'
1 public stable
$ hg kill 1
abort: cannot obsolete immutable changeset: 7c3bad9141dc
[255]
$ hg log -r 1 --template '{rev} {phase} {obsolete}\n'
1 public stable
test simple kill
$ hg id -n
5
$ hg kill .
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
working directory now at fbb94e3a0ecf
$ hg qlog
4 - fbb94e3a0ecf add e (draft)
3 - 47d2a3944de8 add d (draft)
2 - 4538525df7e2 add c (draft)
1 - 7c3bad9141dc add b (public)
0 - 1f0dee641bb7 add a (public)
test multiple kill
$ hg kill 4 -r 3
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
working directory now at 7c3bad9141dc
$ hg qlog
2 - 4538525df7e2 add c (draft)
1 - 7c3bad9141dc add b (public)
0 - 1f0dee641bb7 add a (public)
test kill with dirty changes
$ hg up 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 4 > g
$ hg add g
$ hg kill .
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
working directory now at 7c3bad9141dc
$ hg st
A g
$ cd ..
##########################
importing Parren test
##########################
$ cat << EOF >> $HGRCPATH
> [ui]
> logtemplate = "{rev}\t{bookmarks}: {desc|firstline} - {author|user}\n"
> EOF
Creating And Updating Changeset
===============================
Setup the Base Repo
-------------------
We start with a plain base repo::
$ hg init main; cd main
$ cat >main-file-1 <<-EOF
> One
>
> Two
>
> Three
> EOF
$ echo Two >main-file-2
$ hg add
adding main-file-1
adding main-file-2
$ hg commit --message base
$ cd ..
and clone this into a new repo where we do our work::
$ hg clone main work
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd work
Create First Patch
------------------
To begin with, we just do the changes that will be the initial version of the changeset::
$ echo One >file-from-A
$ sed -i'' -e s/One/Eins/ main-file-1
$ hg add file-from-A
So this is what we would like our changeset to be::
$ hg diff
diff --git a/file-from-A b/file-from-A
new file mode 100644
--- /dev/null
+++ b/file-from-A
@@ -0,0 +1,1 @@
+One
diff --git a/main-file-1 b/main-file-1
--- a/main-file-1
+++ b/main-file-1
@@ -1,1 +1,1 @@
-One
+Eins
To commit it we just - commit it::
$ hg commit --message "a nifty feature"
and place a bookmark so we can easily refer to it again (which we could have done before the commit)::
$ hg book feature-A
Create Second Patch
-------------------
Let's do this again for the second changeset::
$ echo Two >file-from-B
$ sed -i'' -e s/Two/Zwie/ main-file-1
$ hg add file-from-B
Before committing, however, we need to switch to a new bookmark for the second
changeset. Otherwise we would inadvertently move the bookmark for our first changeset.
It is therefore advisable to always set the bookmark before committing::
$ hg book feature-B
$ hg commit --message "another feature"
So here we are::
$ hg book
feature-A 1:568a468b60fc
* feature-B 2:7b36850622b2
Fix The Second Patch
--------------------
There's a typo in feature-B. We spelled *Zwie* instead of *Zwei*::
$ hg diff --change tip | grep -F Zwie
+Zwie
Fixing this is very easy. Just change::
$ sed -i'' -e s/Zwie/Zwei/ main-file-1
and **amend**::
$ hg amend --note "fix spelling of Zwei"
The `--note` is our commit message for the *update* only. So its only purpose
is to document the evolution of the changeset. If we use `--message` with
`amend`, it replaces the commit message of the changeset itself.
This results in a new single changeset for our amended changeset, and the old
changeset plus the updating changeset are hidden from view by default::
$ hg log
4 feature-B: another feature - test
1 feature-A: a nifty feature - test
0 : base - test
$ hg up feature-A -q
$ hg bookmark -i feature-A
$ sed -i'' -e s/Eins/Un/ main-file-1
(amend of public changeset denied)
$ hg phase --public 0 -v
phase changed for 1 changesets
$ hg amend -c 4
abort: cannot amend non ancestor changeset
[255]
(amend of on ancestors)
$ hg amend --note 'french looks better'
1 new unstable changesets
$ hg log
6 feature-A: a nifty feature - test
4 feature-B: another feature - test
1 : a nifty feature - test
0 : base - test
$ hg up -q 0
$ glog --hidden
o 6:23409eba69a0@default(draft) a nifty feature
|
| x 5:e416e48b2742@default(draft) french looks better
| |
| | o 4:f8111a076f09@default(draft) another feature
| |/
| | x 3:524e478d4811@default(draft) fix spelling of Zwei
| | |
| | x 2:7b36850622b2@default(draft) another feature
| |/
| x 1:568a468b60fc@default(draft) a nifty feature
|/
@ 0:e55e0562ee93@default(public) base
$ hg debugobsolete
524e478d4811d405c8771e4c441de4483bdf8b33 f8111a076f0975cbecb336e2bd3411be22b673fb 0 {'date': '* *', 'user': 'test'} (glob)
7b36850622b2fd159fa30a4fb2a1edd2043b4a14 f8111a076f0975cbecb336e2bd3411be22b673fb 0 {'date': '* *', 'user': 'test'} (glob)
e416e48b27428695d00c2a2cc4a0b9619482e63f 23409eba69a0986e90cd42252852c1e6da97af5b 0 {'date': '* *', 'user': 'test'} (glob)
568a468b60fc99a42d5d4ddbe181caff1eef308d 23409eba69a0986e90cd42252852c1e6da97af5b 0 {'date': '* *', 'user': 'test'} (glob)
$ hg evolve
move:[4] another feature
atop:[6] a nifty feature
merging main-file-1
$ hg log
7 feature-B: another feature - test
6 feature-A: a nifty feature - test
0 : base - test
Test commit -o options
$ hg up 6
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg revert -r 7 --all
adding file-from-B
reverting main-file-1
$ sed -i'' -e s/Zwei/deux/ main-file-1
$ hg commit -m 'another feature that rox' -o 7
created new head
$ hg log
8 feature-B: another feature that rox - test
6 feature-A: a nifty feature - test
0 : base - test
phase change turning obsolete changeset public issue a bumped warning
$ hg phase --hidden --public 7
1 new bumped changesets
all solving bumped troubled
$ hg glog
@ 8 feature-B: another feature that rox - test
|
| o 7 : another feature - test
|/
o 6 feature-A: a nifty feature - test
|
o 0 : base - test
$ hg evolve --any --traceback
recreate:[8] another feature that rox
atop:[7] another feature
computing new diff
commited as 53ff506edef1
$ hg glog
@ 9 feature-B: bumped update to 5f4744038ed5: - test
|
o 7 : another feature - test
|
o 6 feature-A: a nifty feature - test
|
o 0 : base - test
$ hg diff --hidden -r 9 -r 8
$ hg diff -r 9^ -r 9
diff --git a/main-file-1 b/main-file-1
--- a/main-file-1
+++ b/main-file-1
@@ -3,1 +3,1 @@
-Zwei
+deux
$ hg log -r 'bumped()' # no more bumped
$ cd ..
enable general delta
$ cat << EOF >> $HGRCPATH
> [format]
> generaldelta=1
> EOF
$ hg init alpha
$ cd alpha
$ echo 'base' > firstfile
$ hg add firstfile
$ hg ci -m 'base'
$ cd ..
$ hg clone -Ur 0 alpha beta
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
$ cd alpha
$ cat << EOF > A
> We
> need
> some
> kind
> of
> file
> big
> enough
> to
> prevent
> snapshot
> .
> yes
> new
> lines
> are
> useless
> .
> EOF
$ hg add A
$ hg commit -m 'adding A'
$ hg mv A B
$ echo '.' >> B
$ hg amend -m 'add B'
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 4 changesets, 4 total revisions
$ hg --config extensions.hgext.mq= strip 'extinct()'
abort: empty revision set
[255]
$ hg --config extensions.hgext.mq= strip --hidden 'extinct()'
saved backup bundle to $TESTTMP/alpha/.hg/strip-backup/e87767087a57-backup.hg
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 2 changesets, 2 total revisions
$ cd ..
Clone just this branch
$ cd beta
$ hg pull -r tip ../alpha
pulling from ../alpha
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
$ hg up
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
Test graft --obsolete/--old-obsolete
$ hg init test-graft
$ cd test-graft
$ mkcommit 0
$ mkcommit 1
$ mkcommit 2
$ mkcommit 3
$ hg up -qC 0
$ mkcommit 4
created new head
$ glog --hidden
@ 4:ce341209337f@default(draft) add 4
|
| o 3:0e84df4912da@default(draft) add 3
| |
| o 2:db038628b9e5@default(draft) add 2
| |
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg graft -r3 -O
grafting revision 3
$ hg graft -r1 -o 2
grafting revision 1
$ glog --hidden
@ 6:acb28cd497b7@default(draft) add 1
|
o 5:0b9e50c35132@default(draft) add 3
|
o 4:ce341209337f@default(draft) add 4
|
| x 3:0e84df4912da@default(draft) add 3
| |
| x 2:db038628b9e5@default(draft) add 2
| |
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg debugobsolete
0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 {'date': '* *', 'user': 'test'} (glob)
db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 {'date': '* *', 'user': 'test'} (glob)
Test graft --continue
$ hg up -qC 0
$ echo 2 > 1
$ hg ci -Am conflict 1
created new head
$ hg up -qC 6
$ hg graft -O 7
grafting revision 7
merging 1
warning: conflicts during merge.
merging 1 incomplete! (edit conflicts, then use 'hg resolve --mark')
abort: unresolved conflicts, can't continue
(use hg resolve and hg graft --continue)
[255]
$ hg log -r7 --template '{rev}:{node|short} {obsolete}\n'
7:a5bfd90a2f29 stable
$ echo 3 > 1
$ hg resolve -m 1
$ hg graft --continue -O
grafting revision 7
$ glog --hidden
@ 8:920e58bb443b@default(draft) conflict
|
| x 7:a5bfd90a2f29@default(draft) conflict
| |
o | 6:acb28cd497b7@default(draft) add 1
| |
o | 5:0b9e50c35132@default(draft) add 3
| |
o | 4:ce341209337f@default(draft) add 4
|/
| x 3:0e84df4912da@default(draft) add 3
| |
| x 2:db038628b9e5@default(draft) add 2
| |
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg debugobsolete
0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 {'date': '* *', 'user': 'test'} (glob)
db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 {'date': '* *', 'user': 'test'} (glob)
a5bfd90a2f29c7ccb8f917ff4e5013a9053d0a04 920e58bb443b73eea9d6d65570b4241051ea3229 0 {'date': '* *', 'user': 'test'} (glob)
Test touch
$ glog
@ 8:920e58bb443b@default(draft) conflict
|
o 6:acb28cd497b7@default(draft) add 1
|
o 5:0b9e50c35132@default(draft) add 3
|
o 4:ce341209337f@default(draft) add 4
|
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg touch
$ glog
@ 9:*@default(draft) conflict (glob)
|
o 6:acb28cd497b7@default(draft) add 1
|
o 5:0b9e50c35132@default(draft) add 3
|
o 4:ce341209337f@default(draft) add 4
|
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg touch .
$ glog
@ 10:*@default(draft) conflict (glob)
|
o 6:acb28cd497b7@default(draft) add 1
|
o 5:0b9e50c35132@default(draft) add 3
|
o 4:ce341209337f@default(draft) add 4
|
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
Test fold
$ rm *.orig
$ hg fold
no revision to fold
[1]
$ hg fold 6::10
2 changesets folded
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ glog
@ 11:*@default(draft) add 1 (glob)
|
o 5:0b9e50c35132@default(draft) add 3
|
o 4:ce341209337f@default(draft) add 4
|
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg log -r 11 --template '{desc}\n'
add 1
conflict
$ hg debugrebuildstate
$ hg st
Test fold with wc parent is not the head of the folded revision
$ hg up 4
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg fold 4::11
3 changesets folded
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ glog
@ 12:*@default(draft) add 4 (glob)
|
| o 1:73d38bb17fd7@default(draft) add 1
|/
o 0:8685c6d34325@default(draft) add 0
$ hg log -r 12 --template '{desc}\n'
add 4
add 3
add 1
conflict
$ hg debugrebuildstate
$ hg st
Test olog
$ hg olog
4 : add 4 - test
5 : add 3 - test
11 : add 1 - test