##// END OF EJS Templates
fixes few bugs...
marcink -
r671:bee56f20 rhodecode-0.0.1.0.1 default
parent child Browse files
Show More
@@ -3,6 +3,16 b''
3 3 Changelog
4 4 =========
5 5
6
7 1.0.1 (**2010-11-10**)
8 ----------------------
9
10 - fixed #53 python2.5 incompatible enumerate calls
11 - fixed #52 disable mercurial extension for web
12 - fixed #51 deleting repositories don't delete it's dependent objects
13 - small css updated
14
15
6 16 1.0.0 (**2010-11-02**)
7 17 ----------------------
8 18
@@ -5,12 +5,12 b' Installation'
5 5
6 6 ``RhodeCode`` is written entirely in Python, but in order to use it's full
7 7 potential there are some third-party requirements. When RhodeCode is used
8 together with celery You have to install some kind of message broker,
8 together with celery_ You have to install some kind of message broker,
9 9 recommended one is rabbitmq_ to make the async tasks work.
10 10
11 11 Of course RhodeCode works in sync mode also, then You don't have to install
12 12 any third party apps. Celery_ will give You large speed improvement when using
13 many big repositories. If You plan to use it for 2 or 3 small repositories, it
13 many big repositories. If You plan to use it for 5 or 10 small repositories, it
14 14 will work just fine without celery running.
15 15
16 16 After You decide to Run it with celery make sure You run celeryd and
@@ -49,8 +49,9 b' Step by step installation example'
49 49 ---------------------------------
50 50
51 51
52 - Assuming You have installed virtualenv_ create one using. The `--no-site-packages`
53 will make sure non of Your system libs are linked with this virtualenv_
52 - Assuming You have installed virtualenv_ create one using.
53 The `--no-site-packages` will make sure non of Your system libs are linked
54 with this virtualenv_
54 55
55 56 ::
56 57
@@ -40,6 +40,18 b' Setting up the application'
40 40 - Default permissions on each repository is read, and owner is admin. So
41 41 remember to update these if needed.
42 42
43 Note
44 ----
45
46 RhodeCode when running without the celery it's running all it's task in sync
47 mode, for first few times when visiting summary page You can notice few
48 slow downs, this is due the statistics building it's cache. After all changesets
49 are parsed it'll take the stats from cache and run much faster. Each summary
50 page display parse at most 250 changesets in order to not stress the cpu, so
51 the full stats are going to be loaded after total_number_of_changesets/250
52 summary page visits.
53
54
43 55
44 56 Setting up Whoosh
45 57 -----------------
@@ -53,9 +65,9 b' Setting up Whoosh'
53 65 When using incremental mode whoosh will check last modification date of each file
54 66 and add it to reindex if newer file is available. Also indexing daemon checks
55 67 for removed files and removes them from index. Sometime You might want to rebuild
56 index from scrach, in admin pannel You can check `build from scratch` flag
68 index from scratch, in admin panel You can check `build from scratch` flag
57 69 and in standalone daemon You can pass `full` instead on incremental to build
58 remove previos index and build new one.
70 remove previous index and build new one.
59 71
60 72 Nginx virtual host example
61 73 --------------------------
@@ -24,7 +24,7 b' versioning implementation: http://semver'
24 24 @author: marcink
25 25 """
26 26
27 VERSION = (1, 0, 0,)
27 VERSION = (1, 0, 1,)
28 28
29 29 __version__ = '.'.join((str(each) for each in VERSION[:4]))
30 30
@@ -203,12 +203,12 b' class _FilesBreadCrumbs(object):'
203 203 revision=rev, f_path=''))]
204 204 paths_l = paths.split('/')
205 205
206 for cnt, p in enumerate(paths_l, 1):
206 for cnt, p in enumerate(paths_l):
207 207 if p != '':
208 208 url_l.append(link_to(p, url('files_home',
209 209 repo_name=repo_name,
210 210 revision=rev,
211 f_path='/'.join(paths_l[:cnt]))))
211 f_path='/'.join(paths_l[:cnt + 1]))))
212 212
213 213 return literal('/'.join(url_l))
214 214
@@ -219,9 +219,9 b' class CodeHtmlFormatter(HtmlFormatter):'
219 219 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
220 220
221 221 def _wrap_code(self, source):
222 for cnt, it in enumerate(source, 1):
222 for cnt, it in enumerate(source):
223 223 i, t = it
224 t = '<div id="#S-%s">%s</div>' % (cnt, t)
224 t = '<div id="#S-%s">%s</div>' % (cnt + 1, t)
225 225 yield i, t
226 226 def pygmentize(filenode, **kwargs):
227 227 """
@@ -221,6 +221,11 b" def make_ui(read_from='file', path=None,"
221 221 for k, v in cfg.items(section):
222 222 baseui.setconfig(section, k, v)
223 223 log.debug('settings ui from file[%s]%s:%s', section, k, v)
224
225 for k, v in baseui.configitems('extensions'):
226 baseui.setconfig('extensions', k, '0')
227 #just enable mq
228 baseui.setconfig('extensions', 'mq', '1')
224 229 if checkpaths:check_repo_dir(cfg.items('paths'))
225 230
226 231
@@ -89,6 +89,8 b' class Repository(Base):'
89 89 user = relation('User')
90 90 fork = relation('Repository', remote_side=repo_id)
91 91 repo_to_perm = relation('RepoToPerm', cascade='all')
92 stats = relation('Statistics', cascade='all')
93
92 94
93 95 def __repr__(self):
94 96 return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
@@ -135,5 +137,5 b' class Statistics(Base):'
135 137 commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
136 138 languages = Column("languages", BLOB(), nullable=False)#JSON data
137 139
138 repository = relation('Repository')
140 repository = relation('Repository', single_parent=True)
139 141
@@ -270,7 +270,7 b' text-decoration:none;'
270 270 }
271 271
272 272 #header #header-inner #logo a:hover {
273 color:#dabf29;
273 color:#bfe3ff;
274 274 }
275 275
276 276 #header #header-inner #quick,#header #header-inner #quick ul {
@@ -419,7 +419,7 b' padding:12px 9px 7px 24px;'
419 419 }
420 420
421 421 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover {
422 background:url("../images/icons/folder_edit.png") no-repeat scroll 4px 9px #FFF;
422 background:url("../images/icons/database_edit.png") no-repeat scroll 4px 9px #FFF;
423 423 width:167px;
424 424 margin:0;
425 425 padding:12px 9px 7px 24px;
@@ -1010,7 +1010,7 b' padding:0;'
1010 1010 #content div.box table th {
1011 1011 background:#eee;
1012 1012 border-bottom:1px solid #ddd;
1013 padding:10px;
1013 padding:5px 0px 5px 5px;
1014 1014 }
1015 1015
1016 1016 #content div.box table th.left {
@@ -1393,7 +1393,6 b' background-color:#003367;'
1393 1393 color:#FFF;
1394 1394 display:block;
1395 1395 min-width:20px;
1396 max-width:400px;
1397 1396 text-decoration:none;
1398 1397 height:12px;
1399 1398 margin-bottom:4px;
@@ -1542,7 +1541,7 b' background:#F88;'
1542 1541
1543 1542 .right .merge {
1544 1543 vertical-align:top;
1545 font-size:60%;
1544 font-size:0.75em;
1546 1545 font-weight:700;
1547 1546 }
1548 1547
@@ -1554,13 +1553,15 b' font-family:monospace;'
1554 1553 .right .logtags .branchtag {
1555 1554 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1556 1555 display:block;
1557 padding:8px 16px 0 0;
1556 font-size:0.8em;
1557 padding:11px 16px 0 0;
1558 1558 }
1559 1559
1560 1560 .right .logtags .tagtag {
1561 1561 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1562 1562 display:block;
1563 padding:6px 18px 0 0;
1563 font-size:0.8em;
1564 padding:11px 16px 0 0;
1564 1565 }
1565 1566
1566 1567 div.browserblock {
@@ -1701,6 +1702,7 b' font:100% sans-serif;'
1701 1702 width:auto;
1702 1703 opacity:1px;
1703 1704 padding:8px;
1705 white-space: pre;
1704 1706 }
1705 1707
1706 1708 .ac {
@@ -2024,7 +2026,6 b' display:block;'
2024 2026 }
2025 2027
2026 2028 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a {
2027 background:url("../../images/title_tab_selected.png") no-repeat bottom center;
2028 2029 color:#bfe3ff;
2029 2030 }
2030 2031
@@ -43,8 +43,8 b''
43 43 </tr>
44 44 %endif
45 45
46 %for cnt,node in enumerate(c.files_list,1):
47 <tr class="parity${cnt%2}">
46 %for cnt,node in enumerate(c.files_list):
47 <tr class="parity${(cnt+1)%2}">
48 48 <td>
49 49 ${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=node.path),class_=file_class(node))}
50 50 </td>
@@ -131,11 +131,13 b' E.onDOMReady(function(e){'
131 131 var value = data[k];
132 132 var td1 = document.createElement('td');
133 133 td1.width=150;
134
134 135 var trending_language_label = document.createElement('div');
135 136 trending_language_label.innerHTML = k;
136 137 td1.appendChild(trending_language_label);
137 138
138 139 var td2 = document.createElement('td');
140 td2.setAttribute('style','padding-right: 12px ! important;');
139 141 var trending_language = document.createElement('div');
140 142 trending_language.title = k;
141 143 trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>";
General Comments 0
You need to be logged in to leave comments. Login now