Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py

changeset 210
b1a204f22291
parent 209
94e34c41e823
child 211
4da68bd1a703
equal deleted inserted replaced
209:94e34c41e823 210:b1a204f22291
61 self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'), 61 self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'),
62 self.__sourceChanged) 62 self.__sourceChanged)
63 63
64 self.revisions = [] # stack of remembered revisions 64 self.revisions = [] # stack of remembered revisions
65 self.revString = self.trUtf8('Revision') 65 self.revString = self.trUtf8('Revision')
66 self.projectMode = False
66 67
67 self.logEntries = [] # list of log entries 68 self.logEntries = [] # list of log entries
68 self.lastLogEntry = {} 69 self.lastLogEntry = {}
69 self.fileCopies = {} 70 self.fileCopies = {}
70 self.endInitialText = False 71 self.endInitialText = False
71 self.initialText = "" 72 self.initialText = []
72 73
73 self.diff = None 74 self.diff = None
74 75
75 def closeEvent(self, e): 76 def closeEvent(self, e):
76 """ 77 """
104 self.repodir = self.dname 105 self.repodir = self.dname
105 while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)): 106 while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)):
106 self.repodir = os.path.dirname(self.repodir) 107 self.repodir = os.path.dirname(self.repodir)
107 if self.repodir == os.sep: 108 if self.repodir == os.sep:
108 return 109 return
110
111 self.projectMode = (self.fname == "." and self.dname == self.repodir)
109 112
110 self.process.kill() 113 self.process.kill()
111 114
112 self.activateWindow() 115 self.activateWindow()
113 self.raise_() 116 self.raise_()
129 project = e5App().getObject("Project") 132 project = e5App().getObject("Project")
130 self.vcs.bundleFile = os.path.join( 133 self.vcs.bundleFile = os.path.join(
131 project.getProjectManagementDir(), "hg-bundle.hg") 134 project.getProjectManagementDir(), "hg-bundle.hg")
132 args.append('--bundle') 135 args.append('--bundle')
133 args.append(self.vcs.bundleFile) 136 args.append(self.vcs.bundleFile)
134 if self.fname != "." or self.dname != self.repodir: 137 if not self.projectMode:
135 args.append(self.filename) 138 args.append(self.filename)
136 139
137 self.process.setWorkingDirectory(self.repodir) 140 self.process.setWorkingDirectory(self.repodir)
138 141
139 self.process.start('hg', args) 142 self.process.start('hg', args)
158 parents = [] 161 parents = []
159 162
160 process = QProcess() 163 process = QProcess()
161 args = [] 164 args = []
162 args.append("parents") 165 args.append("parents")
163 if self.commandMode == "incoming" and self.vcs.bundleFile: 166 if self.mode == "incoming" and self.vcs.bundleFile:
164 args.append("--repository") 167 args.append("--repository")
165 args.append(self.vcs.bundleFile) 168 args.append(self.vcs.bundleFile)
166 args.append("--template") 169 args.append("--template")
167 args.append("{rev}:{node|short}\n") 170 args.append("{rev}:{node|short}\n")
168 args.append("-r") 171 args.append("-r")
169 args.append(rev) 172 args.append(rev)
170 args.append(self.filename) 173 if not self.projectMode:
174 args.append(self.filename)
171 175
172 process.setWorkingDirectory(self.repodir) 176 process.setWorkingDirectory(self.repodir)
173 process.start('hg', args) 177 process.start('hg', args)
174 procStarted = process.waitForStarted() 178 procStarted = process.waitForStarted()
175 if procStarted: 179 if procStarted:
210 .format(self.filename)) 214 .format(self.filename))
211 self.errorGroup.show() 215 self.errorGroup.show()
212 return 216 return
213 217
214 if self.initialText: 218 if self.initialText:
215 self.contents.insertHtml(Utilities.html_encode(self.initialText.strip())) 219 for line in self.initialText:
216 self.contents.insertHtml('<br />\n') 220 self.contents.insertHtml(Utilities.html_encode(line.strip()))
221 self.contents.insertHtml('<br />\n')
217 self.contents.insertHtml('{0}<br/>\n'.format(80 * "=")) 222 self.contents.insertHtml('{0}<br/>\n'.format(80 * "="))
218 223
219 for entry in self.logEntries: 224 for entry in self.logEntries:
220 fileCopies = {} 225 fileCopies = {}
221 for fentry in entry["file_copies"].split(", "): 226 if entry["file_copies"]:
222 newName, oldName = entry[:-1].split(" (") 227 for fentry in entry["file_copies"].split(", "):
223 fileCopies[newName] = oldName 228 newName, oldName = fentry[:-1].split(" (")
229 fileCopies[newName] = oldName
224 230
225 rev, hexRev = entry["change"].split(":") 231 rev, hexRev = entry["change"].split(":")
226 dstr = '<p><b>{0} {1}</b>'.format(self.revString, entry["change"]) 232 dstr = '<p><b>{0} {1}</b>'.format(self.revString, entry["change"])
227 parents = self.__getParents(rev) 233 if entry["parents"]:
234 parents = entry["parents"].split()
235 else:
236 parents = self.__getParents(rev)
228 for parent in parents: 237 for parent in parents:
229 url = QUrl() 238 url = QUrl()
230 url.setScheme("file") 239 url.setScheme("file")
231 url.setPath(self.filename) 240 url.setPath(self.filename)
232 query = QByteArray() 241 query = QByteArray()

eric ide

mercurial