def putcommit(self, files, parents, commit): for parent in parents: try: return self.revid(self.childmap[parent]) except KeyError: pass entries = util.set(self.delete) files = util.frozenset(files) entries.update(self.add_dirs(files.difference(entries))) if self.copies: for s, d in self.copies: self._copyfile(s, d) self.copies = [] if self.delete: self.xargs(self.delete, 'delete') self.delete = [] entries.update(self.add_files(files.difference(entries))) entries.update(self.tidy_dirs(entries)) if self.delexec: self.xargs(self.delexec, 'propdel', 'svn:executable') self.delexec = [] if self.setexec: self.xargs(self.setexec, 'propset', 'svn:executable', '*') self.setexec = [] fd, messagefile = tempfile.mkstemp(prefix='hg-convert-') fp = os.fdopen(fd, 'w') fp.write(commit.desc) fp.close() try: output = self.run0('commit', username=util.shortuser(commit.author), file=messagefile, encoding='utf-8') try: rev = self.commit_re.search(output).group(1) except AttributeError: self.ui.warn(_('unexpected svn output:\n')) self.ui.warn(output) raise util.Abort(_('unable to cope with svn output')) if commit.rev: self.run('propset', 'hg:convert-rev', commit.rev, revprop=True, revision=rev) if commit.branch and commit.branch != 'default': self.run('propset', 'hg:convert-branch', commit.branch, revprop=True, revision=rev) for parent in parents: self.addchild(parent, rev) return self.revid(rev) finally: os.unlink(messagefile)
def get_rev_desc(self, rev): if rev in self.changedesc: return self.changedesc[rev] ctx = self.repo.changectx(rev) author = util.shortuser(ctx.user()) summary = ctx.description().replace('\0', '') summary = summary.split('\n')[0] date = time.strftime("%y-%m-%d %H:%M", time.gmtime(ctx.date()[0])) desc = author+'@'+str(rev)+' '+date+' "'+summary+'"' self.changedesc[rev] = (desc, author) return (desc, author)
def infinitepushbackuplogs(ui, repo): """Contents of recent infinitepush log files.""" logdir = ui.config('infinitepushbackup', 'logdir') if not logdir: return "infinitepushbackup.logdir not set" try: username = util.shortuser(ui.username()) except Exception: username = '******' userlogdir = os.path.join(logdir, username) if not os.path.exists(userlogdir): return "log directory does not exist: %s" % userlogdir # Log filenames are the reponame with the date (YYYYMMDD) appended. reponame = os.path.basename(repo.origroot) logfiles = sorted([f for f in os.listdir(userlogdir) if f[:-8] == reponame]) if not logfiles: return "no log files found for %s in %s" % (reponame, userlogdir) # Display the last 100 lines from the most recent log files. logs = [] linelimit = 100 for logfile in reversed(logfiles): loglines = open(os.path.join(userlogdir, logfile)).readlines() linecount = len(loglines) if linecount > linelimit: logcontent = ' '.join(loglines[-linelimit:]) logs.append("%s (first %s lines omitted):\n %s\n" % (logfile, linecount - linelimit, logcontent)) break else: logcontent = ' '.join(loglines) logs.append("%s:\n %s\n" % (logfile, logcontent)) linelimit -= linecount return ''.join(reversed(logs))
def username(user): author = templatefilters.person(user) if not author: author = util.shortuser(user) return author
def author_name(self): return shortuser(self.rev.user())
def shortuser(ui, user): return util.shortuser(user)