Show More
@@ -367,7 +367,9 b' class rebaseruntime(object):' | |||||
367 | skippedset.update(obsoleteextinctsuccessors) |
|
367 | skippedset.update(obsoleteextinctsuccessors) | |
368 | _checkobsrebase(self.repo, self.ui, obsoleteset, skippedset) |
|
368 | _checkobsrebase(self.repo, self.ui, obsoleteset, skippedset) | |
369 |
|
369 | |||
370 | def _prepareabortorcontinue(self, isabort, backup=True, suppwarns=False): |
|
370 | def _prepareabortorcontinue( | |
|
371 | self, isabort, backup=True, suppwarns=False, dryrun=False, confirm=False | |||
|
372 | ): | |||
371 | self.resume = True |
|
373 | self.resume = True | |
372 | try: |
|
374 | try: | |
373 | self.restorestatus() |
|
375 | self.restorestatus() | |
@@ -390,7 +392,12 b' class rebaseruntime(object):' | |||||
390 |
|
392 | |||
391 | if isabort: |
|
393 | if isabort: | |
392 | backup = backup and self.backupf |
|
394 | backup = backup and self.backupf | |
393 |
return self._abort( |
|
395 | return self._abort( | |
|
396 | backup=backup, | |||
|
397 | suppwarns=suppwarns, | |||
|
398 | dryrun=dryrun, | |||
|
399 | confirm=confirm, | |||
|
400 | ) | |||
394 |
|
401 | |||
395 | def _preparenewrebase(self, destmap): |
|
402 | def _preparenewrebase(self, destmap): | |
396 | if not destmap: |
|
403 | if not destmap: | |
@@ -749,7 +756,7 b' class rebaseruntime(object):' | |||||
749 | ): |
|
756 | ): | |
750 | bookmarks.activate(repo, self.activebookmark) |
|
757 | bookmarks.activate(repo, self.activebookmark) | |
751 |
|
758 | |||
752 | def _abort(self, backup=True, suppwarns=False): |
|
759 | def _abort(self, backup=True, suppwarns=False, dryrun=False, confirm=False): | |
753 | '''Restore the repository to its original state.''' |
|
760 | '''Restore the repository to its original state.''' | |
754 |
|
761 | |||
755 | repo = self.repo |
|
762 | repo = self.repo | |
@@ -793,7 +800,10 b' class rebaseruntime(object):' | |||||
793 |
|
800 | |||
794 | updateifonnodes = set(rebased) |
|
801 | updateifonnodes = set(rebased) | |
795 | updateifonnodes.update(self.destmap.values()) |
|
802 | updateifonnodes.update(self.destmap.values()) | |
|
803 | ||||
|
804 | if not dryrun and not confirm: | |||
796 | updateifonnodes.add(self.originalwd) |
|
805 | updateifonnodes.add(self.originalwd) | |
|
806 | ||||
797 | shouldupdate = repo[b'.'].rev() in updateifonnodes |
|
807 | shouldupdate = repo[b'.'].rev() in updateifonnodes | |
798 |
|
808 | |||
799 | # Update away from the rebase if necessary |
|
809 | # Update away from the rebase if necessary | |
@@ -1119,7 +1129,10 b' def _dryrunrebase(ui, repo, action, opts' | |||||
1119 | rbsrt._finishrebase() |
|
1129 | rbsrt._finishrebase() | |
1120 | else: |
|
1130 | else: | |
1121 | rbsrt._prepareabortorcontinue( |
|
1131 | rbsrt._prepareabortorcontinue( | |
1122 |
isabort=True, |
|
1132 | isabort=True, | |
|
1133 | backup=False, | |||
|
1134 | suppwarns=True, | |||
|
1135 | confirm=confirm, | |||
1123 | ) |
|
1136 | ) | |
1124 | needsabort = False |
|
1137 | needsabort = False | |
1125 | else: |
|
1138 | else: | |
@@ -1134,7 +1147,10 b' def _dryrunrebase(ui, repo, action, opts' | |||||
1134 | if needsabort: |
|
1147 | if needsabort: | |
1135 | # no need to store backup in case of dryrun |
|
1148 | # no need to store backup in case of dryrun | |
1136 | rbsrt._prepareabortorcontinue( |
|
1149 | rbsrt._prepareabortorcontinue( | |
1137 |
isabort=True, |
|
1150 | isabort=True, | |
|
1151 | backup=False, | |||
|
1152 | suppwarns=True, | |||
|
1153 | dryrun=opts.get(b'dry_run'), | |||
1138 | ) |
|
1154 | ) | |
1139 |
|
1155 | |||
1140 |
|
1156 |
@@ -339,15 +339,23 b' Reopen branch by rebase' | |||||
339 | -A |
|
339 | -A | |
340 | +A-mod |
|
340 | +A-mod | |
341 |
|
341 | |||
342 | BUG: This shouldn't affect wdir |
|
342 | --dry-run doesn't affect a dirty working directory that is unrelated to the | |
|
343 | source or destination. | |||
343 |
|
344 | |||
344 | $ hg rebase -s tip -d 4 --dry-run |
|
345 | $ hg rebase -s tip -d 4 --dry-run | |
345 | starting dry-run rebase; repository will not be changed |
|
346 | starting dry-run rebase; repository will not be changed | |
346 | rebasing 11:be1dea60f2a6 "D" (tip) |
|
347 | rebasing 11:be1dea60f2a6 "D" (tip) | |
347 | dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase |
|
348 | dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase | |
348 | $ hg diff |
|
349 | $ hg diff | |
|
350 | diff -r 2b586e70108d A | |||
|
351 | --- a/A Thu Jan 01 00:00:00 1970 +0000 | |||
|
352 | +++ b/A Thu Jan 01 00:00:00 1970 +0000 | |||
|
353 | @@ -1,1 +1,1 @@ | |||
|
354 | -A | |||
|
355 | +A-mod | |||
349 |
|
356 | |||
350 | BUG: This shouldn't affect wdir |
|
357 | Bailing out on --confirm doesn't affect a dirty working directory that is | |
|
358 | unrelated to the source or destination. | |||
351 |
|
359 | |||
352 | $ echo A-mod > A |
|
360 | $ echo A-mod > A | |
353 | $ echo n | hg rebase -s tip -d 4 --confirm --config ui.interactive=True |
|
361 | $ echo n | hg rebase -s tip -d 4 --confirm --config ui.interactive=True | |
@@ -356,6 +364,12 b" BUG: This shouldn't affect wdir" | |||||
356 | rebase completed successfully |
|
364 | rebase completed successfully | |
357 | apply changes (yn)? n |
|
365 | apply changes (yn)? n | |
358 | $ hg diff |
|
366 | $ hg diff | |
|
367 | diff -r 2b586e70108d A | |||
|
368 | --- a/A Thu Jan 01 00:00:00 1970 +0000 | |||
|
369 | +++ b/A Thu Jan 01 00:00:00 1970 +0000 | |||
|
370 | @@ -1,1 +1,1 @@ | |||
|
371 | -A | |||
|
372 | +A-mod | |||
359 |
|
373 | |||
360 | $ echo A-mod > A |
|
374 | $ echo A-mod > A | |
361 | $ hg rebase -s tip -d 4 --confirm |
|
375 | $ hg rebase -s tip -d 4 --confirm |
General Comments 0
You need to be logged in to leave comments.
Login now