Mercurial > hg > mercurial-crew-with-dirclash
view mercurial/ui.py @ 569:3e347929f5f9
[PATCH 1/5]: cleaning the template parent management in hgweb
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH 1/5]: cleaning the template parent management in hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
the template pages contain two entry named #parent1# and #parent2#;
this is no +good because with the template system implemented in hgweb
both the functions can be replaced with only one entry named
"#parent#". The code in hgweb will replace this tag with the
appropriate number of parents (+one, two... or more if and when will
be used ).
The first two patch perform this change in two step:
1) change the code to manage only one entry ( #parent1# )
2) remove any reference to #parent2#, and change both the code and the
templates to rename #parent1# in #parent2#
the last three patchs are clean-up.
The patch are five
- - patch #1:
- - clean the code in order to ignore #parent2# and use only #parent1#
hgweb: chanage the parent1/parent2 code managment
manifest hash: 6ba707904edf176c7269f2d9b80502902e6934c6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxvivywK+sNU5EO8RAkotAJ4vbR0KE+Jem20rQbaJxy8NRFeyJgCdHy2M
hxmeD9erv17BrSKLGd5QAQI=
=Or/F
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sat, 02 Jul 2005 12:27:27 -0800 |
parents | 9a80418646dd |
children | d2994b5298fb |
line wrap: on
line source
# ui.py - user interface bits for mercurial # # Copyright 2005 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. import os, sys, re, ConfigParser, util class ui: def __init__(self, verbose=False, debug=False, quiet=False, interactive=True): self.cdata = ConfigParser.SafeConfigParser() self.cdata.read(os.path.expanduser("~/.hgrc")) self.quiet = self.configbool("ui", "quiet") self.verbose = self.configbool("ui", "verbose") self.debugflag = self.configbool("ui", "debug") self.interactive = self.configbool("ui", "interactive", True) self.quiet = (self.quiet or quiet) and not verbose and not debug self.verbose = (self.verbose or verbose) or debug self.debugflag = (self.debugflag or debug) self.interactive = (self.interactive and interactive) def readconfig(self, fp): self.cdata.readfp(fp) def config(self, section, val, default=None): if self.cdata.has_option(section, val): return self.cdata.get(section, val) return default def configbool(self, section, val, default=False): if self.cdata.has_option(section, val): return self.cdata.getboolean(section, val) return default def configitems(self, section): if self.cdata.has_section(section): return self.cdata.items(section) return [] def expandpath(self, loc): paths = {} for name, path in self.configitems("paths"): paths[name] = path return paths.get(loc, loc) def write(self, *args): for a in args: sys.stdout.write(str(a)) def write_err(self, *args): sys.stdout.flush() for a in args: sys.stderr.write(str(a)) def readline(self): return sys.stdin.readline()[:-1] def prompt(self, msg, pat, default = "y"): if not self.interactive: return default while 1: self.write(msg, " ") r = self.readline() if re.match(pat, r): return r else: self.write("unrecognized response\n") def status(self, *msg): if not self.quiet: self.write(*msg) def warn(self, *msg): self.write_err(*msg) def note(self, *msg): if self.verbose: self.write(*msg) def debug(self, *msg): if self.debugflag: self.write(*msg) def edit(self, text): import tempfile (fd, name) = tempfile.mkstemp("hg") f = os.fdopen(fd, "w") f.write(text) f.close() editor = os.environ.get("HGEDITOR") or os.environ.get("EDITOR", "vi") util.system("%s %s" % (editor, name), errprefix = "edit failed") t = open(name).read() t = re.sub("(?m)^HG:.*\n", "", t) return t