##// END OF EJS Templates
mq: qimport cleanup on fail (issue2214)...
Vishakh H -
r11462:1b82a266 stable
parent child Browse files
Show More
@@ -0,0 +1,33 b''
1 #!/bin/sh
2 #failed qimport of patches from files should cleanup by recording successfully
3 #imported patches in series file.
4
5 echo "[extensions]" >> $HGRCPATH
6 echo "mq=" >> $HGRCPATH
7
8 hg init repo
9 cd repo
10
11 echo a > a
12 hg ci -Am'add a'
13
14 cat >b.patch<<EOF
15 diff --git a/a b/a
16 --- a/a
17 +++ b/a
18 @@ -1,1 +1,2 @@
19 a
20 +b
21 EOF
22
23 echo
24 echo '#empty series'
25 hg qseries
26
27 echo
28 echo '#qimport valid patch followed by invalid patch'
29 hg qimport b.patch fakepatch
30
31 echo
32 echo '#valid patches before fail added to series'
33 hg qseries
@@ -0,0 +1,10 b''
1 adding a
2
3 #empty series
4
5 #qimport valid patch followed by invalid patch
6 adding b.patch to series file
7 abort: unable to read fakepatch
8
9 #valid patches before fail added to series
10 b.patch
@@ -250,6 +250,7 b' class queue(object):'
250 self.ui = ui
250 self.ui = ui
251 self.applied_dirty = 0
251 self.applied_dirty = 0
252 self.series_dirty = 0
252 self.series_dirty = 0
253 self.added = []
253 self.series_path = "series"
254 self.series_path = "series"
254 self.status_path = "status"
255 self.status_path = "status"
255 self.guards_path = "guards"
256 self.guards_path = "guards"
@@ -1622,7 +1623,7 b' class queue(object):'
1622 if (len(files) > 1 or len(rev) > 1) and patchname:
1623 if (len(files) > 1 or len(rev) > 1) and patchname:
1623 raise util.Abort(_('option "-n" not valid when importing multiple '
1624 raise util.Abort(_('option "-n" not valid when importing multiple '
1624 'patches'))
1625 'patches'))
1625 added = []
1626 self.added = []
1626 if rev:
1627 if rev:
1627 # If mq patches are applied, we can only import revisions
1628 # If mq patches are applied, we can only import revisions
1628 # that form a linear path to qbase.
1629 # that form a linear path to qbase.
@@ -1672,10 +1673,11 b' class queue(object):'
1672 se = statusentry(n, patchname)
1673 se = statusentry(n, patchname)
1673 self.applied.insert(0, se)
1674 self.applied.insert(0, se)
1674
1675
1675 added.append(patchname)
1676 self.added.append(patchname)
1676 patchname = None
1677 patchname = None
1677 self.parse_series()
1678 self.parse_series()
1678 self.applied_dirty = 1
1679 self.applied_dirty = 1
1680 self.series_dirty = True
1679
1681
1680 for i, filename in enumerate(files):
1682 for i, filename in enumerate(files):
1681 if existing:
1683 if existing:
@@ -1709,13 +1711,10 b' class queue(object):'
1709 index = self.full_series_end() + i
1711 index = self.full_series_end() + i
1710 self.full_series[index:index] = [patchname]
1712 self.full_series[index:index] = [patchname]
1711 self.parse_series()
1713 self.parse_series()
1714 self.series_dirty = True
1712 self.ui.warn(_("adding %s to series file\n") % patchname)
1715 self.ui.warn(_("adding %s to series file\n") % patchname)
1713 added.append(patchname)
1716 self.added.append(patchname)
1714 patchname = None
1717 patchname = None
1715 self.series_dirty = 1
1716 qrepo = self.qrepo()
1717 if qrepo:
1718 qrepo[None].add(added)
1719
1718
1720 def delete(ui, repo, *patches, **opts):
1719 def delete(ui, repo, *patches, **opts):
1721 """remove patches from queue
1720 """remove patches from queue
@@ -1805,10 +1804,15 b' def qimport(ui, repo, *filename, **opts)'
1805 using the --name flag.
1804 using the --name flag.
1806 """
1805 """
1807 q = repo.mq
1806 q = repo.mq
1808 q.qimport(repo, filename, patchname=opts['name'],
1807 try:
1808 q.qimport(repo, filename, patchname=opts['name'],
1809 existing=opts['existing'], force=opts['force'], rev=opts['rev'],
1809 existing=opts['existing'], force=opts['force'], rev=opts['rev'],
1810 git=opts['git'])
1810 git=opts['git'])
1811 q.save_dirty()
1811 finally:
1812 q.save_dirty()
1813 qrepo = q.qrepo()
1814 if qrepo:
1815 qrepo[None].add(q.added)
1812
1816
1813 if opts.get('push') and not opts.get('rev'):
1817 if opts.get('push') and not opts.get('rev'):
1814 return q.push(repo, None)
1818 return q.push(repo, None)
General Comments 0
You need to be logged in to leave comments. Login now