2007-02-23 19:31:00 +03:00
|
|
|
import os
|
2011-05-19 20:09:25 +04:00
|
|
|
from mercurial import hg, ui, context, encoding
|
2007-02-23 19:31:00 +03:00
|
|
|
|
|
|
|
u = ui.ui()
|
|
|
|
|
|
|
|
repo = hg.repository(u, 'test1', create=1)
|
|
|
|
os.chdir('test1')
|
|
|
|
|
|
|
|
# create 'foo' with fixed time stamp
|
2014-10-20 17:08:08 +04:00
|
|
|
f = open('foo', 'wb')
|
2007-02-23 19:31:00 +03:00
|
|
|
f.write('foo\n')
|
|
|
|
f.close()
|
|
|
|
os.utime('foo', (1000, 1000))
|
|
|
|
|
|
|
|
# add+commit 'foo'
|
2010-06-07 22:03:32 +04:00
|
|
|
repo[None].add(['foo'])
|
2007-02-23 19:31:00 +03:00
|
|
|
repo.commit(text='commit1', date="0 0")
|
|
|
|
|
2008-06-26 23:35:46 +04:00
|
|
|
print "workingfilectx.date =", repo[None]['foo'].date()
|
2011-05-19 20:09:25 +04:00
|
|
|
|
|
|
|
# test memctx with non-ASCII commit message
|
|
|
|
|
|
|
|
def filectxfn(repo, memctx, path):
|
2013-08-16 01:49:27 +04:00
|
|
|
return context.memfilectx(repo, "foo", "")
|
2011-05-19 20:09:25 +04:00
|
|
|
|
|
|
|
ctx = context.memctx(repo, ['tip', None],
|
|
|
|
encoding.tolocal("Gr\xc3\xbcezi!"),
|
|
|
|
["foo"], filectxfn)
|
|
|
|
ctx.commit()
|
|
|
|
for enc in "ASCII", "Latin-1", "UTF-8":
|
|
|
|
encoding.encoding = enc
|
|
|
|
print "%-8s: %s" % (enc, repo["tip"].description())
|
2014-06-14 02:56:11 +04:00
|
|
|
|
|
|
|
# test performing a status
|
|
|
|
|
|
|
|
def getfilectx(repo, memctx, f):
|
|
|
|
fctx = memctx.parents()[0][f]
|
|
|
|
data, flags = fctx.data(), fctx.flags()
|
|
|
|
if f == 'foo':
|
|
|
|
data += 'bar\n'
|
|
|
|
return context.memfilectx(repo, f, data, 'l' in flags, 'x' in flags)
|
|
|
|
|
|
|
|
ctxa = repo.changectx(0)
|
2014-06-14 02:59:18 +04:00
|
|
|
ctxb = context.memctx(repo, [ctxa.node(), None], "test diff", ["foo"],
|
|
|
|
getfilectx, ctxa.user(), ctxa.date())
|
2014-06-14 02:56:11 +04:00
|
|
|
|
|
|
|
print ctxb.status(ctxa)
|
2014-06-14 02:59:18 +04:00
|
|
|
|
|
|
|
# test performing a diff on a memctx
|
|
|
|
|
|
|
|
for d in ctxb.diff(ctxa, git=True):
|
|
|
|
print d
|