Beispiel #1
0
def generate_content(output, cfg, repos, changelist, group, params, pool):

    svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
    ### pick a different date format?
    date = time.ctime(svn.core.secs_from_timestr(svndate, pool))

    output.write('Author: %s\nDate: %s\nNew Revision: %s\n\n' %
                 (repos.author, date, repos.rev))

    viewcvs_base_url = cfg.get('viewcvs_base_url', group, params)
    if viewcvs_base_url and len(viewcvs_base_url):
        output.write('URL: %s?view=rev&rev=%d\n' %
                     (viewcvs_base_url, repos.rev))

    output.write('Log:\n%s\n' %
                 (repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or ''))

    # print summary sections
    generate_list(output, 'Added', changelist, _select_adds)
    generate_list(output, 'Removed', changelist, _select_deletes)
    generate_list(output, 'Modified', changelist, _select_modifies)

    # these are sorted by path already
    for path, change in changelist:
        generate_diff(output, cfg, repos, date, change, group, params, pool)
def generate_content(output, cfg, repos, changelist, group, params, pool):

  svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
  ### pick a different date format?
  date = time.ctime(svn.core.secs_from_timestr(svndate, pool))

  output.write('Author: %s\nDate: %s\nNew Revision: %s\n\n'
               % (repos.author, date, repos.rev))

  # print summary sections
  generate_list(output, 'Added', changelist, _select_adds)
  generate_list(output, 'Removed', changelist, _select_deletes)
  generate_list(output, 'Modified', changelist, _select_modifies)

  output.write('Log:\n%s\n'
               % (repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or ''))


  if len([p for p,v in changelist if "pisi-index" not in p]) == 0:
    # Don't bother to create a diffstat and a diff for index updates
    return

  diffstat = os.popen("/usr/bin/svnlook diff %s -r %s | /usr/bin/diffstat -q" % (os.path.abspath(repos.repos_dir), repos.rev)).read()
  if diffstat:
    output.write("\n---\n%s" % diffstat)

  # these are sorted by path already
  for path, change in changelist:
    generate_diff(output, cfg, repos, date, change, group, params, pool)
def generate_content(output, cfg, repos, changelist, group, params, pool):

    svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
    ### pick a different date format?
    date = time.ctime(svn.core.secs_from_timestr(svndate, pool))

    output.write('Author: %s\nDate: %s\nNew Revision: %s\n\n' %
                 (repos.author, date, repos.rev))

    # print summary sections
    generate_list(output, 'Added', changelist, _select_adds)
    generate_list(output, 'Removed', changelist, _select_deletes)
    generate_list(output, 'Modified', changelist, _select_modifies)

    output.write('Log:\n%s\n' %
                 (repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or ''))

    if len([p for p, v in changelist if "pisi-index" not in p]) == 0:
        # Don't bother to create a diffstat and a diff for index updates
        return

    diffstat = os.popen(
        "/usr/bin/svnlook diff %s -r %s | /usr/bin/diffstat -q" %
        (os.path.abspath(repos.repos_dir), repos.rev)).read()
    if diffstat:
        output.write("\n---\n%s" % diffstat)

    # these are sorted by path already
    for path, change in changelist:
        generate_diff(output, cfg, repos, date, change, group, params, pool)
def main(cmd, config_fname, repos_dir, cmd_args, pool=None):
        if cmd == 'commit':
                Debug = True
                records = []
                revision = int(cmd_args[0])
                repos = Repository(repos_dir, revision, pool)
                record = SVN_To_DB()
                record.strAuthor = repos.author #get Author's name
                record.strLog = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) #get Commit's log
                print "Commit Log :", repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG)
                strDateTime = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE) #get Commit date
                print "Commit date :", repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
                print "Formated Commit date: ", time.ctime(svn.core.secs_from_timestr(repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE), pool))
                #Start My date Format look like this "2008-02-23T15:11:41"
                strDateTime = strDateTime.split('.')
                record.dtSVN = strDateTime[0]
                print "My date format :", record.dtSVN
                #End My date Format
                records.append(record)
                messenger = Commit(pool, repos, records)
                if Debug == True:
                        for x in records:
                                print "--------infomation all in here-------------------------------"
                                x.strAuthor = records[0].strAuthor #!!Author always get one copy in one commit
                                                                                        #not retrieve from list of "records"
                                print "strAuthor: ", x.strAuthor
                                print "strStatus: ", x.strStatus
                                print "strFileName: ", x.strFileName
                                print "strFullPath: ", x.strFullPath
                                x.dtSVN = records[0].dtSVN
                                print "dtSVN: ", x.dtSVN
                                x.strLog = records[0].strLog
                                print "strLog: ", x.strLog
def generate_content(output, cfg, repos, changelist, group, params, pool):

  svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
  ### pick a different date format?
  date = time.ctime(svn.core.secs_from_timestr(svndate, pool))

  output.write('Author: %s\nDate: %s\nNew Revision: %s\n\n'
               % (repos.author, date, repos.rev))

  viewcvs_base_url = cfg.get('viewcvs_base_url', group, params)
  if viewcvs_base_url and len(viewcvs_base_url):
    output.write('URL: %s?view=rev&rev=%d\n'
                 % (viewcvs_base_url, repos.rev))

  output.write('Log:\n%s\n'
               % (repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or ''))

  # print summary sections
  generate_list(output, 'Added', changelist, _select_adds)
  generate_list(output, 'Removed', changelist, _select_deletes)
  generate_list(output, 'Modified', changelist, _select_modifies)

  # these are sorted by path already
  for path, change in changelist:
    generate_diff(output, cfg, repos, date, change, group, params, pool)
Beispiel #6
0
def generate_content(renderer, cfg, repos, changelist, group, params, paths,
                     pool):

  svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE)
  ### pick a different date format?
  date = time.ctime(svn.core.secs_from_timestr(svndate, pool))

  diffsels = DiffSelections(cfg, group, params)
  diffurls = DiffURLSelections(cfg, group, params)

  show_nonmatching_paths = cfg.get('show_nonmatching_paths', group, params) \
      or 'yes'

  params_with_rev = params.copy()
  params_with_rev['rev'] = repos.rev
  commit_url = cfg.get('commit_url', group, params_with_rev)

  # figure out the lists of changes outside the selected path-space
  other_added_data = other_replaced_data = other_deleted_data = \
      other_modified_data = [ ]
  if len(paths) != len(changelist) and show_nonmatching_paths != 'no':
    other_added_data = generate_list('A', changelist, paths, False)
    other_replaced_data = generate_list('R', changelist, paths, False)
    other_deleted_data = generate_list('D', changelist, paths, False)
    other_modified_data = generate_list('M', changelist, paths, False)

  if len(paths) != len(changelist) and show_nonmatching_paths == 'yes':
    other_diffs = DiffGenerator(changelist, paths, False, cfg, repos, date,
                                group, params, diffsels, diffurls, pool)
  else:
    other_diffs = None

  data = _data(
    author=repos.author,
    date=date,
    rev=repos.rev,
    log=repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or '',
    commit_url=commit_url,
    added_data=generate_list('A', changelist, paths, True),
    replaced_data=generate_list('R', changelist, paths, True),
    deleted_data=generate_list('D', changelist, paths, True),
    modified_data=generate_list('M', changelist, paths, True),
    show_nonmatching_paths=show_nonmatching_paths,
    other_added_data=other_added_data,
    other_replaced_data=other_replaced_data,
    other_deleted_data=other_deleted_data,
    other_modified_data=other_modified_data,
    diffs=DiffGenerator(changelist, paths, True, cfg, repos, date, group,
                        params, diffsels, diffurls, pool),
    other_diffs=other_diffs,
    )
  renderer.render(data)
Beispiel #7
0
  def __init__(self, pool, cfg, repos):
    Messenger.__init__(self, pool, cfg, repos, 'commit_subject_prefix')

    # get all the changes and sort by path
    editor = svn.repos.ChangeCollector(repos.fs_ptr, repos.root_this, \
                                       self.pool)
    e_ptr, e_baton = svn.delta.make_editor(editor, self.pool)
    svn.repos.replay2(repos.root_this, "", svn.core.SVN_INVALID_REVNUM, 1, e_ptr, e_baton, None, self.pool)

    self.changelist = sorted(editor.get_changes().items())

    log = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_LOG) or ''

    # collect the set of groups and the unique sets of params for the options
    self.groups = { }
    for path, change in self.changelist:
      for (group, params) in self.cfg.which_groups(path, log):
        # turn the params into a hashable object and stash it away
        param_list = sorted(params.items())
        # collect the set of paths belonging to this group
        if (group, tuple(param_list)) in self.groups:
          old_param, paths = self.groups[group, tuple(param_list)]
        else:
          paths = { }
        paths[path] = None
        self.groups[group, tuple(param_list)] = (params, paths)

    # figure out the changed directories
    dirs = { }
    for path, change in self.changelist:
      if change.item_kind == svn.core.svn_node_dir:
        dirs[path] = None
      else:
        idx = path.rfind('/')
        if idx == -1:
          dirs[''] = None
        else:
          dirs[path[:idx]] = None

    dirlist = list(dirs.keys())

    commondir, dirlist = get_commondir(dirlist)

    # compose the basic subject line. later, we can prefix it.
    dirlist.sort()
    dirlist = ' '.join(dirlist)
    if commondir:
      self.output.subject = 'r%d - in %s: %s' % (repos.rev, commondir, dirlist)
    else:
      self.output.subject = 'r%d - %s' % (repos.rev, dirlist)