Show More
@@ -134,13 +134,10 def dosplit(ui, repo, tr, ctx, opts): | |||||
134 | committed = [] # [ctx] |
|
134 | committed = [] # [ctx] | |
135 |
|
135 | |||
136 | # Set working parent to ctx.p1(), and keep working copy as ctx's content |
|
136 | # Set working parent to ctx.p1(), and keep working copy as ctx's content | |
137 | # NOTE: if we can have "update without touching working copy" API, the |
|
137 | if ctx.node() != repo.dirstate.p1(): | |
138 | # revert step could be cheaper. |
|
138 | hg.clean(repo, ctx.node(), show_stats=False) | |
139 | hg.clean(repo, ctx.p1().node(), show_stats=False) |
|
139 | with repo.dirstate.parentchange(): | |
140 | parents = repo.changelog.parents(ctx.node()) |
|
140 | scmutil.movedirstate(repo, ctx.p1()) | |
141 | ui.pushbuffer() |
|
|||
142 | cmdutil.revert(ui, repo, ctx, parents) |
|
|||
143 | ui.popbuffer() # discard "reverting ..." messages |
|
|||
144 |
|
141 | |||
145 | # Any modified, added, removed, deleted result means split is incomplete |
|
142 | # Any modified, added, removed, deleted result means split is incomplete | |
146 | incomplete = lambda repo: any(repo.status()[:4]) |
|
143 | incomplete = lambda repo: any(repo.status()[:4]) |
@@ -265,91 +265,3 Note the lack of a 'cd' being necessary | |||||
265 | 0:d17db4b0303a add bar |
|
265 | 0:d17db4b0303a add bar | |
266 |
|
266 | |||
267 | $ cd $TESTTMP |
|
267 | $ cd $TESTTMP | |
268 |
|
||||
269 | Testing `hg split` being run from inside of a directory that was created in the |
|
|||
270 | commit being split: |
|
|||
271 |
|
||||
272 | $ hg init hgsplit |
|
|||
273 | $ cd hgsplit |
|
|||
274 | $ cat >> .hg/hgrc << EOF |
|
|||
275 | > [ui] |
|
|||
276 | > interactive = 1 |
|
|||
277 | > [extensions] |
|
|||
278 | > split = |
|
|||
279 | > EOF |
|
|||
280 | $ echo anchor > anchor.txt |
|
|||
281 | $ hg ci -qAm anchor |
|
|||
282 |
|
||||
283 | Create a changeset with '/otherfile_in_root' and 'somedir/foo', then try to |
|
|||
284 | split it. |
|
|||
285 | $ echo otherfile > otherfile_in_root |
|
|||
286 | $ mkdir somedir |
|
|||
287 | $ cd somedir |
|
|||
288 | $ echo hi > foo |
|
|||
289 | $ hg ci -qAm split_me |
|
|||
290 | (Note: need to make this file not in this directory, or else the bug doesn't |
|
|||
291 | reproduce; we're using a separate file due to concerns of portability on |
|
|||
292 | `echo -e`) |
|
|||
293 | $ cat > ../split_commands << EOF |
|
|||
294 | > n |
|
|||
295 | > y |
|
|||
296 | > y |
|
|||
297 | > a |
|
|||
298 | > EOF |
|
|||
299 |
|
||||
300 | The split succeeds on no-rmcwd platforms, which alters the rest of the tests |
|
|||
301 | #if rmcwd |
|
|||
302 | $ cat ../split_commands | hg split |
|
|||
303 | current directory was removed |
|
|||
304 | (consider changing to repo root: $TESTTMP/hgsplit) |
|
|||
305 | diff --git a/otherfile_in_root b/otherfile_in_root |
|
|||
306 | new file mode 100644 |
|
|||
307 | examine changes to 'otherfile_in_root'? [Ynesfdaq?] n |
|
|||
308 |
|
||||
309 | diff --git a/somedir/foo b/somedir/foo |
|
|||
310 | new file mode 100644 |
|
|||
311 | examine changes to 'somedir/foo'? [Ynesfdaq?] y |
|
|||
312 |
|
||||
313 | @@ -0,0 +1,1 @@ |
|
|||
314 | +hi |
|
|||
315 | record change 2/2 to 'somedir/foo'? [Ynesfdaq?] y |
|
|||
316 |
|
||||
317 | abort: $ENOENT$ |
|
|||
318 | [255] |
|
|||
319 | #endif |
|
|||
320 |
|
||||
321 | Let's try that again without the rmdir |
|
|||
322 | $ cd $TESTTMP/hgsplit/somedir |
|
|||
323 | Show that the previous split didn't do anything |
|
|||
324 | $ hg log -T '{rev}:{node|short} {desc}\n' |
|
|||
325 | 1:e26b22a4f0b7 split_me |
|
|||
326 | 0:7e53273730c0 anchor |
|
|||
327 | $ hg status |
|
|||
328 | ? split_commands |
|
|||
329 | Try again |
|
|||
330 | $ cat ../split_commands | hg $NO_RM split |
|
|||
331 | diff --git a/otherfile_in_root b/otherfile_in_root |
|
|||
332 | new file mode 100644 |
|
|||
333 | examine changes to 'otherfile_in_root'? [Ynesfdaq?] n |
|
|||
334 |
|
||||
335 | diff --git a/somedir/foo b/somedir/foo |
|
|||
336 | new file mode 100644 |
|
|||
337 | examine changes to 'somedir/foo'? [Ynesfdaq?] y |
|
|||
338 |
|
||||
339 | @@ -0,0 +1,1 @@ |
|
|||
340 | +hi |
|
|||
341 | record change 2/2 to 'somedir/foo'? [Ynesfdaq?] y |
|
|||
342 |
|
||||
343 | created new head |
|
|||
344 | diff --git a/otherfile_in_root b/otherfile_in_root |
|
|||
345 | new file mode 100644 |
|
|||
346 | examine changes to 'otherfile_in_root'? [Ynesfdaq?] a |
|
|||
347 |
|
||||
348 | saved backup bundle to $TESTTMP/hgsplit/.hg/strip-backup/*-split.hg (glob) |
|
|||
349 | Show that this split did something |
|
|||
350 | $ hg log -T '{rev}:{node|short} {desc}\n' |
|
|||
351 | 2:a440f24fca4f split_me |
|
|||
352 | 1:c994f20276ab split_me |
|
|||
353 | 0:7e53273730c0 anchor |
|
|||
354 | $ hg status |
|
|||
355 | ? split_commands |
|
General Comments 0
You need to be logged in to leave comments.
Login now