diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-09-03 21:59:31 +0200 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-09-03 21:59:31 +0200 |
commit | 74bb59fb87ddd11af18cf9c659e5f858052337e6 (patch) | |
tree | 2d67072168737aaa430221c878b1d7290c7a6bdf | |
parent | 136537fd8e24f0d60d0a3bae4c88d1e81204ca74 (diff) | |
parent | 20557210298a6f7533d4ec65511db9889a8986a2 (diff) |
merge with betav1.4.0
-rw-r--r-- | rhodecode/controllers/summary.py | 2 | ||||
-rw-r--r-- | rhodecode/lib/compat.py | 17 | ||||
-rw-r--r-- | rhodecode/lib/subprocessio.py | 16 | ||||
-rw-r--r-- | rhodecode/lib/utils.py | 2 | ||||
-rwxr-xr-x | rhodecode/model/db.py | 2 | ||||
-rw-r--r-- | rhodecode/public/js/rhodecode.js | 26 | ||||
-rw-r--r-- | rhodecode/templates/index_base.html | 2 | ||||
-rw-r--r-- | rhodecode/tests/test_libs.py | 2 |
8 files changed, 39 insertions, 30 deletions
diff --git a/rhodecode/controllers/summary.py b/rhodecode/controllers/summary.py index 72dcd5d0..ab21231a 100644 --- a/rhodecode/controllers/summary.py +++ b/rhodecode/controllers/summary.py @@ -195,6 +195,8 @@ class SummaryController(BaseRepoController): try: # get's the landing revision! or tip if fails cs = db_repo.get_landing_changeset() + if isinstance(cs, EmptyChangeset): + raise EmptyRepositoryError() renderer = MarkupRenderer() for f in README_FILES: try: diff --git a/rhodecode/lib/compat.py b/rhodecode/lib/compat.py index bdefbd63..b282169d 100644 --- a/rhodecode/lib/compat.py +++ b/rhodecode/lib/compat.py @@ -407,6 +407,15 @@ except ImportError: #============================================================================== +# bytes +#============================================================================== +if __py_version__ >= (2, 6): + _bytes = bytes +else: + # in py2.6 bytes is a synonim for str + _bytes = str + +#============================================================================== # deque #============================================================================== @@ -416,11 +425,11 @@ else: #need to implement our own deque with maxlen class deque(object): - def __init__(self, iterable=(), maxlen=-1): + def __init__(self, iterable=(), maxlen= -1): if not hasattr(self, 'data'): self.left = self.right = 0 self.data = {} - self.maxlen = maxlen + self.maxlen = maxlen or -1 self.extend(iterable) def append(self, x): @@ -537,9 +546,9 @@ else: #============================================================================== if __py_version__ >= (2, 6): - from threading import Event + from threading import Event, Thread else: - from threading import _Verbose, Condition, Lock + from threading import _Verbose, Condition, Lock, Thread def Event(*args, **kwargs): return _Event(*args, **kwargs) diff --git a/rhodecode/lib/subprocessio.py b/rhodecode/lib/subprocessio.py index 0a3c4b0a..a0723638 100644 --- a/rhodecode/lib/subprocessio.py +++ b/rhodecode/lib/subprocessio.py @@ -24,11 +24,10 @@ If not, see <http://www.gnu.org/licenses/>. ''' import os import subprocess -import threading -from rhodecode.lib.compat import deque, Event +from rhodecode.lib.compat import deque, Event, Thread, _bytes -class StreamFeeder(threading.Thread): +class StreamFeeder(Thread): """ Normal writing into pipe-like is blocking once the buffer is filled. This thread allows a thread to seep data from a file-like into a pipe @@ -39,9 +38,9 @@ class StreamFeeder(threading.Thread): super(StreamFeeder, self).__init__() self.daemon = True filelike = False - self.bytes = bytes() - if type(source) in (type(''), bytes, bytearray): # string-like - self.bytes = bytes(source) + self.bytes = _bytes() + if type(source) in (type(''), _bytes, bytearray): # string-like + self.bytes = _bytes(source) else: # can be either file pointer or file-like if type(source) in (int, long): # file pointer it is ## converting file descriptor (int) stdin into file-like @@ -77,7 +76,7 @@ class StreamFeeder(threading.Thread): return self.readiface -class InputStreamChunker(threading.Thread): +class InputStreamChunker(Thread): def __init__(self, source, target, buffer_size, chunk_size): super(InputStreamChunker, self).__init__() @@ -121,6 +120,7 @@ class InputStreamChunker(threading.Thread): da = self.data_added go = self.go b = s.read(cs) + while b and go.is_set(): if len(t) > ccm: kr.clear() @@ -180,7 +180,7 @@ class BufferedGenerator(): self.worker.data_added.wait(0.2) if len(self.data): self.worker.keep_reading.set() - return bytes(self.data.popleft()) + return _bytes(self.data.popleft()) elif self.worker.EOF.is_set(): raise StopIteration diff --git a/rhodecode/lib/utils.py b/rhodecode/lib/utils.py index d6720ea3..daaa01b6 100644 --- a/rhodecode/lib/utils.py +++ b/rhodecode/lib/utils.py @@ -91,7 +91,7 @@ def repo_name_slug(value): slug = remove_formatting(value) slug = strip_tags(slug) - for c in """=[]\;'"<>,/~!@#$%^&*()+{}|: """: + for c in """`?=[]\;'"<>,/~!@#$%^&*()+{}|: """: slug = slug.replace(c, '-') slug = recursive_replace(slug, '-') slug = collapse(slug, '-') diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py index 74715c29..d14bda08 100755 --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -1534,7 +1534,7 @@ class ChangesetComment(Base, BaseModel): hl_lines = Column('hl_lines', Unicode(512), nullable=True) f_path = Column('f_path', Unicode(1000), nullable=True) user_id = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=False) - text = Column('text', Unicode(25000), nullable=False) + text = Column('text', UnicodeText(25000), nullable=False) created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) modified_at = Column('modified_at', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) diff --git a/rhodecode/public/js/rhodecode.js b/rhodecode/public/js/rhodecode.js index 120d69e3..f6537273 100644 --- a/rhodecode/public/js/rhodecode.js +++ b/rhodecode/public/js/rhodecode.js @@ -372,18 +372,18 @@ var q_filter = function(target,nodes,display_element){ } }; -var tableTr = function(cls,body){ - var tr = document.createElement('tr'); - YUD.addClass(tr, cls); - - +var tableTr = function(cls, body){ + var _el = document.createElement('div'); var cont = new YAHOO.util.Element(body); var comment_id = fromHTML(body).children[0].id.split('comment-')[1]; - tr.id = 'comment-tr-{0}'.format(comment_id); - tr.innerHTML = '<td class="lineno-inline new-inline"></td>'+ - '<td class="lineno-inline old-inline"></td>'+ - '<td>{0}</td>'.format(body); - return tr; + var id = 'comment-tr-{0}'.format(comment_id); + var _html = ('<table><tbody><tr id="{0}" class="{1}">'+ + '<td class="lineno-inline new-inline"></td>'+ + '<td class="lineno-inline old-inline"></td>'+ + '<td>{2}</td>'+ + '</tr></tbody></table>').format(id, cls, body); + _el.innerHTML = _html; + return _el.children[0].children[0].children[0]; }; /** comments **/ @@ -395,7 +395,7 @@ var createInlineForm = function(parent_tr, f_path, line) { var tmpl = YUD.get('comment-inline-form-template').innerHTML; tmpl = tmpl.format(f_path, line); var form = tableTr('comment-form-inline',tmpl) - + // create event for hide button form = new YAHOO.util.Element(form); var form_hide_button = new YAHOO.util.Element(YUD.getElementsByClassName('hide-inline-form',null,form)[0]); @@ -444,13 +444,11 @@ var injectInlineForm = function(tr){ } } YUD.insertAfter(form,parent); - var f = YUD.get(form); - var overlay = YUD.getElementsByClassName('overlay',null,f)[0]; var _form = YUD.getElementsByClassName('inline-form',null,f)[0]; - form.on('submit',function(e){ + YUE.on(YUD.get(_form), 'submit',function(e){ YUE.preventDefault(e); //ajax submit diff --git a/rhodecode/templates/index_base.html b/rhodecode/templates/index_base.html index f3e25aa1..d6b09473 100644 --- a/rhodecode/templates/index_base.html +++ b/rhodecode/templates/index_base.html @@ -42,7 +42,7 @@ </div> </td> %if c.visual.stylify_metatags: - <td>${h.desc_stylize(gr.group_description)}</td> + <td>${h.urlify_text(h.desc_stylize(gr.group_description))}</td> %else: <td>${gr.group_description}</td> %endif diff --git a/rhodecode/tests/test_libs.py b/rhodecode/tests/test_libs.py index 13ec3c9e..78295db7 100644 --- a/rhodecode/tests/test_libs.py +++ b/rhodecode/tests/test_libs.py @@ -22,7 +22,7 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - +from __future__ import with_statement import unittest import datetime import hashlib |