Mercurial > hg
annotate tests/test-push-validation.t @ 16458:55982f62651f
commit: add option to amend the working dir parent
The --amend flag can be used to amend the parent of the working directory
with a new commit that contains the changes in the parent in addition to
those currently reported by "hg status", if there are any. The old commit
is stored in a backup bundle in ".hg/strip-backup"(see "hg help bundle"
and "hg help unbundle" on how to restore it).
Message, user and date are taken from the amended commit unless specified.
When a message isn't specified on the command line, the editor will open
with the message of the amended commit.
It is not possible to amend public changesets (see "hg help phases") or
changesets that have children.
Behind the scenes, first commit the update (if there is one) as a regular
child of the current parent. Then create a new commit on the parent's
parent with the updated contents. Then change the working copy parent
to this new combined changeset. Finally, strip the amended commit and
update commit created in the beginning.
An alternative (cleaner?) approach of doing this is suggested here:
http://selenic.com/pipermail/mercurial-devel/2012-March/038540.html
It is currently not possible to amend merge commits or recursively,
this can be added at a later time.
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Wed, 18 Apr 2012 01:20:16 +0300 |
parents | 9910f60a37ee |
children | f2719b387380 |
rev | line source |
---|---|
12279 | 1 $ hg init test |
2 $ cd test | |
3 | |
4 $ cat > .hg/hgrc <<EOF | |
5 > [server] | |
6 > validate=1 | |
7 > EOF | |
8 | |
9 $ echo alpha > alpha | |
10 $ echo beta > beta | |
11 $ hg addr | |
12 adding alpha | |
13 adding beta | |
14 $ hg ci -m 1 | |
15 | |
16 $ cd .. | |
17 $ hg clone test test-clone | |
18 updating to branch default | |
19 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
20 | |
21 $ cd test-clone | |
22 $ cp .hg/store/data/beta.i tmp | |
23 $ echo blah >> beta | |
24 $ hg ci -m '2 (corrupt)' | |
25 $ mv tmp .hg/store/data/beta.i | |
10418
5fc090ba08a6
localrepo: add optional validation (defaults to off) for incoming changes
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
26 |
12279 | 27 Expected to fail: |
28 | |
29 $ hg verify | |
30 checking changesets | |
31 checking manifests | |
32 crosschecking files in changesets and manifests | |
33 checking files | |
34 beta@1: dddc47b3ba30 in manifests not found | |
35 2 files, 2 changesets, 2 total revisions | |
36 1 integrity errors encountered! | |
37 (first damaged changeset appears to be 1) | |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
38 [1] |
10418
5fc090ba08a6
localrepo: add optional validation (defaults to off) for incoming changes
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
39 |
12279 | 40 Expected to fail: |
10418
5fc090ba08a6
localrepo: add optional validation (defaults to off) for incoming changes
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
41 |
12279 | 42 $ hg push |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
43 pushing to $TESTTMP/test (glob) |
12279 | 44 searching for changes |
45 adding changesets | |
46 adding manifests | |
47 adding file changes | |
48 transaction abort! | |
49 rollback completed | |
50 abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify | |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
51 [255] |
12279 | 52 |