示例#1
0
    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)
示例#2
0
 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)
示例#3
0
    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)
示例#4
0
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))
示例#5
0
def username(user):
    author = templatefilters.person(user)
    if not author:
        author = util.shortuser(user)
    return author
示例#6
0
def username(user):
    author = templatefilters.person(user)
    if not author:
        author = util.shortuser(user)
    return author
示例#7
0
文件: repo.py 项目: oshepherd/eforge
 def author_name(self):
     return shortuser(self.rev.user())
示例#8
0
 def shortuser(ui, user):
   return util.shortuser(user)