by
Changes to 18 files · Browse files at 5af7904c47ae Showing diff from parent abc19dbca8ae d4f7109d91b5 Diff from another changeset...
@@ -46,7 +46,7 @@
if args:
cmd, args = args[0], args[1:]
- aliases, i = cmdutil.findcmd(ui, cmd, table)
+ aliases, i = cmdutil.findcmd(cmd, table)
cmd = aliases[0]
c = list(i[1])
else:
@@ -283,7 +283,7 @@ if with_version:
version_(ui)
ui.write('\n')
- aliases, i = cmdutil.findcmd(ui, name, table)
+ aliases, i = cmdutil.findcmd(name, table)
# synopsis
ui.write("%s\n" % i[2])
|
@@ -226,8 +226,8 @@ items.append(item)
return items
- if len(repo.workingctx().parents()) > 1:
- self.rev0 = repo.workingctx().parents()[0].rev()
+ if len(repo.changectx(None).parents()) > 1:
+ self.rev0 = repo.changectx(None).parents()[0].rev()
item = nautilus.MenuItem('HgNautilus::undomerge',
'Undo Merge',
'Clean checkout of original parent revision',
@@ -499,7 +499,7 @@ emblem, status = self._get_file_status(repo, localpath)
# Get the information from Mercurial
- ctx = repo.workingctx().parents()[0]
+ ctx = repo.changectx(None).parents()[0]
try:
fctx = ctx.filectx(localpath)
rev = fctx.filelog().linkrev(fctx.filenode())
|
@@ -252,8 +252,7 @@ man1 = ctx1.manifest()
date1 = util.datestr(ctx1.date())
- execf2 = ctx2.manifest().execf
- linkf2 = ctx2.manifest().linkf
+ flags2 = ctx2.manifest().flags
# returns False if there was no rename between ctx1 and ctx2
# returns None if the file was created between ctx1 and ctx2
@@ -264,7 +263,7 @@ c = c2
crev = c.rev()
if crev is None:
- crev = repo.changelog.count()
+ crev = len(repo.changelog)
orig = f
files = (f,)
while crev > startrev:
@@ -321,18 +320,18 @@ if s != 'R':
tn = getfilectx(f, ctx2).data()
a, b = f, f
- def gitmode(x, l):
- return l and '120000' or (x and '100755' or '100644')
+ def gitmode(flags):
+ return 'l' in flags or 'x' in flags
def addmodehdr(header, omode, nmode):
if omode != nmode:
header.append('old mode %s\n' % omode)
header.append('new mode %s\n' % nmode)
if s == 'A':
- mode = gitmode(execf2(f), linkf2(f))
+ mode = gitmode(flags2(f))
if f in copied:
a = copied[f]
- omode = gitmode(man1.execf(a), man1.linkf(a))
+ omode = gitmode(man1.flags(a))
addmodehdr(header, omode, mode)
if filestatus(a) == 'R' and a not in gone:
op = 'rename'
@@ -350,11 +349,11 @@ if f in srcs:
dodiff = False
else:
- mode = gitmode(man1.execf(f), man1.linkf(f))
+ mode = gitmode(man1.flags(f))
header.append('deleted file mode %s\n' % mode)
else:
- omode = gitmode(man1.execf(f), man1.linkf(f))
- nmode = gitmode(execf2(f), linkf2(f))
+ omode = gitmode(man1.flags(f))
+ nmode = gitmode(flags2(f))
addmodehdr(header, omode, nmode)
if util.binary(to) or util.binary(tn):
dodiff = 'binary'
|
@@ -210,7 +210,7 @@
def _check_merge(self):
# disable the checkboxes on the filelist if repo in merging state
- merged = len(self.repo.workingctx().parents()) > 1
+ merged = len(self.repo.changectx(None).parents()) > 1
cbcell = self.tree.get_column(0).get_cell_renderers()[0]
cbcell.set_property("activatable", not merged)
@@ -235,7 +235,7 @@ if not self._ready_message():
return True
- if len(self.repo.workingctx().parents()) > 1:
+ if len(self.repo.changectx(None).parents()) > 1:
# as of Mercurial 1.0, merges must be committed without
# specifying file list.
self._hg_commit([])
@@ -344,7 +344,7 @@ if refresh:
self.repo.invalidate()
cl = self.repo.changelog
- tip = cl.node(nullrev + cl.count())
+ tip = cl.node(nullrev + len(cl))
return hex(tip)
def launch(root='', files=[], cwd='', main=True):
@@ -354,7 +354,7 @@
# move cwd to repo root if repo is merged, so we can show
# all the changed files
- if len(repo.workingctx().parents()) > 1 and repo.root != cwd:
+ if len(repo.changectx(None).parents()) > 1 and repo.root != cwd:
cwd = repo.root
repo = hg.repository(u, path=cwd)
files = [cwd]
|
@@ -260,6 +260,11 @@ regexp.connect('activate', self.trigger_search, objs)
includes.connect('activate', self.trigger_search, objs)
excludes.connect('activate', self.trigger_search, objs)
+ # Includes/excludes must disable following copies
+ objs = (includes, excludes, follow)
+ includes.connect('changed', self._update_following_possible, objs)
+ excludes.connect('changed', self._update_following_possible, objs)
+
if hasattr(self.notebook, 'set_tab_reorderable'):
self.notebook.set_tab_reorderable(frame, True)
self.notebook.set_current_page(num)
@@ -385,6 +390,13 @@ return True
return False
+ def _update_following_possible(self, widget, objs):
+ (includes, excludes, follow) = objs
+ allow = not includes.get_text() and not excludes.get_text()
+ if not allow:
+ follow.set_active(False)
+ follow.set_sensitive(allow)
+
def add_annotate_page(self, path, revid):
'''
Add new annotation page to notebook. Start scan of
@@ -392,7 +404,7 @@ revision 'revid'.
'''
if revid == '.':
- ctx = self.repo.workingctx().parents()[0]
+ ctx = self.repo.changectx(None).parents()[0]
try:
fctx = ctx.filectx(path)
except revlog.LookupError:
|
@@ -111,8 +111,9 @@ except hg.RepoError:
return None
- self.files, matchfn, anypats = cmdutil.matchpats(self.repo, self.files)
- modified, added, removed = self.repo.status(files=self.files)[0:3]
+ matcher = cmdutil.match(self.repo, self.files)
+ modified, added, removed = self.repo.status(match=matcher)[0:3]
+ self.files = matcher.files()
self.model.clear()
self.model.append(None, [ "Complete Diff", "" ])
|
@@ -294,7 +294,7 @@ self.opts['revs'] = tagged
self.graphview.refresh(False, [], self.opts)
elif self._filter == "parents":
- repo_parents = [x.rev() for x in self.repo.workingctx().parents()]
+ repo_parents = [x.rev() for x in self.repo.changectx(None).parents()]
self.opts['revs'] = [str(x) for x in repo_parents]
self.graphview.refresh(False, [], self.opts)
elif self._filter == "heads":
@@ -417,7 +417,7 @@ from backout import BackoutDialog
rev = self.currow[treemodel.REVID]
rev = short(self.repo.changelog.node(rev))
- parents = [x.node() for x in self.repo.workingctx().parents()]
+ parents = [x.node() for x in self.repo.changectx(None).parents()]
dialog = BackoutDialog(self.repo.root, rev)
dialog.set_transient_for(self)
dialog.show_all()
@@ -504,7 +504,7 @@
def _checkout(self, menuitem):
rev = self.currow[treemodel.REVID]
- parents = [x.node() for x in self.repo.workingctx().parents()]
+ parents = [x.node() for x in self.repo.changectx(None).parents()]
dialog = UpdateDialog(self.cwd, rev)
dialog.set_transient_for(self)
dialog.show_all()
@@ -513,13 +513,13 @@ dialog.set_transient_for(None)
def checkout_completed(self, oldparents):
- newparents = [x.node() for x in self.repo.workingctx().parents()]
+ newparents = [x.node() for x in self.repo.changectx(None).parents()]
if not oldparents == newparents:
self.reload_log()
def _merge(self, menuitem):
rev = self.currow[treemodel.REVID]
- parents = [x.node() for x in self.repo.workingctx().parents()]
+ parents = [x.node() for x in self.repo.changectx(None).parents()]
node = short(self.repo.changelog.node(rev))
dialog = MergeDialog(self.repo.root, self.cwd, node)
dialog.set_transient_for(self)
@@ -529,7 +529,7 @@ dialog.set_transient_for(None)
def merge_completed(self, oldparents):
- newparents = [x.node() for x in self.repo.workingctx().parents()]
+ newparents = [x.node() for x in self.repo.changectx(None).parents()]
if not oldparents == newparents:
self.reload_log()
@@ -574,7 +574,7 @@
# disable/enable menus as required
parents = [self.repo.changelog.rev(x.node()) for x in
- self.repo.workingctx().parents()]
+ self.repo.changectx(None).parents()]
can_merge = selrev not in parents and \
len(self.repo.heads()) > 1 and \
len(parents) < 2
|
@@ -140,7 +140,7 @@ return None
# populate parent rev data
- self._parents = [x.node() for x in self.repo.workingctx().parents()]
+ self._parents = [x.node() for x in self.repo.changectx(None).parents()]
self._parent_revs.set_sensitive(True)
self._parent_revs.set_text(", ".join([short(x) for x in self._parents]))
self._parent_revs.set_sensitive(False)
@@ -160,7 +160,7 @@
# populate revision data
heads = self.repo.heads()
- tip = self.repo.changelog.node(nullrev+self.repo.changelog.count())
+ tip = self.repo.changelog.node(nullrev+len(self.repo.changelog))
self._revlist.clear()
self._rev_input.set_text("")
for i, node in enumerate(heads):
|
@@ -138,7 +138,7 @@ except RepoError:
self.write("Unable to find repo at %s\n" % (self.root), False)
return
- pl = repo.workingctx().parents()
+ pl = repo.changectx(None).parents()
cmd = ['update', '--clean', '--rev', str(pl[0].rev())]
self._exec_cmd(cmd, postfunc=self._notify)
|
@@ -108,7 +108,7 @@ def tip(self, repo):
""" Show the tip revision """
repo.ui.pushbuffer()
- cmdutil.show_changeset(repo.ui, repo, {}).show(nullrev+repo.changelog.count())
+ cmdutil.show_changeset(repo.ui, repo, {}).show(nullrev+len(repo.changelog))
text = repo.ui.popbuffer()
return text
|
@@ -340,14 +340,15 @@
# node2 is None (the working dir) when 0 or 1 rev is specificed
self._node1, self._node2 = cmdutil.revpair(self.repo, self.opts.get('rev'))
-
- files, matchfn, anypats = cmdutil.matchpats(self.repo, self.pats, self.opts)
+
+ matcher = cmdutil.match(self.repo, self.pats, self.opts)
cwd = (self.pats and self.repo.getcwd()) or ''
modified, added, removed, deleted, unknown, ignored, clean = [
- n for n in self.repo.status(node1=self._node1, node2=self._node2, files=files,
- match=matchfn,
- list_ignored=self.test_opt('ignored'),
- list_clean=self.test_opt('clean'))]
+ n for n in self.repo.status(node1=self._node1, node2=self._node2,
+ match=matcher,
+ ignored=self.test_opt('ignored'),
+ clean=self.test_opt('clean'),
+ unknown=self.test_opt('unknown'))]
changetypes = (('modified', 'M', modified),
('added', 'A', added),
@@ -484,38 +485,35 @@ def _tree_selection_changed(self, selection, force):
''' Update the diff text '''
def dohgdiff():
- difftext = StringIO.StringIO()
- try:
- if len(files) != 0:
- wfiles = [self.repo.wjoin(x) for x in files]
- fns, matchfn, anypats = cmdutil.matchpats(self.repo, wfiles, self.opts)
- patch.diff(self.repo, self._node1, self._node2, fns, match=matchfn,
- fp=difftext, opts=patch.diffopts(self.ui, self.opts))
+ difftext = []
+ if len(files) != 0:
+ wfiles = [self.repo.wjoin(x) for x in files]
+ matcher = cmdutil.match(self.repo, wfiles, self.opts)
+ for s in patch.diff(self.repo, self._node1, self._node2, match=matcher,
+ opts=patch.diffopts(self.ui, self.opts)):
+ difftext.extend(s.splitlines(True))
- buffer = gtk.TextBuffer()
- buffer.create_tag('removed', foreground='#900000')
- buffer.create_tag('added', foreground='#006400')
- buffer.create_tag('position', foreground='#FF8000')
- buffer.create_tag('header', foreground='#000090')
+ buffer = gtk.TextBuffer()
+ buffer.create_tag('removed', foreground='#900000')
+ buffer.create_tag('added', foreground='#006400')
+ buffer.create_tag('position', foreground='#FF8000')
+ buffer.create_tag('header', foreground='#000090')
- difftext.seek(0)
- iter = buffer.get_start_iter()
- for line in difftext:
- line = toutf(line)
- if line.startswith('---') or line.startswith('+++'):
- buffer.insert_with_tags_by_name(iter, line, 'header')
- elif line.startswith('-'):
- buffer.insert_with_tags_by_name(iter, line, 'removed')
- elif line.startswith('+'):
- buffer.insert_with_tags_by_name(iter, line, 'added')
- elif line.startswith('@@'):
- buffer.insert_with_tags_by_name(iter, line, 'position')
- else:
- buffer.insert(iter, line)
+ iter = buffer.get_start_iter()
+ for line in difftext:
+ line = toutf(line)
+ if line.startswith('---') or line.startswith('+++'):
+ buffer.insert_with_tags_by_name(iter, line, 'header')
+ elif line.startswith('-'):
+ buffer.insert_with_tags_by_name(iter, line, 'removed')
+ elif line.startswith('+'):
+ buffer.insert_with_tags_by_name(iter, line, 'added')
+ elif line.startswith('@@'):
+ buffer.insert_with_tags_by_name(iter, line, 'position')
+ else:
+ buffer.insert(iter, line)
- self.diff_text.set_buffer(buffer)
- finally:
- difftext.close()
+ self.diff_text.set_buffer(buffer)
if self.showdiff_toggle.get_active():
files = [self.model[iter][3] for iter in self.tree.get_selection().get_selected_rows()[1]]
@@ -611,6 +609,8 @@ revertopts['rev'] = revertopts['rev'][0]
dialog = Confirm('Revert', files, self, 'Revert files to revision ' + revertopts['rev'] + '?')
else:
+ # rev options needs extra tweaking since it must be an empty string when unspecified for revert command
+ revertopts['rev'] = ''
dialog = Confirm('Revert', files, self)
if dialog.run() == gtk.RESPONSE_YES:
success, outtext = self._hg_call_wrapper('Revert', dohgrevert)
|
@@ -42,7 +42,7 @@ self.set_default_size(610, 400)
self.paths = self._get_paths()
- self.origchangecount = self.repo.changelog.count()
+ self.origchangecount = len(self.repo.changelog)
# load the fetch extension explicitly
extensions.load(self.ui, 'fetch', None)
@@ -218,7 +218,7 @@ def update_buttons(self, *args):
self.buttonhbox.hide()
self.repo.invalidate()
- tip = self.repo.changelog.count()
+ tip = len(self.repo.changelog)
if self.origchangecount == tip:
self.viewpulled.hide()
else:
@@ -226,7 +226,7 @@ self.viewpulled.show()
self.repo.dirstate.invalidate()
- parent = self.repo.workingctx().parents()[0].rev()
+ parent = self.repo.changectx(None).parents()[0].rev()
if parent == tip-1:
self.updatetip.hide()
else:
@@ -235,14 +235,14 @@
def _view_pulled_changes(self, button):
from history import GLog
- revs = (self.repo.changelog.count()-1, self.origchangecount)
+ revs = (len(self.repo.changelog)-1, self.origchangecount)
opts = {'revrange' : revs}
dialog = GLog(self.ui, self.repo, self.cwd, [], opts, False)
dialog.display()
def _update_to_tip(self, button):
self.repo.invalidate()
- wc = self.repo.workingctx()
+ wc = self.repo.changectx(None)
pl = wc.parents()
p1, p2 = pl[0], self.repo.changectx('tip')
pa = p1.ancestor(p2)
|
@@ -140,12 +140,12 @@ return None
# populate parent rev data
- self._parents = [x.node() for x in self.repo.workingctx().parents()]
+ self._parents = [x.node() for x in self.repo.changectx(None).parents()]
self._parent_revs.set_text(", ".join([short(x) for x in self._parents]))
# populate revision data
heads = self.repo.heads()
- tip = self.repo.changelog.node(nullrev+self.repo.changelog.count())
+ tip = self.repo.changelog.node(nullrev+len(self.repo.changelog))
self._revlist.clear()
for i, node in enumerate(heads):
status = "head %d" % (i+1)
|
@@ -90,7 +90,7 @@ Graph the ancestry of a single file (log). Deletions show
up as breaks in the graph.
'''
- filerev = repo.file(path).count() - 1
+ filerev = len(repo.file(path)) - 1
revs = []
rev_color = {}
nextcolor = 0
|
@@ -48,7 +48,7 @@ gtk.GenericTreeModel.__init__(self)
self.revisions = {}
self.repo = repo
- self.parents = [x.rev() for x in repo.workingctx().parents()]
+ self.parents = [x.rev() for x in repo.changectx(None).parents()]
self.heads = [repo.changelog.rev(x) for x in repo.heads()]
self.line_graph_data = graphdata
self.author_re = re.compile('<.*@.*>', 0)
|
@@ -112,7 +112,7 @@ node = b[pats]
start = self.repo.changelog.rev(node)
else:
- start = self.repo.changelog.count() - 1
+ start = len(self.repo.changelog) - 1
elif opts['revrange']:
if len(opts['revrange']) >= 2:
start, end = opts['revrange']
@@ -120,7 +120,7 @@ start = opts['revrange'][0]
end = start
else:
- start = self.repo.changelog.count() - 1
+ start = len(self.repo.changelog) - 1
self.grapher = revision_grapher(self.repo, start, end, pats)
elif opts.get('revs', None):
self.grapher = dumb_log_generator(self.repo, opts['revs'])
@@ -254,7 +254,7 @@ def refresh(self, graphcol, pats, opts):
self.repo.invalidate()
self.repo.dirstate.invalidate()
- if self.repo.changelog.count() > 0:
+ if len(self.repo.changelog) > 0:
self.create_log_generator(graphcol, pats, opts)
self.pbar.begin()
gobject.idle_add(self.populate, self.get_revision())
|
@@ -347,14 +347,14 @@ self._update, icon="menucheckout.ico"))
can_merge = len(repo.heads()) > 1 and \
- len(repo.workingctx().parents()) < 2
+ len(repo.changectx(None).parents()) < 2
result.append(TortoiseMenu(_("Merge Revisions"),
_("merge working directory with another revision"),
self._merge, icon="menumerge.ico",
state=can_merge))
# show un-merge menu per merge status of working directory
- if len(repo.workingctx().parents()) > 1:
+ if len(repo.changectx(None).parents()) > 1:
result.append(TortoiseMenu(_("Undo Merge"),
_("Undo merge by updating to revision"),
self._merge, icon="menuunmerge.ico"))
|
@@ -154,12 +154,11 @@
modified, added, removed, deleted = [], [], [], []
unknown, ignored, clean = [], [], []
- files = []
try:
- files, matchfn, anypats = cmdutil.matchpats(repo, [pdir])
+ matcher = cmdutil.match(repo, [pdir])
modified, added, removed, deleted, unknown, ignored, clean = \
- repo.status(files=files, list_ignored=True,
- list_clean=True, list_unknown=True)
+ repo.status(match=matcher, ignored=True,
+ clean=True, unknown=True)
# add directory status to list
for grp in (clean,modified,added,removed,deleted,ignored,unknown):
|
Loading...