Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.1, 1.1.1, and 1.1.2

Merge with stable

Changeset 46563a100cbc

Parents 9b7d5ec6dbf0

Parents f4b1111dd067

by Steve Borho

Changes to 4 files · Browse files at 46563a100cbc Showing diff from parent 9b7d5ec6dbf0 f4b1111dd067 Diff from another changeset...

 
226
227
228
229
 
230
231
 
232
233
 
234
235
236
 
237
238
 
239
240
241
 
 
242
243
 
 
244
245
 
246
247
 
248
249
250
251
 
252
253
 
 
254
255
 
256
257
 
258
259
260
261
 
262
263
 
264
265
266
 
267
268
269
 
272
273
274
275
 
276
277
278
 
294
295
296
297
 
298
299
 
 
300
301
302
303
304
305
306
 
307
308
309
 
321
322
323
324
325
326
327
 
328
329
330
331
332
 
333
334
335
 
226
227
228
 
229
230
 
231
232
 
233
234
235
 
236
237
 
238
239
240
 
241
242
243
 
244
245
246
 
247
248
 
249
250
251
252
 
253
254
 
255
256
257
 
258
259
 
260
261
262
263
 
264
265
 
266
267
268
 
269
270
271
272
 
275
276
277
 
278
279
280
281
 
297
298
299
 
300
301
 
302
303
304
305
306
307
308
309
 
310
311
312
313
 
325
326
327
 
 
 
 
328
329
 
 
 
 
330
331
332
333
@@ -226,44 +226,47 @@
 revision context menu.     :guilabel:`Visualize Change` - open this change in your visual diff tool + Open this change in your visual diff tool   :guilabel:`Display Change` - open this changeset in the changeset browser (more below) + Open this changeset in the changeset browser (more below)   :guilabel:`Diff to Local` - display changes (visual diff) between this revision and your + Display changes (visual diff) between this revision and your   current working directory   :guilabel:`Copy Hash` - copy current revision's full hash to the clipboard + Copy current revision's full hash to the clipboard   :guilabel:`Push to Here` - performs the equivalent of 'push -r <rev>'. This option is only + Performs the equivalent of 'push -r <rev>'. This option is only   available on changesets marked as outgoing.   :guilabel:`Update...` - update your working directory to this revision [#rcm1]_ + Update your working directory to this revision. Opens the + TortoiseHg update dialog with this revision selected.   :guilabel:`Merge With...` - merge with this revision [#rcm2]_ + Merge with this revision. Opens the TortoiseHg merge dialog with + this revision selected.   :guilabel:`Backout...` - create a backout changeset for selected revision + Create a backout changeset for selected revision   :guilabel:`Revert` - revert working copy to this revision's contents, without + Revert working copy to this revision's contents, without   updating working directory parent revision. Use with care.   :guilabel:`Export`   :guilabel:`Export Patch` - generate a patch file containing this revision's changes + Generate a patch file containing this revision's changes   :guilabel:`Email Patch` - send this revision's changes to email recipient [#rcm3]_ + Send this revision's changes to email recipient. Opens the + TortoiseHg email dialog with this revision selected.   :guilabel:`Bundle rev:tip` - create a bundle with all revs from selected to tip + Create a bundle with all revs from selected to tip   :guilabel:`Archive...` - open the archive dialog for this revision, allowing user to + Open the archive dialog for this revision, allowing user to   generate a backup copy of the repository at that revision.   :guilabel:`Tag`   :guilabel:`Add/Remove Tag` - opens the TortoiseHg tag dialog with this revision selected + Open the TortoiseHg tag dialog with this revision selected   :guilabel:`Add/Move/Remove Bookmark` - opens the TortoiseHg bookmark dialog with this revision selected + Open the TortoiseHg bookmark dialog with this revision selected   *This option requires the boomarks extension to be enabled*   :guilabel:`Rename Bookmark` - opens the TortoiseHg bookmark rename dialog + Open the TortoiseHg bookmark rename dialog   *This option requires the boomarks extension to be enabled*   :guilabel:`Mercurial Queues`   :guilabel:`Import revision to MQ` @@ -272,7 +275,7 @@
  when MQ is enabled*   :guilabel:`Strip Revision...`   Remove the selected revision and all of it's descendants from the - repository [#rcm4]_ *Only visible when MQ is enabled* + repository [#rcm1]_ *Only visible when MQ is enabled*   :guilabel:`Transplant to local`   Transplant selected revision onto the current working parent.   *Only visible when the transplant extension is enabled* @@ -294,16 +297,17 @@
  Opens status viewer with cumulative changes of the range of   changesets. The status viewer allows cherry picked changes to   be saved to a file. - :guilabel:`Visual Diff with selected` [#rcm5]_ + :guilabel:`Visual Diff with selected`   Opens visual diff window with cumulative changes of the range - of changesets. + of changesets. See also menuselection:`Global Settings --> + TortoiseHg --> Visual Diff Tool`   :guilabel:`Email from here to selected`   Opens email dialog with range of changesets.   :guilabel:`Bundle from here to selected`   Creates a bundle file with range of changesets.   :guilabel:`Export patches from here to selected`   Creates a patch file for each changeset in selected range. - :guilabel:`Merge with selected` [#rcm6]_ + :guilabel:`Merge with selected`   Merges this revision with the other selected revision. If   neither revision is currently checked out, the merge dialog will   be forced to update to the first selected revision before @@ -321,15 +325,9 @@
  Import selected revision range into the current patch queue.   *Only visible when MQ is enabled*   -.. [#rcm1] Opens the TortoiseHg update dialog with this revision selected. -.. [#rcm2] Opens the TortoiseHg merge dialog with this revision selected. -.. [#rcm3] Opens the TortoiseHg email dialog with this revision selected. -.. [#rcm4] The strip command will store the stripped revisions in a bundle file +.. [#rcm1] The strip command will store the stripped revisions in a bundle file   that can later be reapplied. - See `also <http://mercurial.selenic.com/wiki/EditingHistory>`_. -.. [#rcm5] :menuselection:`Global Settings --> TortoiseHg --> Visual Diff Tool` -.. [#rcm6] Only sensitive if the selected revision is your current working - directory parent + See also `EditingHistory <http://mercurial.selenic.com/wiki/EditingHistory>`_.    File Context Menus  ------------------
 
186
187
188
189
 
 
190
191
192
 
186
187
188
 
189
190
191
192
193
@@ -186,7 +186,8 @@
  self.add_src_to_recent(src)   self.add_dest_to_recent(dest)   if returncode == 0: - shlib.shell_notify([dest]) + if dest: + shlib.shell_notify([dest])   self.cmd.set_result(_('Cloned successfully'), style='ok')   elif useraborted:   self.cmd.set_result(_('Canceled updating'), style='error')
 
85
86
87
88
89
90
91
 
829
830
831
832
833
834
835
836
837
838
839
840
 
 
841
842
843
 
859
860
861
862
863
864
865
866
867
 
868
869
870
871
872
 
873
874
875
 
1148
1149
1150
1151
1152
1153
1154
 
1232
1233
1234
1235
1236
1237
1238
 
1266
1267
1268
1269
1270
1271
1272
1273
 
1274
1275
1276
1277
1278
1279
1280
 
1281
1282
1283
 
85
86
87
 
88
89
90
 
828
829
830
 
 
 
 
831
832
833
 
 
834
835
836
837
838
 
854
855
856
 
857
858
859
860
 
861
862
863
864
865
 
866
867
868
869
 
1142
1143
1144
 
1145
1146
1147
 
1225
1226
1227
 
1228
1229
1230
 
1258
1259
1260
 
1261
1262
1263
 
1264
1265
1266
1267
1268
1269
1270
 
1271
1272
1273
1274
@@ -85,7 +85,6 @@
  gdialog.GWindow.init(self)   self.mode = 'status'   self.ready = False - self.filerowstart = {}   self.filechunks = {}   self.status = (None,) * 7   self.status_error = None @@ -829,15 +828,11 @@
  chunks = self.filechunks[wfile]   for chunk in chunks:   chunk.active = selected - # this file's chunks may not be in diffmodel - if wfile not in self.filerowstart: - return - rowstart = self.filerowstart[wfile]   for n, chunk in enumerate(chunks):   if n == 0:   continue - self.diffmodel[rowstart+n][DM_REJECTED] = not selected - self.update_diff_hunk(self.diffmodel[rowstart+n]) + self.diffmodel[n][DM_REJECTED] = not selected + self.update_diff_hunk(self.diffmodel[n])   self.update_diff_header(self.diffmodel, wfile, selected)     def update_diff_hunk(self, row): @@ -859,17 +854,16 @@
    def update_diff_header(self, dmodel, wfile, selected):   try: - hc = self.filerowstart[wfile]   chunks = self.filechunks[wfile]   except IndexError:   return   lasthunk = len(chunks)-1 - sel = lambda x: x >= lasthunk or not dmodel[hc+x+1][DM_REJECTED] + sel = lambda x: x >= lasthunk or not dmodel[x+1][DM_REJECTED]   newtext = chunks[0].selpretty(sel)   if not selected:   newtext = "<span foreground='" + gtklib.STATUS_REJECT_FOREGROUND + \   "'>" + newtext + "</span>" - dmodel[hc][DM_DISP_TEXT] = newtext + dmodel[0][DM_DISP_TEXT] = newtext     def updated_codes(self):   types = [('modified', 'M'), @@ -1148,7 +1142,6 @@
  def update_hunk_model(self, path, tree):   # Read this file's diffs into hunk selection model   wfile = self.filemodel[path][FM_PATH] - self.filerowstart = {}   self.diffmodel.clear()   if not self.is_merge():   self.append_diff_hunks(wfile) @@ -1232,7 +1225,6 @@
  elif nc.fromline > oc.fromline:   break   - self.filerowstart[wfile] = len(self.diffmodel)   self.filechunks[wfile] = chunks     # Set row status based on chunk state @@ -1266,18 +1258,17 @@
  row = dmodel[path]   wfile = row[DM_PATH]   try: - startrow = self.filerowstart[wfile]   chunks = self.filechunks[wfile]   except IndexError:   pass - chunkrows = xrange(startrow+1, startrow+len(chunks)) + chunkrows = xrange(1, len(chunks))   for fr in self.filemodel:   if fr[FM_PATH] == wfile:   break   if row[DM_IS_HEADER]:   for n, chunk in enumerate(chunks[1:]):   chunk.active = not fr[FM_CHECKED] - self.update_diff_hunk(dmodel[startrow+n+1]) + self.update_diff_hunk(dmodel[n+1])   newvalue = not fr[FM_CHECKED]   partial = False   else:
 
40
41
42
 
 
43
44
45
 
143
144
145
146
 
 
147
148
149
 
40
41
42
43
44
45
46
47
 
145
146
147
 
148
149
150
151
152
@@ -40,6 +40,8 @@
  return   dirs = set()   for path in paths: + if path is None: + continue   abspath = os.path.abspath(path)   if not os.path.isdir(abspath):   abspath = os.path.dirname(abspath) @@ -143,7 +145,8 @@
  return   f_notify = open(notify, 'w')   try: - f_notify.write('\n'.join([os.path.abspath(path) for path in paths])) + abspaths = [os.path.abspath(path) for path in paths if path] + f_notify.write('\n'.join(abspaths))   finally:   f_notify.close()