Commits

Marcin Kuzminski committed 9ae95fd Merge

merge with beta

  • Participants
  • Parent commits c85746b, 85bb086
  • Branches default
  • Tags v1.4.0

Comments (0)

Files changed (8)

File rhodecode/controllers/summary.py

             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:

File rhodecode/lib/compat.py

 
 
 #==============================================================================
+# bytes
+#==============================================================================
+if __py_version__ >= (2, 6):
+    _bytes = bytes
+else:
+    # in py2.6 bytes is a synonim for str
+    _bytes = str
+
+#==============================================================================
 # deque
 #==============================================================================
 
     #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):
 #==============================================================================
 
 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)

File rhodecode/lib/subprocessio.py

 '''
 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
         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
         return self.readiface
 
 
-class InputStreamChunker(threading.Thread):
+class InputStreamChunker(Thread):
     def __init__(self, source, target, buffer_size, chunk_size):
 
         super(InputStreamChunker, self).__init__()
         da = self.data_added
         go = self.go
         b = s.read(cs)
+
         while b and go.is_set():
             if len(t) > ccm:
                 kr.clear()
             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
 

File rhodecode/lib/utils.py

     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, '-')

File rhodecode/model/db.py

     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)
 

File rhodecode/public/js/rhodecode.js

 	}	
 };
 
-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 **/
 	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]);
 		  }
 	  }	  
 	  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

File rhodecode/templates/index_base.html

                             </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

File rhodecode/tests/test_libs.py

 #
 # 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