Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

repowidget: implement export functions

Changeset 444d7a2f6f6f

Parent 432394540624

by Steve Borho

Changes to one file · Browse files at 444d7a2f6f6f Showing diff from parent 432394540624 Diff from another changeset...

 
9
10
11
12
 
13
14
15
 
365
366
367
 
368
369
370
 
733
734
735
736
 
 
737
738
739
 
762
763
764
 
765
766
767
 
784
785
786
 
 
 
 
 
 
 
 
787
788
789
 
 
 
 
790
791
 
 
 
 
 
 
792
793
794
795
796
797
798
799
800
801
802
803
804
 
805
806
807
 
869
870
871
 
 
 
 
872
873
874
 
9
10
11
 
12
13
14
15
 
365
366
367
368
369
370
371
 
734
735
736
 
737
738
739
740
741
 
764
765
766
767
768
769
770
 
787
788
789
790
791
792
793
794
795
796
797
798
799
 
800
801
802
803
804
 
805
806
807
808
809
810
811
812
813
814
815
816
 
 
 
 
 
 
 
817
818
819
820
 
882
883
884
885
886
887
888
889
890
891
@@ -9,7 +9,7 @@
 import binascii  import os   -from mercurial import util, revset +from mercurial import util, revset, commands    from tortoisehg.util import shlib, hglib   @@ -365,6 +365,7 @@
  ('merge', _('Merge with...'), 'merge', None, None, self.mergeWithRevision),   ('tag', _('Tag...'), 'tag', None, None, self.tagToRevision),   ('backout', _('Backout...'), None, None, None, self.backoutToRevision), + ('export', _('Export patch...'), None, None, None, self.exportRevision),   ('email', _('Email patch...'), None, None, None, self.emailRevision),   ('archive', _('Archive...'), None, None, None, self.archiveRevision),   ('copyhash', _('Copy hash'), None, None, None, self.copyHash), @@ -733,7 +734,8 @@
  if not self.singlecmenu:   menu = QMenu(self)   allactions = [[None, ['update', 'manifest', 'merge', 'tag', - 'backout', 'email', 'archive', 'copyhash']], + 'backout', 'export', 'email', 'archive', + 'copyhash']],   ['rebase', ['rebase']],   ['mq', ['qgoto', 'qpop-all', 'qimport', 'qfinish',   'qdelete', 'strip']], @@ -762,6 +764,7 @@
  'merge': normalrev,   'tag': normalrev,   'backout': normalrev, + 'export': not workingdir,   'email': not workingdir,   'archive': realrev,   'copyhash': realrev, @@ -784,24 +787,34 @@
  # No pair menu if working directoy is selected   return   revA, revB = selection + def dagrange(): + if revA > revB: + B, A = selection + else: + A, B = selection + func = revset.match('%s::%s' % (A, B)) + func(self.repo, range(0, 1)) + return [c for c in func(self.repo, range(len(self.repo)))]     def exportPair(): - pass + epath = os.path.join(self.repo.root, + self.repo.shortname + '_%r.patch') + commands.export(self.repo.ui, self.repo, str(revA), str(revB), + output=epath)   def exportDagRange(): - pass + l = [str(r) for r in dagrange()] + if l: + epath = os.path.join(self.repo.root, + self.repo.shortname + '_%r.patch') + commands.export(self.repo.ui, self.repo, *l, + output=epath)   def diffPair():   visdiff.visualdiff(self.repo.ui, self.repo, [],   {'rev':'%s:%s' % (revA, revB)})   def emailPair():   run.email(self.repo.ui, rev=selection, repo=self.repo)   def emailDagRange(): - if revA > revB: - B, A = selection - else: - A, B = selection - func = revset.match('%s::%s' % (A, B)) - func(self.repo, range(0, 1)) - l = [c for c in func(self.repo, range(len(self.repo)))] + l = dagrange()   if l:   run.email(self.repo.ui, rev=l, repo=self.repo)   def bisectNormal(): @@ -869,6 +882,10 @@
  run.postreview(self.repo.ui, rev=self.repoview.selectedRevisions(),   repo=self.repo)   + def exportRevision(self): + epath = os.path.join(self.repo.root, self.repo.shortname + '_%r.patch') + commands.export(self.repo.ui, self.repo, str(self.rev), output=epath) +   def emailRevision(self):   run.email(self.repo.ui, rev=self.repoview.selectedRevisions(),   repo=self.repo)