##// END OF EJS Templates
HTTPS: fix python2.3, persistent connections, don't explode if SSL is not available...
HTTPS: fix python2.3, persistent connections, don't explode if SSL is not available The urllib2 differences between python 2.3 and 2.4 are hidden by using keepalive.py, which also gives us support for persistent connections. Support for HTTPS is enabled only if there's a HTTPSHandler class in urllib2. It's not possible to have separate classes as handlers for HTTP and HTTPS: to support persistent HTTPS connections, we need a class that inherits from both keepalive.HTTPHandler and urllib2.HTTPSHandler. If we try to pass (an instance of) this class and (an instance of) the httphandler class to urllib2.build_opener, this function ends up getting confused, since both classes are subclasses of the HTTPHandler default handler, and raises an exception.

File last commit:

r2523:4ab59a3a default
r2569:52ce0d6b default
Show More
changelog.py
48 lines | 1.6 KiB | text/x-python | PythonLexer
mpm@selenic.com
changelog: adjust imports, comment
r1095 # changelog.py - changelog class for mercurial
mpm@selenic.com
Break apart hg.py...
r1089 #
# 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.
from revlog import *
Benoit Boissinot
i18n first part: make '_' available for files who need it
r1400 from i18n import gettext as _
Bryan O'Sullivan
Clean up date and timezone handling....
r1321 from demandload import demandload
demandload(globals(), "os time util")
mpm@selenic.com
Break apart hg.py...
r1089
class changelog(revlog):
Thomas Arendsen Hein
Replaced 0 with REVLOGV0 where this meaning is used.
r2142 def __init__(self, opener, defversion=REVLOGV0):
mason@suse.com
Implement revlogng....
r2072 revlog.__init__(self, opener, "00changelog.i", "00changelog.d",
defversion)
mpm@selenic.com
Break apart hg.py...
r1089
def extract(self, text):
if not text:
Matt Mackall
Fix data reported for the nullid changeset
r1364 return (nullid, "", (0, 0), [], "")
mpm@selenic.com
Break apart hg.py...
r1089 last = text.index("\n\n")
desc = text[last + 2:]
l = text[:last].splitlines()
manifest = bin(l[0])
user = l[1]
Bryan O'Sullivan
Clean up date and timezone handling....
r1321 date = l[2].split(' ')
Bryan O'Sullivan
Some repos represent a date as a float.
r1327 time = float(date.pop(0))
Bryan O'Sullivan
Clean up date and timezone handling....
r1321 try:
# various tools did silly things with the time zone field.
timezone = int(date[0])
except:
timezone = 0
mpm@selenic.com
Break apart hg.py...
r1089 files = l[3:]
Bryan O'Sullivan
Clean up date and timezone handling....
r1321 return (manifest, user, (time, timezone), files, desc)
mpm@selenic.com
Break apart hg.py...
r1089
def read(self, node):
return self.extract(self.revision(node))
def add(self, manifest, list, desc, transaction, p1=None, p2=None,
user=None, date=None):
Bryan O'Sullivan
Validate user input of dates when adding a changelog entry.
r1195 if date:
Benoit Boissinot
validate the resulting date in parsedate
r2523 parseddate = "%d %d" % util.parsedate(date)
Bryan O'Sullivan
Validate user input of dates when adding a changelog entry.
r1195 else:
Jose M. Prieto
Allow the use of human readable dates (issue 251)
r2522 parseddate = "%d %d" % util.makedate()
mpm@selenic.com
Break apart hg.py...
r1089 list.sort()
Jose M. Prieto
Allow the use of human readable dates (issue 251)
r2522 l = [hex(manifest), user, parseddate] + list + ["", desc]
mpm@selenic.com
Break apart hg.py...
r1089 text = "\n".join(l)
return self.addrevision(text, transaction, self.count(), p1, p2)