equal
deleted
inserted
replaced
4 # GNU General Public License version 2 or any later version. |
4 # GNU General Public License version 2 or any later version. |
5 |
5 |
6 from __future__ import absolute_import |
6 from __future__ import absolute_import |
7 |
7 |
8 import errno |
8 import errno |
9 import weakref |
|
10 |
9 |
11 from .i18n import _ |
10 from .i18n import _ |
12 from .node import ( |
11 from .node import ( |
13 hex, |
12 hex, |
14 nullid, |
13 nullid, |
60 if writechangesetcopy: |
59 if writechangesetcopy: |
61 p1copies = ctx.p1copies() |
60 p1copies = ctx.p1copies() |
62 p2copies = ctx.p2copies() |
61 p2copies = ctx.p2copies() |
63 filesadded, filesremoved = None, None |
62 filesadded, filesremoved = None, None |
64 with repo.lock(), repo.transaction(b"commit") as tr: |
63 with repo.lock(), repo.transaction(b"commit") as tr: |
65 trp = weakref.proxy(tr) |
|
66 |
|
67 if ctx.manifestnode(): |
64 if ctx.manifestnode(): |
68 # reuse an existing manifest revision |
65 # reuse an existing manifest revision |
69 repo.ui.debug(b'reusing known manifest\n') |
66 repo.ui.debug(b'reusing known manifest\n') |
70 mn = ctx.manifestnode() |
67 mn = ctx.manifestnode() |
71 files = ctx.files() |
68 files = ctx.files() |
100 if fctx is None: |
97 if fctx is None: |
101 removed.append(f) |
98 removed.append(f) |
102 else: |
99 else: |
103 added.append(f) |
100 added.append(f) |
104 m[f], is_touched = _filecommit( |
101 m[f], is_touched = _filecommit( |
105 repo, fctx, m1, m2, linkrev, trp, writefilecopymeta, |
102 repo, fctx, m1, m2, linkrev, tr, writefilecopymeta, |
106 ) |
103 ) |
107 if is_touched: |
104 if is_touched: |
108 touched.append(f) |
105 touched.append(f) |
109 if writechangesetcopy and is_touched == 'added': |
106 if writechangesetcopy and is_touched == 'added': |
110 filesadded.append(f) |
107 filesadded.append(f) |
154 # one case where we might have files outside the narrowspec |
151 # one case where we might have files outside the narrowspec |
155 # at this point is merges, and we already error out in the |
152 # at this point is merges, and we already error out in the |
156 # case where the merge has files outside of the narrowspec, |
153 # case where the merge has files outside of the narrowspec, |
157 # so this is safe. |
154 # so this is safe. |
158 mn = mctx.write( |
155 mn = mctx.write( |
159 trp, |
156 tr, |
160 linkrev, |
157 linkrev, |
161 p1.manifestnode(), |
158 p1.manifestnode(), |
162 p2.manifestnode(), |
159 p2.manifestnode(), |
163 added, |
160 added, |
164 drop, |
161 drop, |
189 repo.changelog.delayupdate(tr) |
186 repo.changelog.delayupdate(tr) |
190 n = repo.changelog.add( |
187 n = repo.changelog.add( |
191 mn, |
188 mn, |
192 files, |
189 files, |
193 ctx.description(), |
190 ctx.description(), |
194 trp, |
191 tr, |
195 p1.node(), |
192 p1.node(), |
196 p2.node(), |
193 p2.node(), |
197 user, |
194 user, |
198 ctx.date(), |
195 ctx.date(), |
199 ctx.extra().copy(), |
196 ctx.extra().copy(), |