##// END OF EJS Templates
convert/svn: delegate to svn bindings if HTTP probe fails...
convert/svn: delegate to svn bindings if HTTP probe fails convert extension tries to guess the remote repository type with HTTP probes. Unfortunately, it does not handle authentication or HTTPS handshakes, so regular svn repositories may be excluded. Instead, when a non-404 error is retrieved, we keep trying with the svn bindings. The drawback is missing svn bindings will make the conversion to fail even for non-svn targets. This can be avoided with --source.

File last commit:

r8531:810387f5 default
r9829:1b2516a5 default
Show More
filelog.py
68 lines | 2.0 KiB | text/x-python | PythonLexer
mpm@selenic.com
Break apart hg.py...
r1089 # filelog.py - file history class for mercurial
#
Thomas Arendsen Hein
Updated copyright notices and add "and others" to "hg version"
r4635 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
mpm@selenic.com
Break apart hg.py...
r1089 #
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
# GNU General Public License version 2, incorporated herein by reference.
mpm@selenic.com
Break apart hg.py...
r1089
Matt Mackall
revlog: kill from-style imports...
r7634 import revlog
mpm@selenic.com
Break apart hg.py...
r1089
Matt Mackall
revlog: kill from-style imports...
r7634 class filelog(revlog.revlog):
Matt Mackall
revlog: simplify revlog version handling...
r4258 def __init__(self, opener, path):
Matt Mackall
revlog: kill from-style imports...
r7634 revlog.revlog.__init__(self, opener,
Benoit Boissinot
filelog encoding: move the encoding/decoding into store...
r8531 "/".join(("data", path + ".i")))
mpm@selenic.com
Break apart hg.py...
r1089
def read(self, node):
t = self.revision(node)
if not t.startswith('\1\n'):
return t
Benoit Boissinot
use __contains__, index or split instead of str.find...
r2579 s = t.index('\1\n', 2)
mpm@selenic.com
Break apart hg.py...
r1089 return t[s+2:]
Matt Mackall
filelog: make metadata method private
r3123 def _readmeta(self, node):
mpm@selenic.com
Break apart hg.py...
r1089 t = self.revision(node)
if not t.startswith('\1\n'):
mpm@selenic.com
Add some rename debugging support
r1116 return {}
Benoit Boissinot
use __contains__, index or split instead of str.find...
r2579 s = t.index('\1\n', 2)
mpm@selenic.com
Break apart hg.py...
r1089 mt = t[2:s]
mpm@selenic.com
Add some rename debugging support
r1116 m = {}
mpm@selenic.com
Break apart hg.py...
r1089 for l in mt.splitlines():
k, v = l.split(": ", 1)
m[k] = v
return m
def add(self, text, meta, transaction, link, p1=None, p2=None):
if meta or text.startswith('\1\n'):
mt = ""
if meta:
Dirkjan Ochtman
use dict.iteritems() rather than dict.items()...
r7622 mt = ["%s: %s\n" % (k, v) for k, v in meta.iteritems()]
twaldmann@thinkmo.de
minor optimization: save some string trash
r1540 text = "\1\n%s\1\n%s" % ("".join(mt), text)
mpm@selenic.com
Break apart hg.py...
r1089 return self.addrevision(text, transaction, link, p1, p2)
mpm@selenic.com
Add some rename debugging support
r1116 def renamed(self, node):
Matt Mackall
revlog: kill from-style imports...
r7634 if self.parents(node)[0] != revlog.nullid:
mpm@selenic.com
Add some rename debugging support
r1116 return False
Matt Mackall
filelog: make metadata method private
r3123 m = self._readmeta(node)
Christian Ebert
Prefer i in d over d.has_key(i)
r5915 if m and "copy" in m:
Matt Mackall
revlog: kill from-style imports...
r7634 return (m["copy"], revlog.bin(m["copyrev"]))
mpm@selenic.com
Add some rename debugging support
r1116 return False
Matt Mackall
merge: use file size stored in revlog index...
r2898 def size(self, rev):
"""return the size of a given revision"""
# for revisions with renames, we have to go the slow way
node = self.node(rev)
if self.renamed(node):
return len(self.read(node))
Matt Mackall
revlog: kill from-style imports...
r7634 return revlog.revlog.size(self, rev)
Matt Mackall
merge: use file size stored in revlog index...
r2898
Matt Mackall
filelog: add hash-based comparisons...
r2887 def cmp(self, node, text):
"""compare text with a given file revision"""
# for renames, we have to go the slow way
if self.renamed(node):
t2 = self.read(node)
Matt Mackall
filelog.cmp: return 0 for equality...
r2895 return t2 != text
Matt Mackall
filelog: add hash-based comparisons...
r2887
Matt Mackall
revlog: kill from-style imports...
r7634 return revlog.revlog.cmp(self, node, text)