##// END OF EJS Templates
wireprotov2: define and implement "manifestdata" command...
wireprotov2: define and implement "manifestdata" command The added command can be used for obtaining manifest data. Given a manifest path and set of manifest nodes, data about manifests can be retrieved. Unlike changeset data, we wish to emit deltas to describe manifest revisions. So the command uses the relatively new API for building delta requests and emitting them. The code calls into deltaparent(), which I'm not very keen of. There's still work to be done in delta generation land so implementation details of storage (e.g. exactly one delta is stored/available) don't creep into higher levels. But we can worry about this later (there is already a TODO on imanifestorage tracking this). On the subject of parent deltas, the server assumes parent revisions exist on the receiving end. This is obviously wrong for shallow clone. I've added TODOs to add a mechanism to the command to allow clients to specify desired behavior. This shouldn't be too difficult to implement. Another big change is that the client must explicitly request manifest nodes to retrieve. This is a major departure from "getbundle," where the server derives relevant manifests as it iterates changesets and sends them automatically. As implemented, the client must transmit each requested node to the server. At 20 bytes per node, we're looking at 2 MB per 100,000 nodes. Plus wire encoding overhead. This isn't ideal for clients with limited upload bandwidth. I plan to address this in the future by allowing alternate mechanisms for defining the revisions to retrieve. One idea is to define a range of changeset revisions whose manifest revisions to retrieve (similar to how "changesetdata" works). We almost certainly want an API to look up an individual manifest by node. And that's where I've chosen to start with the implementation. Again, a theme of this early exchangev2 work is I want to start by building primitives for accessing raw repository data first and see how far we can get with those before we need more complexity. Differential Revision: https://phab.mercurial-scm.org/D4488

File last commit:

r39516:89630d0b default
r39673:c7a7c7e8 default
Show More
test-strip.t
1348 lines | 38.9 KiB | text/troff | Tads3Lexer
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ echo "[extensions]" >> $HGRCPATH
$ echo "strip=" >> $HGRCPATH
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 $ echo "drawdag=$TESTDIR/drawdag.py" >> $HGRCPATH
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
$ restore() {
> hg unbundle -q .hg/strip-backup/*
> rm .hg/strip-backup/*
> }
$ teststrip() {
> hg up -C $1
> echo % before update $1, strip $2
> hg parents
> hg --traceback strip $2
> echo % after update $1, strip $2
> hg parents
> restore
> }
$ hg init test
$ cd test
$ echo foo > bar
$ hg ci -Ama
adding bar
$ echo more >> bar
$ hg ci -Amb
$ echo blah >> bar
$ hg ci -Amc
$ hg up 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo blah >> bar
$ hg ci -Amd
created new head
$ echo final >> bar
$ hg ci -Ame
$ hg log
changeset: 4:443431ffac4f
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
changeset: 3:65bd5f99a4a3
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
changeset: 2:264128213d29
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ teststrip 4 4
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
% before update 4, strip 4
changeset: 4:443431ffac4f
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update 4, strip 4
changeset: 3:65bd5f99a4a3
tag: tip
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
$ teststrip 4 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% before update 4, strip 3
changeset: 4:443431ffac4f
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update 4, strip 3
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ teststrip 1 4
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
% before update 1, strip 4
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update 1, strip 4
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ teststrip 4 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% before update 4, strip 2
changeset: 4:443431ffac4f
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update 4, strip 2
changeset: 3:443431ffac4f
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
$ teststrip 4 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% before update 4, strip 1
changeset: 4:264128213d29
tag: tip
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update 4, strip 1
changeset: 0:9ab35a2d17cb
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ teststrip null 4
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
% before update null, strip 4
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
% after update null, strip 4
$ hg log
changeset: 4:264128213d29
tag: tip
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
changeset: 3:443431ffac4f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
changeset: 2:65bd5f99a4a3
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Eric Sumner
repair: add experimental option to write bundle2 files...
r23898 $ hg up -C 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg parents
changeset: 4:264128213d29
tag: tip
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
Eric Sumner
repair._bundle: fix traceback for bad config value...
r23939
Pierre-Yves David
strip: use bundle2 + cg2 by default when repository use general delta...
r26423 $ hg --traceback strip 4
Eric Sumner
repair: add experimental option to write bundle2 files...
r23898 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg
Eric Sumner
repair: add experimental option to write bundle2 files...
r23898 $ hg parents
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ hg debugbundle .hg/strip-backup/*
Augie Fackler
debugcommands: stabilize output of debugbundle by having a custom repr...
r34027 Stream params: {Compression: BZ}
Boris Feld
debugbundle: also display if a part is mandatory or advisory...
r37919 changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
Pierre-Yves David
test: use generaldelta in 'test-strip.t'...
r26929 264128213d290d868c54642d13aeaa3675551a78
Boris Feld
bundle2: mark the bundle2 part as advisory (issue5872)...
r37920 cache:rev-branch-cache -- {} (mandatory: False)
Boris Feld
debugbundle: also display if a part is mandatory or advisory...
r37919 phase-heads -- {} (mandatory: True)
Martin von Zweigbergk
strip: include phases in bundle (BC)...
r33032 264128213d290d868c54642d13aeaa3675551a78 draft
Gregory Szorc
tests: use `hg unbundle` instead of `hg pull` in some tests...
r37354 $ hg unbundle .hg/strip-backup/*
Eric Sumner
bundlerepo: basic bundle2 support...
r24073 adding changesets
adding manifests
adding file changes
Gregory Szorc
tests: use `hg unbundle` instead of `hg pull` in some tests...
r37354 added 1 changesets with 0 changes to 1 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 264128213d29 (1 drafts)
Eric Sumner
bundlerepo: basic bundle2 support...
r24073 (run 'hg heads' to see heads, 'hg merge' to merge)
$ rm .hg/strip-backup/*
$ hg log --graph
o changeset: 4:264128213d29
| tag: tip
| parent: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
| o changeset: 3:443431ffac4f
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: e
| |
| o changeset: 2:65bd5f99a4a3
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
@ changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg up -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 4
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
before strip of merge parent
$ hg parents
changeset: 2:65bd5f99a4a3
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
changeset: 4:264128213d29
tag: tip
parent: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
$ hg strip 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
after strip of merge parent
$ hg parents
changeset: 1:ef3a871183d7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ restore
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "264128213d29: c"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 1 other heads for branch "default"
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 @ changeset: 4:264128213d29
| tag: tip
| parent: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
| o changeset: 3:443431ffac4f
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: e
| |
| o changeset: 2:65bd5f99a4a3
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
2 is parent of 3, only one strip should happen
$ hg strip "roots(2)" 3
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 @ changeset: 2:264128213d29
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ restore
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 o changeset: 4:443431ffac4f
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
o changeset: 3:65bd5f99a4a3
| parent: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
| @ changeset: 2:264128213d29
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Martin von Zweigbergk
strip: report both bundle files in case of exception (issue5368)...
r29952 Failed hook while applying "saveheads" bundle.
$ hg strip 2 --config hooks.pretxnchangegroup.bad=false
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
transaction abort!
rollback completed
Martin von Zweigbergk
strip: don't use "full" and "partial" to describe bundles...
r29954 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
Martin von Zweigbergk
strip: clarify that user action is required to recover temp bundle...
r29953 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
(fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
Martin von Zweigbergk
strip: report both bundle files in case of exception (issue5368)...
r29952 abort: pretxnchangegroup.bad hook exited with status 1
[255]
$ restore
$ hg log -G
o changeset: 4:443431ffac4f
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
o changeset: 3:65bd5f99a4a3
| parent: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
| o changeset: 2:264128213d29
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
@ changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
2 different branches: 2 strips
$ hg strip 2 4
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 o changeset: 2:65bd5f99a4a3
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
@ changeset: 1:ef3a871183d7
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ restore
2 different branches and a common ancestor: 1 strip
$ hg strip 1 "2|4"
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
$ restore
Durham Goode
fncache: clean up fncache during strips...
r20885 verify fncache is kept up-to-date
$ touch a
$ hg ci -qAm a
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #if repofncache
Durham Goode
fncache: clean up fncache during strips...
r20885 $ cat .hg/store/fncache | sort
data/a.i
data/bar.i
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #endif
Gregory Szorc
tests: conditionalize tests based on presence of revlogs for files...
r37356
Durham Goode
fncache: clean up fncache during strips...
r20885 $ hg strip tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #if repofncache
Durham Goode
fncache: clean up fncache during strips...
r20885 $ cat .hg/store/fncache
data/bar.i
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #endif
Durham Goode
fncache: clean up fncache during strips...
r20885
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 stripping an empty revset
$ hg strip "1 and not 1"
abort: empty revision set
[255]
remove branchy history for qimport tests
$ hg strip 3
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
strip of applied mq should cleanup status file
$ echo "mq=" >> $HGRCPATH
$ hg up -C 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo fooagain >> bar
$ hg ci -mf
$ hg qimport -r tip:2
applied patches before strip
$ hg qapplied
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 d
e
f
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
stripping revision in queue
$ hg strip 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
applied patches after stripping rev in queue
$ hg qapplied
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 d
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
stripping ancestor of queue
$ hg strip 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
applied patches after stripping ancestor of queue
$ hg qapplied
Mads Kiilerich
spelling: random spell checker fixes
r19951 Verify strip protects against stripping wc parent when there are uncommitted mods
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
$ echo b > b
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 $ echo bb > bar
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg add b
$ hg ci -m 'b'
$ hg log --graph
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 @ changeset: 1:76dcf9fab855
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:9ab35a2d17cb
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 $ hg up 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo c > bar
$ hg up -t false
merging bar
merging bar failed!
1 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
$ hg sum
parent: 1:76dcf9fab855 tip
b
branch: default
commit: 1 modified, 1 unknown, 1 unresolved
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 mq: 3 unapplied
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
$ echo c > b
$ hg strip tip
abort: local changes found
[255]
$ hg strip tip --keep
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
$ hg log --graph
@ changeset: 0:9ab35a2d17cb
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ hg status
M bar
? b
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 ? bar.orig
$ rm bar.orig
$ hg sum
parent: 0:9ab35a2d17cb tip
a
branch: default
commit: 1 modified, 1 unknown
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 1 draft
Matt Mackall
strip: properly clear resolve state with --keep (issue4593)...
r24709 mq: 3 unapplied
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
Strip adds, removes, modifies with --keep
$ touch b
$ hg add b
$ hg commit -mb
$ touch c
... with a clean working dir
$ hg add c
$ hg rm bar
$ hg commit -mc
$ hg status
$ hg strip --keep tip
saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
$ hg status
! bar
? c
... with a dirty working dir
$ hg add c
$ hg rm bar
$ hg commit -mc
$ hg status
$ echo b > b
$ echo d > d
$ hg strip --keep tip
Christian Delahousse
strip: add a --keep test related to removing files from dirstate...
r27177 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg status
M b
! bar
? c
? d
Christian Delahousse
strip: add a --keep test related to removing files from dirstate...
r27177
... after updating the dirstate
$ hg add c
$ hg commit -mc
$ hg rm c
$ hg commit -mc
$ hg strip --keep '.^' -q
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ cd ..
stripping many nodes on a complex graph (issue3299)
$ hg init issue3299
$ cd issue3299
$ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
$ hg strip 'not ancestors(x)'
saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
test hg strip -B bookmark
$ cd ..
$ hg init bookmarks
$ cd bookmarks
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg bookmark -r 'a' 'todelete'
$ hg bookmark -r 'b' 'B'
$ hg bookmark -r 'b' 'nostrip'
$ hg bookmark -r 'c' 'delete'
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 $ hg bookmark -r 'd' 'multipledelete1'
$ hg bookmark -r 'e' 'multipledelete2'
$ hg bookmark -r 'f' 'singlenode1'
$ hg bookmark -r 'f' 'singlenode2'
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg up -C todelete
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Stephen Lee
update: show message when a bookmark is activated by update...
r21503 (activating bookmark todelete)
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg strip -B nostrip
bookmark 'nostrip' deleted
abort: empty revision set
[255]
$ hg strip -B todelete
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
David Soria Parra
strip: remove bookmarks after strip succeed (issue4295)...
r21847 bookmark 'todelete' deleted
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg id -ir dcbb326fdec2
abort: unknown revision 'dcbb326fdec2'!
[255]
$ hg id -ir d62d843c9a01
d62d843c9a01
$ hg bookmarks
B 9:ff43616e5d0f
delete 6:2702dd0c91e7
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 multipledelete1 11:e46a4836065c
multipledelete2 12:b4594d867745
singlenode1 13:43227190fef8
singlenode2 13:43227190fef8
$ hg strip -B multipledelete1 -B multipledelete2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 bookmark 'multipledelete1' deleted
bookmark 'multipledelete2' deleted
$ hg id -ir e46a4836065c
abort: unknown revision 'e46a4836065c'!
[255]
$ hg id -ir b4594d867745
abort: unknown revision 'b4594d867745'!
[255]
$ hg strip -B singlenode1 -B singlenode2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 bookmark 'singlenode1' deleted
bookmark 'singlenode2' deleted
$ hg id -ir 43227190fef8
abort: unknown revision '43227190fef8'!
[255]
$ hg strip -B unknownbookmark
abort: bookmark 'unknownbookmark' not found
[255]
$ hg strip -B unknownbookmark1 -B unknownbookmark2
abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
[255]
$ hg strip -B delete -B unknownbookmark
abort: bookmark 'unknownbookmark' not found
[255]
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 $ hg strip -B delete
David Soria Parra
strip: remove bookmarks after strip succeed (issue4295)...
r21847 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827 bookmark 'delete' deleted
$ hg id -ir 6:2702dd0c91e7
abort: unknown revision '2702dd0c91e7'!
[255]
David Soria Parra
strip: remove bookmarks after strip succeed (issue4295)...
r21847 $ hg update B
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark B)
$ echo a > a
$ hg add a
$ hg strip -B B
abort: local changes found
[255]
$ hg bookmarks
* B 6:ff43616e5d0f
Pierre-Yves David
strip: rename test-mq-strip into test-strip...
r19827
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854 Make sure no one adds back a -b option:
$ hg strip -b tip
hg strip: option -b not recognized
FUJIWARA Katsunori
doc: remove deprecated option from synopsis of command help...
r28288 hg strip [-k] [-f] [-B bookmark] [-r] REV...
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854
strip changesets and all their descendants from the repository
timeless
help: use single quotes in use warning
r29974 (use 'hg help -e strip' to show help for the strip extension)
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854
Matt Mackall
help: fold repeatable option message into option table header...
r22117 options ([+] can be repeated):
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 -r --rev REV [+] strip specified revision (optional, can specify
revisions without this option)
Pierre-Yves David
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now...
r30152 -f --force force removal of changesets, discard uncommitted
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 changes (no backup)
Sushil khanchi
strip: improve help text for --no-backup option...
r38593 --no-backup do not save backup bundle
Pierre-Yves David
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now...
r30152 -k --keep do not modify working directory during strip
Shubhanshu Agrawal
strip: changing bookmark argument to be a list...
r27030 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
Pierre-Yves David
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now...
r30152 --mq operate on patch repository
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854
timeless
help: use single quotes in use warning
r29974 (use 'hg strip -h' to show more help)
Matt Mackall
strip: drop -b/--backup option (BC)...
r21854 [255]
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835
$ cd ..
Verify bundles don't get overwritten:
$ hg init doublebundle
$ cd doublebundle
$ touch a
$ hg commit -Aqm a
$ touch b
$ hg commit -Aqm b
$ hg strip -r 0
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 $ ls .hg/strip-backup
3903775176ed-e68910bd-backup.hg
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #if repobundlerepo
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
$ hg strip -r 0
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 $ ls .hg/strip-backup
3903775176ed-54390173-backup.hg
3903775176ed-e68910bd-backup.hg
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #endif
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677 $ cd ..
Test that we only bundle the stripped changesets (issue4736)
------------------------------------------------------------
timeless@mozdev.org
test-strip: fix spelling of initialization (en-US)
r26173 initialization (previous repo is empty anyway)
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677
$ hg init issue4736
$ cd issue4736
$ echo a > a
$ hg add a
$ hg commit -m commitA
$ echo b > b
$ hg add b
$ hg commit -m commitB
$ echo c > c
$ hg add c
$ hg commit -m commitC
$ hg up 'desc(commitB)'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo d > d
$ hg add d
$ hg commit -m commitD
created new head
$ hg up 'desc(commitC)'
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 'desc(commitD)'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'mergeCD'
$ hg log -G
@ changeset: 4:d8db9d137221
|\ tag: tip
| | parent: 2:5c51d8d6557d
| | parent: 3:6625a5168474
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: mergeCD
| |
| o changeset: 3:6625a5168474
| | parent: 1:eca11cf91c71
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: commitD
| |
o | changeset: 2:5c51d8d6557d
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitC
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
Check bundle behavior:
$ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
2 changesets found
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #if repobundlerepo
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677 $ hg log -r 'bundle()' -R ../issue4736.hg
changeset: 3:6625a5168474
parent: 1:eca11cf91c71
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitD
changeset: 4:d8db9d137221
tag: tip
parent: 2:5c51d8d6557d
parent: 3:6625a5168474
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: mergeCD
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #endif
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677
check strip behavior
$ hg --config extensions.strip= strip 'desc(commitD)' --debug
resolving manifests
branchmerge: False, force: True, partial: False
ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
c: other deleted -> r
removing c
d: other deleted -> r
removing d
Matt Harbison
tests: flag Windows specific lines about background closing as optional
r28318 starting 4 threads for background file closing (?)
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
2 changesets found
list of changesets:
6625a516847449b6f0fa3737b9ba56e9f0f3032c
d8db9d1372214336d2b5570f20ee468d2c72fa8b
Boris Feld
bundle: include advisory rev branch cache part in bundle2 bundle...
r36983 bundle2-output-bundle: "HG20", (1 params) 3 parts total
Gregory Szorc
bundle2: store changeset count when creating file bundles...
r29593 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
Boris Feld
bundle2: mark the bundle2 part as advisory (issue5872)...
r37920 bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
Martin von Zweigbergk
strip: include phases in bundle (BC)...
r33032 bundle2-output-part: "phase-heads" 24 bytes payload
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg
Pierre-Yves David
caches: move the 'updating the branch cache' message in 'updatecaches'...
r32267 updating the branch cache
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677 invalid branchheads cache (served): tip differs
$ hg log -G
o changeset: 2:5c51d8d6557d
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitC
|
@ changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
strip backup content
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #if repobundlerepo
Pierre-Yves David
changegroup: properly compute common base in changeggroupsubset (issue4736)...
r25677 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
changeset: 3:6625a5168474
parent: 1:eca11cf91c71
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitD
changeset: 4:d8db9d137221
tag: tip
parent: 2:5c51d8d6557d
parent: 3:6625a5168474
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: mergeCD
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434
#endif
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 Check that the phase cache is properly invalidated after a strip with bookmark.
$ cat > ../stripstalephasecache.py << EOF
> from mercurial import extensions, localrepo
> def transactioncallback(orig, repo, desc, *args, **kwargs):
> def test(transaction):
> # observe cache inconsistency
> try:
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > [repo.changelog.node(r) for r in repo.revs(b"not public()")]
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 > except IndexError:
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > repo.ui.status(b"Index error!\n")
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 > transaction = orig(repo, desc, *args, **kwargs)
> # warm up the phase cache
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > list(repo.revs(b"not public()"))
Augie Fackler
tests: fix a missed b prefix in a test extension in test-strip.t...
r35864 > if desc != b'strip':
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > transaction.addpostclose(b"phase invalidation test", test)
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 > return transaction
> def extsetup(ui):
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > extensions.wrapfunction(localrepo.localrepository, b"transaction",
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 > transactioncallback)
> EOF
$ hg up -C 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo k > k
$ hg add k
$ hg commit -m commitK
$ echo l > l
$ hg add l
$ hg commit -m commitL
$ hg book -r tip blah
$ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg
Laurent Charignon
strip: invalidate phase cache after stripping changeset (issue5235)...
r29196 $ hg up -C 1
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Pierre-Yves David
strip: use the 'finally: tr.release' pattern during stripping...
r26012
Error during post-close callback of the strip transaction
(They should be gracefully handled and reported)
$ cat > ../crashstrip.py << EOF
> from mercurial import error
> def reposetup(ui, repo):
> class crashstriprepo(repo.__class__):
> def transaction(self, desc, *args, **kwargs):
Boris Feld
test-strip: fix call to super class in crashstriprepo...
r33540 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > if desc == b'strip':
> def crash(tra): raise error.Abort(b'boom')
> tr.addpostclose(b'crash', crash)
Pierre-Yves David
strip: use the 'finally: tr.release' pattern during stripping...
r26012 > return tr
> repo.__class__ = crashstriprepo
> EOF
$ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg
strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg'
Pierre-Yves David
strip: use the 'finally: tr.release' pattern during stripping...
r26012 abort: boom
[255]
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 test stripping a working directory parent doesn't switch named branches
$ hg log -G
@ changeset: 1:eca11cf91c71
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
$ hg branch new-branch
marked working directory as branch new-branch
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m "start new branch"
$ echo 'foo' > foo.txt
$ hg ci -Aqm foo
$ hg up default
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo 'bar' > bar.txt
$ hg ci -Aqm bar
$ hg up new-branch
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg log -G
@ changeset: 4:35358f982181
| tag: tip
| parent: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: bar
|
| @ changeset: 3:f62c6c09b707
| | branch: new-branch
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: foo
| |
| o changeset: 2:b1d33a8cadd9
|/ branch: new-branch
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start new branch
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
$ hg strip --force -r 35358f982181
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-50d992d4-backup.hg
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 $ hg log -G
@ changeset: 3:f62c6c09b707
| branch: new-branch
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: foo
|
o changeset: 2:b1d33a8cadd9
| branch: new-branch
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start new branch
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
$ hg up default
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo 'bar' > bar.txt
$ hg ci -Aqm bar
$ hg up new-branch
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m merge
$ hg log -G
@ changeset: 5:4cf5e92caec2
|\ branch: new-branch
| | tag: tip
| | parent: 3:f62c6c09b707
| | parent: 4:35358f982181
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: merge
| |
| o changeset: 4:35358f982181
| | parent: 1:eca11cf91c71
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: bar
| |
o | changeset: 3:f62c6c09b707
| | branch: new-branch
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: foo
| |
o | changeset: 2:b1d33a8cadd9
|/ branch: new-branch
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start new branch
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
$ hg strip -r 35358f982181
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 $ hg log -G
@ changeset: 3:f62c6c09b707
| branch: new-branch
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: foo
|
o changeset: 2:b1d33a8cadd9
| branch: new-branch
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start new branch
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
Gregory Szorc
tests: use `hg unbundle` instead of `hg pull` in some tests...
r37354 $ hg unbundle -u $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 adding changesets
adding manifests
adding file changes
added 2 changesets with 1 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 35358f982181:4cf5e92caec2 (2 drafts)
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg strip -k -r 35358f982181
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg
Paul Morelle
strip: take branch into account when selecting update target (issue5540)...
r34622 $ hg log -G
@ changeset: 3:f62c6c09b707
| branch: new-branch
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: foo
|
o changeset: 2:b1d33a8cadd9
| branch: new-branch
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start new branch
|
o changeset: 1:eca11cf91c71
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: commitB
|
o changeset: 0:105141ef12d0
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commitA
$ hg diff
diff -r f62c6c09b707 bar.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bar.txt Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+bar
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 Use delayedstrip to strip inside a transaction
Pierre-Yves David
strip: use the 'finally: tr.release' pattern during stripping...
r26012
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 $ cd $TESTTMP
$ hg init delayedstrip
$ cd delayedstrip
$ hg debugdrawdag <<'EOS'
> D
> |
> C F H # Commit on top of "I",
> | |/| # Strip B+D+I+E+G+H+Z
> I B E G
> \|/
> A Z
> EOS
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 $ cp -R . ../scmutilcleanup
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087
$ hg up -C I
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 3 >> I
$ cat > $TESTTMP/delayedstrip.py <<EOF
Augie Fackler
tests: update test-strip to pass our import checker
r33989 > from __future__ import absolute_import
Saurabh Singh
test-strip: make test compatible with chg...
r34454 > from mercurial import commands, registrar, repair
> cmdtable = {}
> command = registrar.command(cmdtable)
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > @command(b'testdelayedstrip')
Saurabh Singh
test-strip: make test compatible with chg...
r34454 > def testdelayedstrip(ui, repo):
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 > def getnodes(expr):
> return [repo.changelog.node(r) for r in repo.revs(expr)]
> with repo.wlock():
> with repo.lock():
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > with repo.transaction(b'delayedstrip'):
> repair.delayedstrip(ui, repo, getnodes(b'B+I+Z+D+E'), b'J')
> repair.delayedstrip(ui, repo, getnodes(b'G+H+Z'), b'I')
> commands.commit(ui, repo, message=b'J', date=b'0 0')
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 > EOF
Saurabh Singh
test-strip: make test compatible with chg...
r34454 $ hg testdelayedstrip --config extensions.t=$TESTTMP/delayedstrip.py
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg
Saurabh Singh
test-strip: make test compatible with chg...
r34454
Jun Wu
strip: add a delayedstrip method that works in a transaction...
r33087 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
@ 6:2f2d51af6205 J
|
o 3:08ebfeb61bac I
|
| o 5:64a8289d2492 F
| |
| o 2:7fb047a69f22 E
|/
| o 4:26805aba1e60 C
| |
| o 1:112478962961 B
|/
o 0:426bada5c675 A
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 Test high-level scmutil.cleanupnodes API
$ cd $TESTTMP/scmutilcleanup
$ hg debugdrawdag <<'EOS'
> D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
> | | |
> C H G
> EOS
$ for i in B C D F G I Z; do
> hg bookmark -i -r $i b-$i
> done
Jun Wu
scmutil: make cleanupnodes delete divergent bookmarks...
r33331 $ hg bookmark -i -r E 'b-F@divergent1'
$ hg bookmark -i -r H 'b-F@divergent2'
$ hg bookmark -i -r G 'b-F@divergent3'
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 $ cp -R . ../scmutilcleanup.obsstore
$ cat > $TESTTMP/scmutilcleanup.py <<EOF
Saurabh Singh
test-strip: make test compatible with chg...
r34454 > from mercurial import registrar, scmutil
> cmdtable = {}
> command = registrar.command(cmdtable)
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > @command(b'testnodescleanup')
Saurabh Singh
test-strip: make test compatible with chg...
r34454 > def testnodescleanup(ui, repo):
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 > def nodes(expr):
> return [repo.changelog.node(r) for r in repo.revs(expr)]
> def node(expr):
> return nodes(expr)[0]
> with repo.wlock():
> with repo.lock():
Augie Fackler
tests: bytestring-ify all the adhoc extensions in test-strip.t...
r35848 > with repo.transaction(b'delayedstrip'):
> mapping = {node(b'F'): [node(b'F2')],
> node(b'D'): [node(b'D2')],
> node(b'G'): [node(b'G2')]}
> scmutil.cleanupnodes(repo, mapping, b'replace')
> scmutil.cleanupnodes(repo, nodes(b'((B::)+I+Z)-D2'),
> b'replace')
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 > EOF
Saurabh Singh
test-strip: make test compatible with chg...
r34454 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg
Saurabh Singh
test-strip: make test compatible with chg...
r34454
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
Jun Wu
scmutil: make cleanupnodes delete divergent bookmarks...
r33331 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 |
Martin von Zweigbergk
drawdag: include files from both parents in merge commits...
r33558 | o 7:d11b3456a873 F2 b-F
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 | |
Martin von Zweigbergk
drawdag: include files from both parents in merge commits...
r33558 | o 5:5cb05ba470a7 H
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 |/|
Jun Wu
scmutil: make cleanupnodes delete divergent bookmarks...
r33331 | o 3:7fb047a69f22 E b-F@divergent1
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 | |
| | o 6:7c78f703e465 D2 b-D
| | |
| | o 4:26805aba1e60 C
| | |
| | o 2:112478962961 B
| |/
o | 1:1fc8102cda62 G
/
o 0:426bada5c675 A b-B b-C b-I
$ hg bookmark
b-B 0:426bada5c675
b-C 0:426bada5c675
b-D 6:7c78f703e465
Martin von Zweigbergk
drawdag: include files from both parents in merge commits...
r33558 b-F 7:d11b3456a873
Jun Wu
scmutil: make cleanupnodes delete divergent bookmarks...
r33331 b-F@divergent1 3:7fb047a69f22
b-F@divergent3 8:1473d4b996d1
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 b-G 8:1473d4b996d1
b-I 0:426bada5c675
b-Z -1:000000000000
Test the above using obsstore "by the way". Not directly related to strip, but
we have reusable code here
$ cd $TESTTMP/scmutilcleanup.obsstore
$ cat >> .hg/hgrc <<EOF
> [experimental]
Boris Feld
config: replace experimental.stabilization by experimental.evolution...
r34866 > evolution=true
Boris Feld
config: rename stabilization.track-operation...
r34871 > evolution.track-operation=1
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 > EOF
Saurabh Singh
test-strip: make test compatible with chg...
r34454 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
Martin von Zweigbergk
evolution: report new unstable changesets...
r35727 4 new orphan changesets
Saurabh Singh
test-strip: make test compatible with chg...
r34454
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 $ rm .hg/localtags
$ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
av6
graphlog: add another graph node type, unstable, using character "*" (BC)
r35524 * 12:1473d4b996d1 G2 b-F@divergent3 b-G
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 |
av6
graphlog: add another graph node type, unstable, using character "*" (BC)
r35524 | * 11:d11b3456a873 F2 b-F
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 | |
av6
graphlog: add another graph node type, unstable, using character "*" (BC)
r35524 | * 8:5cb05ba470a7 H
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 |/|
Jun Wu
scmutil: make cleanupnodes delete divergent bookmarks...
r33331 | o 4:7fb047a69f22 E b-F@divergent1
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 | |
av6
graphlog: add another graph node type, unstable, using character "*" (BC)
r35524 | | * 10:7c78f703e465 D2 b-D
Jun Wu
scmutil: add a cleanupnodes method for developers...
r33088 | | |
| | x 6:26805aba1e60 C
| | |
| | x 3:112478962961 B
| |/
x | 1:1fc8102cda62 G
/
o 0:426bada5c675 A b-B b-C b-I
$ hg debugobsolete
Boris Feld
obsolete: activate effect-flag by default...
r34962 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'}
48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
Martin von Zweigbergk
tests: add test for issue5678...
r34178 $ cd ..
Test that obsmarkers are restored even when not using generaldelta
$ hg --config format.usegeneraldelta=no init issue5678
$ cd issue5678
$ cat >> .hg/hgrc <<EOF
> [experimental]
Boris Feld
config: replace experimental.stabilization by experimental.evolution...
r34866 > evolution=true
Martin von Zweigbergk
tests: add test for issue5678...
r34178 > EOF
$ echo a > a
$ hg ci -Aqm a
$ hg ci --amend -m a2
$ hg debugobsolete
Boris Feld
obsolete: activate effect-flag by default...
r34962 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
Martin von Zweigbergk
tests: add test for issue5678...
r34178 $ hg strip .
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg
Martin von Zweigbergk
tests: add test for issue5678...
r34178 $ hg unbundle -q .hg/strip-backup/*
$ hg debugobsolete
Boris Feld
obsolete: activate effect-flag by default...
r34962 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
Martin von Zweigbergk
tests: add test for issue5678...
r34178 $ cd ..