by
Changes to 10 files · Browse files at c2d6a90e94e4 Showing diff from parent fafbf685a635 c1232aee254b Diff from another changeset...
@@ -44,7 +44,8 @@ close.connect('clicked', gtk.main_quit)
hbbox.add(close)
- text = _('\n** Please report this bug to'
+ text = '\n{{{\n' # Wrap in Bitbucket wiki preformat markers
+ text += _('** Please report this bug to'
' tortoisehg-discuss@lists.sourceforge.net or'
' http://bitbucket.org/tortoisehg/stable/issues\n')
text += _('** Mercurial version (%s). TortoiseHg version (%s)\n') % (
@@ -54,6 +55,7 @@ extlist = [x[0] for x in extensions.extensions()]
text += _('** Extensions loaded: %s\n') % ', '.join(extlist)
text += self.opts['error']
+ text += '\n}}}\n'
textview.get_buffer().set_text(text)
return vbox
|
@@ -489,7 +489,7 @@ def diff_to_local(self, menuitem):
if not self.curfile:
return
- self.opts['rev'] = [str(self.currev), '.']
+ self.opts['rev'] = [str(self.currev)]
self._diff_file('M', self.curfile)
def diff_file_rev(self, menuitem):
@@ -505,7 +505,7 @@ if not self.curfile:
return
rev = self.currev
- parents = self.parents
+ parents = [x.rev() for x in self.repo[rev].parents()]
if len(parents) == 0:
parent = rev-1
else:
|
@@ -186,13 +186,13 @@ """run the file dialog, either return a file name, or False if
the user aborted the dialog"""
try:
- import win32gui, win32con
+ import win32gui, win32con, pywintypes
return self.runWindows()
except ImportError:
return self.runCompatible()
def runWindows(self):
- import win32gui, win32con
+ import win32gui, win32con, pywintypes
try:
fname, customfilter, flags=win32gui.GetSaveFileNameW(
InitialDir=self.InitialDir,
@@ -205,7 +205,7 @@ FilterIndex=1)
if fname:
return fname
- except:
+ except pywintypes.error:
pass
return False
|
@@ -560,7 +560,7 @@
def vdiff_local(self, menuitem, pats=[]):
rev = self.currow[treemodel.REVID]
- opts = {'rev' : ["%s:." % rev]}
+ opts = {'rev' : ["%s" % rev]}
self._do_diff(pats, opts, modal=True)
def diff_revs(self, menuitem):
|
@@ -81,7 +81,6 @@ self.textview.set_editable(False)
self.textview.modify_font(pango.FontDescription('Monospace'))
scrolledwindow.add(self.textview)
- self.textview.set_editable(False)
self.textbuffer = self.textview.get_buffer()
self.textbuffer.create_tag('error', weight=pango.WEIGHT_HEAVY,
foreground='#900000')
|
@@ -103,7 +103,6 @@ self.textview.set_editable(False)
self.textview.modify_font(pango.FontDescription('Monospace'))
scrolledwindow.add(self.textview)
- self.textview.set_editable(False)
self.textbuffer = self.textview.get_buffer()
vbox.pack_start(scrolledwindow, True, True)
self._set_button_states()
@@ -211,6 +210,12 @@ self._get_config()
def _start_server(self):
+ def threadfunc(path, q, *args):
+ try:
+ hglib.hgcmd_toq(path, q, *args)
+ except util.Abort, e:
+ self._write(_('Abort: %s\n') % str(e))
+
# gather input data
try:
port = int(self._port_input.get_text())
@@ -229,11 +234,17 @@ else:
args.append('--name')
args.append(self.webname)
- thread = threading.Thread(target=hglib.hgcmd_toq, args=args)
+
+ thread = threading.Thread(target=threadfunc, args=args)
thread.start()
- while not gservice or not hasattr(gservice, 'httpd'):
+ while True:
time.sleep(0.1)
+ if gservice and hasattr(gservice, 'httpd'):
+ break
+ if not thread.isAlive():
+ return
+
# gservice.httpd.fqaddr turned out to be unreliable, so use
# loopback addr directly
self._url = 'http://127.0.0.1:%d/' % (port)
|
@@ -226,7 +226,6 @@ self.textview.set_editable(False)
self.textview.modify_font(pango.FontDescription('Monospace'))
scrolledwindow.add(self.textview)
- self.textview.set_editable(False)
self.textview.connect('populate-popup', self.add_to_popup)
self.textbuffer = self.textview.get_buffer()
self.textbuffer.create_tag('error', weight=pango.WEIGHT_HEAVY,
|
@@ -155,7 +155,7 @@ def filter_patch(ui, chunks):
accepted = []
for chunk in chunks:
- file = util.pconvert(chunk.files()[0])
+ file = util.pconvert(chunk.filename())
if file not in wfiles:
# file was not selected for inclusion
continue
|
@@ -94,7 +94,10 @@ s = cPickle.dumps(data)
f = util.atomictempfile(appname, 'wb', None)
f.write(s)
- f.rename()
+ try:
+ f.rename()
+ except WindowsError:
+ pass # silently ignore these errors
def _get_path(self, appname):
if os.name == 'nt':
|
@@ -71,6 +71,9 @@ {"datamine", "Annotate Files",
"Show changeset information per file line",
"menublame.ico", 0},
+ {"vdiff", "Visual Diff",
+ "View changes using GUI diff tool",
+ "TortoiseMerge.ico", 0},
/* Add new items here */
@@ -82,13 +85,13 @@enum menuDescListEntries {
Commit, Init, Clone, Status, Shelve, Add, Revert, Remove, Rename,
Log, Synch, Serve, Update, Recover, Thgstatus, Userconf, Repoconf,
- About, Datamine,
+ About, Datamine, VDiff,
/* Add new items here */
Separator, EndOfList
};
menuDescListEntries RepoNoFilesMenu[] = {
- Commit, Status, Shelve, Separator,
+ Commit, Status, Shelve, VDiff, Separator,
Log, Separator,
Update, Separator,
Synch, Clone, Recover, Serve, Thgstatus, Separator,
@@ -97,7 +100,7 @@};
menuDescListEntries RepoFilesMenu[] = {
- Commit, Status, Add, Revert, Rename, Remove, Separator,
+ Commit, Status, VDiff, Add, Revert, Rename, Remove, Separator,
Log, Datamine, Separator,
About, EndOfList
};
|
Loading...