useremail = capture_or_die("git config --get user.email").strip()
attribution = "%s <%s>" % (username, useremail)
for arg in args:
+ if not os.path.exists(master(arg)):
+ croak("%s is not registered" % arg)
executable = os.stat(arg).st_mode & stat.S_IXUSR
if executable:
perms = "100755"
else:
perms = "100644"
- master = RCSLog(arg)
- revspec = master.resolve(revspec)
+ metadata = RCSLog(arg)
+ revspec = metadata.resolve(revspec)
if revspec is None:
revspec = 1
- revrange = range(1, len(master))
+ revrange = range(revspec, len(metadata))
with lifted(arg):
markmap = {}
last_commit_mark = 0
else:
# FIXME: Sanitize branch names
branch = arg + "master"
+ if revspec > 1:
+ sys.stdout.write("from refs/heads/%s^0" % branch)
for revno in revrange:
scratchfile = "/tmp/src%dtmp" % os.getpid()
- do_or_die("co -q -p -r{1} {0} >{2}".format(arg, master.revno_to_rcs(revno), scratchfile))
+ do_or_die("co -q -p -r{1} {0} >{2}".format(arg, metadata.revno_to_rcs(revno), scratchfile))
size = os.path.getsize(scratchfile)
mark += 1
markmap[revno] = mark
- item = master.by_revno(revno)
+ item = metadata.by_revno(revno)
sys.stdout.write("blob\nmark :%d\ndata %d\n" % (mark, size))
sys.stdout.write(open(scratchfile).read() + "\n")
sys.stdout.write("commit refs/heads/%s\n" % branch)
last_commit_mark = mark
mark += 1
markmap[revno] = mark
- for (key, val) in master.symbols.items():
- val = master.rcs_to_revno(val)
+ for (key, val) in metadata.symbols.items():
+ val = metadata.rcs_to_revno(val)
if val in revrange:
sys.stdout.write("reset refs/tags/%s\nfrom :%d\n\n" % (key, markmap[val]))