--- a/hg Thu May 12 01:23:51 2005 -0800
+++ b/hg Thu May 12 17:54:55 2005 -0800
@@ -48,20 +48,25 @@
return l
def diff(files = None, node1 = None, node2 = None):
+ def date(c):
+ return time.asctime(time.gmtime(float(c[2].split(' ')[0])))
if node2:
change = repo.changelog.read(node2)
mmap2 = repo.manifest.read(change[0])
(c, a, d) = repo.diffrevs(node1, node2)
def read(f): return repo.file(f).read(mmap2[f])
+ date2 = date(change)
else:
+ date2 = time.asctime()
if not node1:
node1 = repo.current
(c, a, d) = repo.diffdir(repo.root, node1)
- def read(f): return file(f).read()
+ def read(f): return file(os.path.join(repo.root, f)).read()
change = repo.changelog.read(node1)
mmap = repo.manifest.read(change[0])
+ date1 = date(change)
if files:
(c, a, d) = map(lambda x: filterfiles(x, files), (c, a, d))
@@ -69,16 +74,15 @@
for f in c:
to = repo.file(f).read(mmap[f])
tn = read(f)
- sys.stdout.write(mdiff.unidiff(to, tn, f))
+ sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f))
for f in a:
to = ""
tn = read(f)
- sys.stdout.write(mdiff.unidiff(to, tn, f))
+ sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f))
for f in d:
to = repo.file(f).read(mmap[f])
tn = ""
- sys.stdout.write(mdiff.unidiff(to, tn, f))
-
+ sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f))
options = {}
opts = [('v', 'verbose', None, 'verbose'),
@@ -178,8 +182,13 @@
if len(revs) > 2:
print "too many revisions to diff"
sys.exit(1)
- else:
- diff(args, *revs)
+
+ if os.getcwd() != repo.root:
+ relpath = os.getcwd()[len(repo.root) + 1: ]
+ if not args: args = [ relpath ]
+ else: args = [ os.path.join(relpath, x) for x in args ]
+
+ diff(args, *revs)
elif cmd == "export":
node = repo.changelog.lookup(args[0])