diff -r 5cec25ce019c -r 8108d566a8b5 tests/test-evolution.t --- a/tests/test-evolution.t Wed Sep 14 22:29:19 2011 +0200 +++ b/tests/test-evolution.t Mon Sep 19 01:11:10 2011 +0200 @@ -4,6 +4,9 @@ > allow_push = * > [alias] > qlog = log --template='{rev} - {node|short} {desc} ({state})\n' + > [diff] + > git = 1 + > unified = 0 > [extensions] > EOF $ echo "states=$(echo $(dirname $TESTDIR))/hgext/states.py" >> $HGRCPATH @@ -59,3 +62,131 @@ 2 - 4538525df7e2 add c (ready) 1 - 7c3bad9141dc add b (published) 0 - 1f0dee641bb7 add a (published) + $ 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 + $ hg states ready + $ 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 + $ hg states ready + + +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