34 Public method used to shutdown the purge interface. |
32 Public method used to shutdown the purge interface. |
35 """ |
33 """ |
36 if self.purgeListDialog is not None: |
34 if self.purgeListDialog is not None: |
37 self.purgeListDialog.close() |
35 self.purgeListDialog.close() |
38 |
36 |
39 def __getEntries(self, repodir, deleteAll): |
37 def __getEntries(self, deleteAll): |
40 """ |
38 """ |
41 Private method to get a list of files/directories being purged. |
39 Private method to get a list of files/directories being purged. |
42 |
40 |
43 @param repodir directory name of the repository (string) |
|
44 @param deleteAll flag indicating to delete all files including ignored |
41 @param deleteAll flag indicating to delete all files including ignored |
45 ones (boolean) |
42 ones |
46 @return name of the current patch (string) |
43 @type bool |
|
44 @return name of the current patch |
|
45 @rtype str |
47 """ |
46 """ |
48 purgeEntries = [] |
47 purgeEntries = [] |
49 |
48 |
50 args = self.vcs.initCommand("purge") |
49 args = self.vcs.initCommand("purge") |
51 args.append("--print") |
50 args.append("--print") |
57 if out: |
56 if out: |
58 purgeEntries = out.strip().split() |
57 purgeEntries = out.strip().split() |
59 |
58 |
60 return purgeEntries |
59 return purgeEntries |
61 |
60 |
62 def hgPurge(self, name, deleteAll=False): |
61 def hgPurge(self, deleteAll=False): |
63 """ |
62 """ |
64 Public method to purge files and directories not tracked by Mercurial. |
63 Public method to purge files and directories not tracked by Mercurial. |
65 |
64 |
66 @param name file/directory name (string) |
|
67 @param deleteAll flag indicating to delete all files including ignored |
65 @param deleteAll flag indicating to delete all files including ignored |
68 ones (boolean) |
66 ones |
|
67 @type bool |
69 """ |
68 """ |
70 # find the root of the repo |
|
71 repodir = self.vcs.splitPath(name)[0] |
|
72 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
|
73 repodir = os.path.dirname(repodir) |
|
74 if os.path.splitdrive(repodir)[1] == os.sep: |
|
75 return |
|
76 |
|
77 if deleteAll: |
69 if deleteAll: |
78 title = self.tr("Purge All Files") |
70 title = self.tr("Purge All Files") |
79 message = self.tr( |
71 message = self.tr( |
80 """Do really want to delete all files not tracked by""" |
72 """Do really want to delete all files not tracked by""" |
81 """ Mercurial (including ignored ones)?""") |
73 """ Mercurial (including ignored ones)?""") |
82 else: |
74 else: |
83 title = self.tr("Purge Files") |
75 title = self.tr("Purge Files") |
84 message = self.tr( |
76 message = self.tr( |
85 """Do really want to delete files not tracked by Mercurial?""") |
77 """Do really want to delete files not tracked by Mercurial?""") |
86 entries = self.__getEntries(repodir, deleteAll) |
78 entries = self.__getEntries(deleteAll) |
87 from UI.DeleteFilesConfirmationDialog import ( |
79 from UI.DeleteFilesConfirmationDialog import ( |
88 DeleteFilesConfirmationDialog |
80 DeleteFilesConfirmationDialog |
89 ) |
81 ) |
90 dlg = DeleteFilesConfirmationDialog(None, title, message, entries) |
82 dlg = DeleteFilesConfirmationDialog(None, title, message, entries) |
91 if dlg.exec() == QDialog.Accepted: |
83 if dlg.exec() == QDialog.Accepted: |
93 if deleteAll: |
85 if deleteAll: |
94 args.append("--all") |
86 args.append("--all") |
95 args.append("-v") |
87 args.append("-v") |
96 |
88 |
97 dia = HgDialog(title, self.vcs) |
89 dia = HgDialog(title, self.vcs) |
98 res = dia.startProcess(args, repodir) |
90 res = dia.startProcess(args) |
99 if res: |
91 if res: |
100 dia.exec() |
92 dia.exec() |
101 |
93 |
102 def hgPurgeList(self, name, deleteAll=False): |
94 def hgPurgeList(self, deleteAll=False): |
103 """ |
95 """ |
104 Public method to list files and directories not tracked by Mercurial. |
96 Public method to list files and directories not tracked by Mercurial. |
105 |
97 |
106 @param name file/directory name (string) |
|
107 @param deleteAll flag indicating to list all files including ignored |
98 @param deleteAll flag indicating to list all files including ignored |
108 ones (boolean) |
99 ones (boolean) |
109 """ |
100 """ |
110 # find the root of the repo |
101 entries = self.__getEntries(deleteAll) |
111 repodir = self.vcs.splitPath(name)[0] |
|
112 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
|
113 repodir = os.path.dirname(repodir) |
|
114 if os.path.splitdrive(repodir)[1] == os.sep: |
|
115 return |
|
116 |
|
117 entries = self.__getEntries(repodir, deleteAll) |
|
118 from .HgPurgeListDialog import HgPurgeListDialog |
102 from .HgPurgeListDialog import HgPurgeListDialog |
119 self.purgeListDialog = HgPurgeListDialog(entries) |
103 self.purgeListDialog = HgPurgeListDialog(entries) |
120 self.purgeListDialog.show() |
104 self.purgeListDialog.show() |