##// 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 Changelog
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 1.0.0 (**2010-11-02**)
16 1.0.0 (**2010-11-02**)
7 ----------------------
17 ----------------------
8
18
@@ -5,12 +5,12 b' Installation'
5
5
6 ``RhodeCode`` is written entirely in Python, but in order to use it's full
6 ``RhodeCode`` is written entirely in Python, but in order to use it's full
7 potential there are some third-party requirements. When RhodeCode is used
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 recommended one is rabbitmq_ to make the async tasks work.
9 recommended one is rabbitmq_ to make the async tasks work.
10
10
11 Of course RhodeCode works in sync mode also, then You don't have to install
11 Of course RhodeCode works in sync mode also, then You don't have to install
12 any third party apps. Celery_ will give You large speed improvement when using
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 will work just fine without celery running.
14 will work just fine without celery running.
15
15
16 After You decide to Run it with celery make sure You run celeryd and
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`
52 - Assuming You have installed virtualenv_ create one using.
53 will make sure non of Your system libs are linked with this virtualenv_
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 - Default permissions on each repository is read, and owner is admin. So
40 - Default permissions on each repository is read, and owner is admin. So
41 remember to update these if needed.
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 Setting up Whoosh
56 Setting up Whoosh
45 -----------------
57 -----------------
@@ -53,9 +65,9 b' Setting up Whoosh'
53 When using incremental mode whoosh will check last modification date of each file
65 When using incremental mode whoosh will check last modification date of each file
54 and add it to reindex if newer file is available. Also indexing daemon checks
66 and add it to reindex if newer file is available. Also indexing daemon checks
55 for removed files and removes them from index. Sometime You might want to rebuild
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 and in standalone daemon You can pass `full` instead on incremental to build
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 Nginx virtual host example
72 Nginx virtual host example
61 --------------------------
73 --------------------------
@@ -24,7 +24,7 b' versioning implementation: http://semver'
24 @author: marcink
24 @author: marcink
25 """
25 """
26
26
27 VERSION = (1, 0, 0,)
27 VERSION = (1, 0, 1,)
28
28
29 __version__ = '.'.join((str(each) for each in VERSION[:4]))
29 __version__ = '.'.join((str(each) for each in VERSION[:4]))
30
30
@@ -203,12 +203,12 b' class _FilesBreadCrumbs(object):'
203 revision=rev, f_path=''))]
203 revision=rev, f_path=''))]
204 paths_l = paths.split('/')
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 if p != '':
207 if p != '':
208 url_l.append(link_to(p, url('files_home',
208 url_l.append(link_to(p, url('files_home',
209 repo_name=repo_name,
209 repo_name=repo_name,
210 revision=rev,
210 revision=rev,
211 f_path='/'.join(paths_l[:cnt]))))
211 f_path='/'.join(paths_l[:cnt + 1]))))
212
212
213 return literal('/'.join(url_l))
213 return literal('/'.join(url_l))
214
214
@@ -219,9 +219,9 b' class CodeHtmlFormatter(HtmlFormatter):'
219 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
219 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
220
220
221 def _wrap_code(self, source):
221 def _wrap_code(self, source):
222 for cnt, it in enumerate(source, 1):
222 for cnt, it in enumerate(source):
223 i, t = it
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 yield i, t
225 yield i, t
226 def pygmentize(filenode, **kwargs):
226 def pygmentize(filenode, **kwargs):
227 """
227 """
@@ -221,6 +221,11 b" def make_ui(read_from='file', path=None,"
221 for k, v in cfg.items(section):
221 for k, v in cfg.items(section):
222 baseui.setconfig(section, k, v)
222 baseui.setconfig(section, k, v)
223 log.debug('settings ui from file[%s]%s:%s', section, k, v)
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 if checkpaths:check_repo_dir(cfg.items('paths'))
229 if checkpaths:check_repo_dir(cfg.items('paths'))
225
230
226
231
@@ -89,6 +89,8 b' class Repository(Base):'
89 user = relation('User')
89 user = relation('User')
90 fork = relation('Repository', remote_side=repo_id)
90 fork = relation('Repository', remote_side=repo_id)
91 repo_to_perm = relation('RepoToPerm', cascade='all')
91 repo_to_perm = relation('RepoToPerm', cascade='all')
92 stats = relation('Statistics', cascade='all')
93
92
94
93 def __repr__(self):
95 def __repr__(self):
94 return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
96 return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
@@ -135,5 +137,5 b' class Statistics(Base):'
135 commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
137 commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
136 languages = Column("languages", BLOB(), nullable=False)#JSON data
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 #header #header-inner #logo a:hover {
272 #header #header-inner #logo a:hover {
273 color:#dabf29;
273 color:#bfe3ff;
274 }
274 }
275
275
276 #header #header-inner #quick,#header #header-inner #quick ul {
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 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover {
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 width:167px;
423 width:167px;
424 margin:0;
424 margin:0;
425 padding:12px 9px 7px 24px;
425 padding:12px 9px 7px 24px;
@@ -1010,7 +1010,7 b' padding:0;'
1010 #content div.box table th {
1010 #content div.box table th {
1011 background:#eee;
1011 background:#eee;
1012 border-bottom:1px solid #ddd;
1012 border-bottom:1px solid #ddd;
1013 padding:10px;
1013 padding:5px 0px 5px 5px;
1014 }
1014 }
1015
1015
1016 #content div.box table th.left {
1016 #content div.box table th.left {
@@ -1393,7 +1393,6 b' background-color:#003367;'
1393 color:#FFF;
1393 color:#FFF;
1394 display:block;
1394 display:block;
1395 min-width:20px;
1395 min-width:20px;
1396 max-width:400px;
1397 text-decoration:none;
1396 text-decoration:none;
1398 height:12px;
1397 height:12px;
1399 margin-bottom:4px;
1398 margin-bottom:4px;
@@ -1542,7 +1541,7 b' background:#F88;'
1542
1541
1543 .right .merge {
1542 .right .merge {
1544 vertical-align:top;
1543 vertical-align:top;
1545 font-size:60%;
1544 font-size:0.75em;
1546 font-weight:700;
1545 font-weight:700;
1547 }
1546 }
1548
1547
@@ -1554,13 +1553,15 b' font-family:monospace;'
1554 .right .logtags .branchtag {
1553 .right .logtags .branchtag {
1555 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1554 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1556 display:block;
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 .right .logtags .tagtag {
1560 .right .logtags .tagtag {
1561 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1561 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1562 display:block;
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 div.browserblock {
1567 div.browserblock {
@@ -1701,6 +1702,7 b' font:100% sans-serif;'
1701 width:auto;
1702 width:auto;
1702 opacity:1px;
1703 opacity:1px;
1703 padding:8px;
1704 padding:8px;
1705 white-space: pre;
1704 }
1706 }
1705
1707
1706 .ac {
1708 .ac {
@@ -2024,7 +2026,6 b' display:block;'
2024 }
2026 }
2025
2027
2026 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a {
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 color:#bfe3ff;
2029 color:#bfe3ff;
2029 }
2030 }
2030
2031
@@ -43,8 +43,8 b''
43 </tr>
43 </tr>
44 %endif
44 %endif
45
45
46 %for cnt,node in enumerate(c.files_list,1):
46 %for cnt,node in enumerate(c.files_list):
47 <tr class="parity${cnt%2}">
47 <tr class="parity${(cnt+1)%2}">
48 <td>
48 <td>
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))}
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 </td>
50 </td>
@@ -131,11 +131,13 b' E.onDOMReady(function(e){'
131 var value = data[k];
131 var value = data[k];
132 var td1 = document.createElement('td');
132 var td1 = document.createElement('td');
133 td1.width=150;
133 td1.width=150;
134
134 var trending_language_label = document.createElement('div');
135 var trending_language_label = document.createElement('div');
135 trending_language_label.innerHTML = k;
136 trending_language_label.innerHTML = k;
136 td1.appendChild(trending_language_label);
137 td1.appendChild(trending_language_label);
137
138
138 var td2 = document.createElement('td');
139 var td2 = document.createElement('td');
140 td2.setAttribute('style','padding-right: 12px ! important;');
139 var trending_language = document.createElement('div');
141 var trending_language = document.createElement('div');
140 trending_language.title = k;
142 trending_language.title = k;
141 trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>";
143 trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>";
General Comments 0
You need to be logged in to leave comments. Login now