Changeset - ccd323bfa121
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 15 years ago 2011-01-31 17:41:12
marcin@python-works.com
Added limit option for revision ranges
2 files changed with 9 insertions and 5 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/changeset.py
Show inline comments
 
@@ -57,59 +57,63 @@ class ChangesetController(BaseController
 
    def index(self, revision):
 
        hg_model = ScmModel()
 

	
 
        def wrap_to_table(str):
 

	
 
            return '''<table class="code-difftable">
 
                        <tr class="line">
 
                        <td class="lineno new"></td>
 
                        <td class="code"><pre>%s</pre></td>
 
                        </tr>
 
                      </table>''' % str
 

	
 
        def get_cs_range(repo, rev_start, rev_end):
 
        def get_cs_range(repo, rev_start, rev_end, limit=None):
 
            """
 
            Temp fix function until VCS will handle that
 
            see issue #48
 
            :param rev_start:
 
            :param rev_end:
 
            """
 

	
 
            start_cs = repo.get_changeset(rev_start)
 
            end_cs = repo.get_changeset(rev_end)
 

	
 
            if start_cs.revision >= end_cs.revision:
 
                raise Exception('Start revision cannot be after End')
 

	
 
            yield start_cs
 

	
 
            cnt = 0
 
            while 1:
 

	
 
                next = start_cs.next()
 
                yield next
 
                start_cs = next
 
                cnt += 1
 
                if next == end_cs:
 
                    break
 

	
 
                if limit and cnt > limit:
 
                    break
 
        #======================================================================
 
        # REAL CODE BELOW
 
        #======================================================================
 
        #get ranges of revisions if preset
 
        rev_range = revision.split('...')[:2]
 

	
 
        range_limit = 50
 
        try:
 
            repo = hg_model.get_repo(c.repo_name)
 
            if len(rev_range) == 2:
 
                rev_start = rev_range[0]
 
                rev_end = rev_range[1]
 
                rev_ranges = get_cs_range(repo, rev_start, rev_end)
 
                rev_ranges = get_cs_range(repo, rev_start, rev_end, range_limit)
 
            else:
 
                rev_ranges = [repo.get_changeset(revision)]
 

	
 
            c.cs_ranges = list(rev_ranges)
 

	
 
        except (RepositoryError, ChangesetDoesNotExistError, Exception), e:
 
            log.error(traceback.format_exc())
 
            h.flash(str(e), category='warning')
 
            return redirect(url('home'))
 

	
 
        c.changes = OrderedDict()
 
        c.sum_added = 0
rhodecode/lib/smtp_mailer.py
Show inline comments
 
# -*- coding: utf-8 -*-
 
"""
 
    rhodecode.lib.smtp_mailer
 
    ~~~~~~~~~~~~~~~~~~~~~~~~~
 
    
 
    Simple smtp mailer used in RhodeCode
 
    
 
    :created_on: Sep 13, 2011
 
    :created_on: Sep 13, 2010
 
    :copyright: (c) 2011 by marcink.
 
    :license: LICENSE_NAME, see LICENSE_FILE for more details.
 
"""
 

	
 
import logging
 
import smtplib
 
import mimetypes
 
from socket import sslerror
 

	
 
from email.mime.multipart import MIMEMultipart
 
from email.mime.image import MIMEImage
 
from email.mime.audio import MIMEAudio
0 comments (0 inline, 0 general)