annotate mercurial/strip.py @ 52154:6ca0771b32ef stable

tests: disable `test-git-interop.t` with a requirements directive Note that the failures in this test affect all platforms. I don't like this, but the test has been broken for awhile because of dirstate API changes, and nobody noticed because the required `pygit2` package isn't installed on the CI systems. I did install it on the mac CI system, which triggers this failure. Disabling it is no worse than not running it due to the missing package, but at least this way the CI systems can get the package installed, and the test can be enabled and fixed eventually, without needing to alter the CI systems. The feature here is kind of abused. I thought about adding one specifically to test for CI, but didn't feel like doing it at this point. Maybe if we need to disable things to get the Windows CI off the ground (but that likely requires testing for CI + platform).
author Matt Harbison <matt_harbison@yahoo.com>
date Fri, 11 Oct 2024 11:03:21 -0400
parents f4733654f144
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
51863
f4733654f144 typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents: 51703
diff changeset
1 from __future__ import annotations
f4733654f144 typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents: 51703
diff changeset
2
45865
d7a508a75d72 strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 45514
diff changeset
3 from .i18n import _
d7a508a75d72 strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 45514
diff changeset
4 from . import (
28377
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
5 bookmarks as bookmarksmod,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
6 cmdutil,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
7 error,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
8 hg,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
9 lock as lockmod,
48116
5ced12cfa41b errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents: 48096
diff changeset
10 logcmdutil,
44856
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44452
diff changeset
11 mergestate as mergestatemod,
32897
799db2af824c py3: convert keys of kwargs back to bytes using pycompat.byteskwargs()
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32337
diff changeset
12 pycompat,
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29841
diff changeset
13 registrar,
28377
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
14 repair,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
15 scmutil,
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
16 )
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
17
28377
81ad683278b8 strip: use absolute_import
timeless <timeless@mozdev.org>
parents: 28288
diff changeset
18 release = lockmod.release
19822
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29841
diff changeset
21 command = registrar.command(cmdtable)
19823
6fb14d21fe9d strip: move checksubstate from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19822
diff changeset
22
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
23
42490
3a1988e915f9 strip: remove unused excsuffix argument from checklocalchanges()
Martin von Zweigbergk <martinvonz@google.com>
parents: 42470
diff changeset
24 def checklocalchanges(repo, force=False):
22925
68df36ce3d8a strip: make checklocalchanges() return full status tuple
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 22057
diff changeset
25 s = repo.status()
19824
237e40b2c1ff strip: move checklocalchanges from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19823
diff changeset
26 if not force:
42532
12243f15d53e statecheck: added support for STATES
Taapas Agrawal <taapas2897@gmail.com>
parents: 42492
diff changeset
27 cmdutil.checkunfinished(repo)
42491
1474f5d84662 strip: use bailifchanged() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents: 42490
diff changeset
28 cmdutil.bailifchanged(repo)
42532
12243f15d53e statecheck: added support for STATES
Taapas Agrawal <taapas2897@gmail.com>
parents: 42492
diff changeset
29 else:
12243f15d53e statecheck: added support for STATES
Taapas Agrawal <taapas2897@gmail.com>
parents: 42492
diff changeset
30 cmdutil.checkunfinished(repo, skipmerge=True)
22925
68df36ce3d8a strip: make checklocalchanges() return full status tuple
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 22057
diff changeset
31 return s
19824
237e40b2c1ff strip: move checklocalchanges from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19823
diff changeset
32
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
33
34574
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
34 def _findupdatetarget(repo, nodes):
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
35 unode, p2 = repo.changelog.parents(nodes[0])
34621
5613fb1583d6 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net>
parents: 34574
diff changeset
36 currentbranch = repo[None].branch()
34574
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
37
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
38 if (
50928
d718eddf01d9 safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50603
diff changeset
39 hasattr(repo, 'mq')
47012
d55b71393907 node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents: 46113
diff changeset
40 and p2 != repo.nullid
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
41 and p2 in [x.node for x in repo.mq.applied]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
42 ):
34574
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
43 unode = p2
34621
5613fb1583d6 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net>
parents: 34574
diff changeset
44 elif currentbranch != repo[unode].branch():
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
45 pwdir = b'parents(wdir())'
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
46 revset = b'max(((parents(%ln::%r) + %r) - %ln::%r) and branch(%s))'
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
47 branchtarget = repo.revs(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
48 revset, nodes, pwdir, pwdir, nodes, pwdir, currentbranch
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
49 )
34621
5613fb1583d6 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net>
parents: 34574
diff changeset
50 if branchtarget:
5613fb1583d6 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net>
parents: 34574
diff changeset
51 cl = repo.changelog
5613fb1583d6 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net>
parents: 34574
diff changeset
52 unode = cl.node(branchtarget.first())
34574
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
53
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
54 return unode
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
55
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
56
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
57 def strip(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
58 ui,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
59 repo,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
60 revs,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
61 update=True,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
62 backup=True,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
63 force=None,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
64 bookmarks=None,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
65 soft=False,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
66 ):
32919
daceeed34ad2 strip: use context manager for locking in strip()
Martin von Zweigbergk <martinvonz@google.com>
parents: 32897
diff changeset
67 with repo.wlock(), repo.lock():
19825
4b4997068143 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19824
diff changeset
68 if update:
4b4997068143 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19824
diff changeset
69 checklocalchanges(repo, force=force)
34574
05c2a9f37a1d strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net>
parents: 33488
diff changeset
70 urev = _findupdatetarget(repo, revs)
19825
4b4997068143 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19824
diff changeset
71 hg.clean(repo, urev)
26748
5ba0a99ff27f dirstate: make dirstate.write() callers pass transaction object to it
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26624
diff changeset
72 repo.dirstate.write(repo.currenttransaction())
19825
4b4997068143 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19824
diff changeset
73
41798
8c42b4a3d447 strip: introduce a soft strip option
Boris Feld <boris.feld@octobus.net>
parents: 41397
diff changeset
74 if soft:
8c42b4a3d447 strip: introduce a soft strip option
Boris Feld <boris.feld@octobus.net>
parents: 41397
diff changeset
75 repair.softstrip(ui, repo, revs, backup)
8c42b4a3d447 strip: introduce a soft strip option
Boris Feld <boris.feld@octobus.net>
parents: 41397
diff changeset
76 else:
8c42b4a3d447 strip: introduce a soft strip option
Boris Feld <boris.feld@octobus.net>
parents: 41397
diff changeset
77 repair.strip(ui, repo, revs, backup)
21847
f6f122f4813b strip: remove bookmarks after strip succeed (issue4295)
David Soria Parra <davidsp@fb.com>
parents: 20102
diff changeset
78
26972
4b0c3df5d635 strip: renaming local variables
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26748
diff changeset
79 repomarks = repo._bookmarks
27029
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
80 if bookmarks:
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
81 with repo.transaction(b'strip') as tr:
27052
b9d0b45df7b2 strip: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Laurent Charignon <lcharignon@fb.com>
parents: 27030
diff changeset
82 if repo._activebookmark in bookmarks:
b9d0b45df7b2 strip: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Laurent Charignon <lcharignon@fb.com>
parents: 27030
diff changeset
83 bookmarksmod.deactivate(repo)
33488
eb344bbac18c bookmark: use 'applychanges' when stripping
Boris Feld <boris.feld@octobus.net>
parents: 32920
diff changeset
84 repomarks.applychanges(repo, tr, [(b, None) for b in bookmarks])
27872
a54afc4475d7 with: use a context manager for transaction in strip
Bryan O'Sullivan <bryano@fb.com>
parents: 27839
diff changeset
85 for bookmark in sorted(bookmarks):
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
86 ui.write(_(b"bookmark '%s' deleted\n") % bookmark)
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
87
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
88
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
89 @command(
45865
d7a508a75d72 strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 45514
diff changeset
90 b"debugstrip",
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
91 [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
92 (
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
93 b'r',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
94 b'rev',
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
95 [],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
96 _(
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
97 b'strip specified revision (optional, '
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
98 b'can specify revisions without this '
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
99 b'option)'
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
100 ),
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
101 _(b'REV'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
102 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
103 (
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
104 b'f',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
105 b'force',
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
106 None,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
107 _(
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
108 b'force removal of changesets, discard '
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
109 b'uncommitted changes (no backup)'
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
110 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
111 ),
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
112 (b'', b'no-backup', None, _(b'do not save backup bundle')),
45942
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
113 (
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
114 b'',
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
115 b'nobackup',
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
116 None,
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
117 _(b'do not save backup bundle (DEPRECATED)'),
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 45865
diff changeset
118 ),
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
119 (b'n', b'', None, _(b'ignored (DEPRECATED)')),
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
120 (
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
121 b'k',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
122 b'keep',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
123 None,
43117
8ff1ecfadcd1 cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents: 43105
diff changeset
124 _(b"do not modify working directory during strip"),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
125 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
126 (
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
127 b'B',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
128 b'bookmark',
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
129 [],
43117
8ff1ecfadcd1 cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents: 43105
diff changeset
130 _(b"remove revs only reachable from given bookmark"),
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
131 _(b'BOOKMARK'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
132 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
133 (
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
134 b'',
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
135 b'soft',
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
136 None,
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
137 _(b"simply drop changesets from visible history (EXPERIMENTAL)"),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
138 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
139 ],
45865
d7a508a75d72 strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 45514
diff changeset
140 _(b'hg debugstrip [-k] [-f] [-B bookmark] [-r] REV...'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
141 helpcategory=command.CATEGORY_MAINTENANCE,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
142 )
45865
d7a508a75d72 strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 45514
diff changeset
143 def debugstrip(ui, repo, *revs, **opts):
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
144 """strip changesets and all their descendants from the repository
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
145
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
146 The strip command removes the specified changesets and all their
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
147 descendants. If the working directory has uncommitted changes, the
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
148 operation is aborted unless the --force flag is supplied, in which
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
149 case changes will be discarded.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
150
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
151 If a parent of the working directory is stripped, then the working
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
152 directory will automatically be updated to the most recent
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
153 available ancestor of the stripped parent after the operation
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
154 completes.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
155
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
156 Any stripped changesets are stored in ``.hg/strip-backup`` as a
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
157 bundle (see :hg:`help bundle` and :hg:`help unbundle`). They can
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
158 be restored by running :hg:`unbundle .hg/strip-backup/BUNDLE`,
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
159 where BUNDLE is the bundle file created by the strip. Note that
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
160 the local revision numbers will in general be different after the
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
161 restore.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
162
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
163 Use the --no-backup option to discard the backup bundle once the
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
164 operation completes.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
165
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
166 Strip is not a history-rewriting operation and can be used on
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
167 changesets in the public phase. But if the stripped changesets have
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
168 been pushed to a remote repository you will likely pull them again.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
169
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
170 Return 0 on success.
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
171 """
32897
799db2af824c py3: convert keys of kwargs back to bytes using pycompat.byteskwargs()
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32337
diff changeset
172 opts = pycompat.byteskwargs(opts)
22057
445472225ccd strip: remove -b/--backup codepaths
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 21854
diff changeset
173 backup = True
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
174 if opts.get(b'no_backup') or opts.get(b'nobackup'):
22057
445472225ccd strip: remove -b/--backup codepaths
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 21854
diff changeset
175 backup = False
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
176
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
177 cl = repo.changelog
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
178 revs = list(revs) + opts.get(b'rev')
48116
5ced12cfa41b errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents: 48096
diff changeset
179 revs = set(logcmdutil.revrange(repo, revs))
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
180
27839
7ec3cb246291 with: use context manager for wlock in shelve stripcmd
Bryan O'Sullivan <bryano@fb.com>
parents: 27052
diff changeset
181 with repo.wlock():
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
182 bookmarks = set(opts.get(b'bookmark'))
27029
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
183 if bookmarks:
26972
4b0c3df5d635 strip: renaming local variables
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26748
diff changeset
184 repomarks = repo._bookmarks
27029
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
185 if not bookmarks.issubset(repomarks):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
186 raise error.Abort(
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
187 _(b"bookmark '%s' not found")
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
188 % b','.join(sorted(bookmarks - set(repomarks.keys())))
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
189 )
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
190
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
191 # If the requested bookmark is not the only one pointing to a
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
192 # a revision we have to only delete the bookmark and not strip
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
193 # anything. revsets cannot detect that case.
27029
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
194 nodetobookmarks = {}
48913
f254fc73d956 global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 48875
diff changeset
195 for mark, node in repomarks.items():
27029
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
196 nodetobookmarks.setdefault(node, []).append(mark)
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
197 for marks in nodetobookmarks.values():
8279c5d116a0 strip: strip a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 26988
diff changeset
198 if bookmarks.issuperset(marks):
38131
46c2b19a1263 scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
David Demelier <markand@malikania.fr>
parents: 36341
diff changeset
199 rsrevs = scmutil.bookmarkrevs(repo, marks[0])
27030
cf9ed6d32ccb strip: changing bookmark argument to be a list
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com>
parents: 27029
diff changeset
200 revs.update(set(rsrevs))
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
201 if not revs:
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
202 with repo.lock(), repo.transaction(b'bookmark') as tr:
33488
eb344bbac18c bookmark: use 'applychanges' when stripping
Boris Feld <boris.feld@octobus.net>
parents: 32920
diff changeset
203 bmchanges = [(b, None) for b in bookmarks]
eb344bbac18c bookmark: use 'applychanges' when stripping
Boris Feld <boris.feld@octobus.net>
parents: 32920
diff changeset
204 repomarks.applychanges(repo, tr, bmchanges)
32920
8dbcb66ac160 strip: use context manager for locking and transaction in stripcmd()
Martin von Zweigbergk <martinvonz@google.com>
parents: 32919
diff changeset
205 for bookmark in sorted(bookmarks):
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
206 ui.write(_(b"bookmark '%s' deleted\n") % bookmark)
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
207
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
208 if not revs:
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
209 raise error.Abort(_(b'empty revision set'))
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
210
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
211 descendants = set(cl.descendants(revs))
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
212 strippedrevs = revs.union(descendants)
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
213 roots = revs.difference(descendants)
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
214
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
215 # if one of the wdir parent is stripped we'll need
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
216 # to update away to an earlier revision
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
217 update = any(
47012
d55b71393907 node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents: 46113
diff changeset
218 p != repo.nullid and cl.rev(p) in strippedrevs
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
219 for p in repo.dirstate.parents()
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
220 )
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
221
44452
9d2b2df2c2ba cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents: 43117
diff changeset
222 rootnodes = {cl.node(r) for r in roots}
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
223
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
224 q = getattr(repo, 'mq', None)
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
225 if q is not None and q.applied:
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
226 # refresh queue state if we're about to strip
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
227 # applied patches
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
228 if cl.rev(repo.lookup(b'qtip')) in strippedrevs:
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
229 q.applieddirty = True
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
230 start = 0
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
231 end = len(q.applied)
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
232 for i, statusentry in enumerate(q.applied):
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
233 if statusentry.node in rootnodes:
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
234 # if one of the stripped roots is an applied
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
235 # patch, only part of the queue is stripped
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
236 start = i
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
237 break
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
238 del q.applied[start:end]
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
239 q.savedirty()
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
240
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
241 revs = sorted(rootnodes)
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
242 if update and opts.get(b'keep'):
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
243 with repo.dirstate.changing_parents(repo):
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
244 urev = _findupdatetarget(repo, revs)
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
245 uctx = repo[urev]
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
246
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
247 # only reset the dirstate for files that would actually change
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
248 # between the working context and uctx
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
249 descendantrevs = repo.revs(b"only(., %d)", uctx.rev())
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
250 changedfiles = []
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
251 for rev in descendantrevs:
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
252 # blindly reset the files, regardless of what actually changed
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
253 changedfiles.extend(repo[rev].files())
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
254
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
255 # reset files that only changed in the dirstate too
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
256 dirstate = repo.dirstate
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
257 dirchanges = [
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
258 f for f in dirstate if not dirstate.get_entry(f).maybe_clean
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
259 ]
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
260 changedfiles.extend(dirchanges)
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
261
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
262 repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles)
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
263 repo.dirstate.write(repo.currenttransaction())
24709
69154e0ae384 strip: properly clear resolve state with --keep (issue4593)
Matt Mackall <mpm@selenic.com>
parents: 24471
diff changeset
264
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
265 # clear resolve state
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
266 mergestatemod.mergestate.clean(repo)
24709
69154e0ae384 strip: properly clear resolve state with --keep (issue4593)
Matt Mackall <mpm@selenic.com>
parents: 24471
diff changeset
267
50112
62158471d038 strip: use a `changing_parents` context for --keep update
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48913
diff changeset
268 update = False
20096
88e172871ad7 strip: hold wlock for entire duration
Siddharth Agarwal <sid0@fb.com>
parents: 20009
diff changeset
269
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
270 strip(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
271 ui,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
272 repo,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
273 revs,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
274 backup=backup,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
275 update=update,
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
276 force=opts.get(b'force'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
277 bookmarks=bookmarks,
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
278 soft=opts[b'soft'],
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 42532
diff changeset
279 )
19826
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
280
4b1cbcfdabf7 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19825
diff changeset
281 return 0