Show More
@@ -3297,6 +3297,14 b' def clearunfinished(repo):' | |||
|
3297 | 3297 | if s._clearable and s.isunfinished(repo): |
|
3298 | 3298 | util.unlink(repo.vfs.join(s._fname)) |
|
3299 | 3299 | |
|
3300 | def getunfinishedstate(repo): | |
|
3301 | ''' Checks for unfinished operations and returns statecheck object | |
|
3302 | for it''' | |
|
3303 | for state in statemod._unfinishedstates: | |
|
3304 | if state.isunfinished(repo): | |
|
3305 | return state | |
|
3306 | return None | |
|
3307 | ||
|
3300 | 3308 | def howtocontinue(repo): |
|
3301 | 3309 | '''Check for an unfinished operation and return the command to finish |
|
3302 | 3310 | it. |
@@ -3952,6 +3952,10 b' def merge(ui, repo, node=None, **opts):' | |||
|
3952 | 3952 | if abort and repo.dirstate.p2() == nullid: |
|
3953 | 3953 | cmdutil.wrongtooltocontinue(repo, _('merge')) |
|
3954 | 3954 | if abort: |
|
3955 | state = cmdutil.getunfinishedstate(repo) | |
|
3956 | if state and state._opname != 'merge': | |
|
3957 | raise error.Abort(_('cannot abort merge with %s in progress') % | |
|
3958 | (state._opname), hint=state.hint()) | |
|
3955 | 3959 | if node: |
|
3956 | 3960 | raise error.Abort(_("cannot specify a node with --abort")) |
|
3957 | 3961 | if opts.get('rev'): |
@@ -81,6 +81,10 b'' | |||
|
81 | 81 | |
|
82 | 82 | * `cmdutil.checkunfinished()` now includes detection for merge too. |
|
83 | 83 | |
|
84 | * merge abort has been disallowed in case an operation of higher | |
|
85 | precedence is in progress to avoid cases of partial abort of | |
|
86 | operations. | |
|
87 | ||
|
84 | 88 | * We used to automatically attempt to make extensions compatible with |
|
85 | 89 | Python 3 (by translating their source code while loading it). We no |
|
86 | 90 | longer do that. |
@@ -847,3 +847,38 b' Unshelve without .shelve metadata (can h' | |||
|
847 | 847 | #endif |
|
848 | 848 | |
|
849 | 849 | $ cd .. |
|
850 | ||
|
851 | Block merge abort when unshelve in progress(issue6160) | |
|
852 | ------------------------------------------------------ | |
|
853 | ||
|
854 | $ hg init a | |
|
855 | $ cd a | |
|
856 | $ echo foo > a ; hg commit -qAm "initial commit" | |
|
857 | $ echo bar > a | |
|
858 | $ hg shelve | |
|
859 | shelved as default | |
|
860 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
861 | $ echo foobar > a | |
|
862 | $ hg unshelve | |
|
863 | unshelving change 'default' | |
|
864 | temporarily committing pending changes (restore with 'hg unshelve --abort') | |
|
865 | rebasing shelved changes | |
|
866 | merging a | |
|
867 | warning: conflicts while merging a! (edit, then use 'hg resolve --mark') | |
|
868 | unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue') | |
|
869 | [1] | |
|
870 | ||
|
871 | $ hg log --template '{desc|firstline} {author} {date|isodate} \n' -r . | |
|
872 | pending changes temporary commit shelve@localhost 1970-01-01 00:00 +0000 | |
|
873 | $ hg merge --abort | |
|
874 | abort: cannot abort merge with unshelve in progress | |
|
875 | (use 'hg unshelve --continue' or 'hg unshelve --abort') | |
|
876 | [255] | |
|
877 | ||
|
878 | $ hg unshelve --abort | |
|
879 | unshelve of 'default' aborted | |
|
880 | ||
|
881 | $ hg log -G --template '{desc|firstline} {author} {date|isodate} \n' -r . | |
|
882 | @ initial commit test 1970-01-01 00:00 +0000 | |
|
883 | ||
|
884 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now