You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by gj...@apache.org on 2012/10/16 17:55:11 UTC

svn commit: r1398858 [29/33] - in /incubator/bloodhound/vendor/trac/current: ./ contrib/ doc/ doc/api/ doc/utils/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templates/ trac/admin/tests/ trac/db/ tr...

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/tests/cache.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/tests/cache.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/tests/cache.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/tests/cache.py Tue Oct 16 15:55:00 2012
@@ -219,6 +219,69 @@ class CacheTestCase(unittest.TestCase):
         self.assertEquals((to_utimestamp(t1), 'joe', '**empty**'), rows[0])
         self.assertEquals((to_utimestamp(t2), 'joe', 'Import'), rows[1])
 
+    def test_sync_changeset_if_not_exists(self):
+        t = [
+            datetime(2001, 1, 1, 1, 1, 1, 0, utc), # r0
+            datetime(2002, 1, 1, 1, 1, 1, 0, utc), # r1
+            datetime(2003, 1, 1, 1, 1, 1, 0, utc), # r2
+            datetime(2004, 1, 1, 1, 1, 1, 0, utc), # r3
+        ]
+        self.preset_cache(
+            (('0', to_utimestamp(t[0]), 'joe', '**empty**'), []),
+            (('1', to_utimestamp(t[1]), 'joe', 'Import'),
+             [('trunk', 'D', 'A', None, None),
+              ('trunk/README', 'F', 'A', None, None)]),
+            # not exists r2
+            (('3', to_utimestamp(t[3]), 'joe', 'Add COPYING'),
+             [('trunk/COPYING', 'F', 'A', None, None)]),
+            )
+        repos = self.get_repos(get_changeset=lambda x: changesets[int(x)],
+                               youngest_rev=3)
+        changes = [
+            None,                                                       # r0
+            [('trunk', Node.DIRECTORY, Changeset.ADD, None, None),      # r1
+             ('trunk/README', Node.FILE, Changeset.ADD, None, None)],
+            [('branches', Node.DIRECTORY, Changeset.ADD, None, None),   # r2
+             ('tags', Node.DIRECTORY, Changeset.ADD, None, None)],
+            [('trunk/COPYING', Node.FILE, Changeset.ADD, None, None)],  # r3
+        ]
+        changesets = [
+            Mock(Changeset, repos, 0, '**empty**', 'joe', t[0],
+                 get_changes=lambda: []),
+            Mock(Changeset, repos, 1, 'Initial Import', 'joe', t[1],
+                 get_changes=lambda: iter(changes[1])),
+            Mock(Changeset, repos, 2, 'Created directories', 'john', t[2],
+                 get_changes=lambda: iter(changes[2])),
+            Mock(Changeset, repos, 3, 'Add COPYING', 'joe', t[3],
+                 get_changes=lambda: iter(changes[3])),
+            ]
+        cache = CachedRepository(self.env, repos, self.log)
+        self.assertRaises(NoSuchChangeset, cache.get_changeset, 2)
+        cache.sync()
+        self.assertRaises(NoSuchChangeset, cache.get_changeset, 2)
+
+        self.assertEqual(None, cache.sync_changeset(2))
+        cset = cache.get_changeset(2)
+        self.assertEqual('john', cset.author)
+        self.assertEqual('Created directories', cset.message)
+        self.assertEqual(t[2], cset.date)
+        cset_changes = cset.get_changes()
+        self.assertEqual(('branches', Node.DIRECTORY, Changeset.ADD, None,
+                          None),
+                         cset_changes.next())
+        self.assertEqual(('tags', Node.DIRECTORY, Changeset.ADD, None, None),
+                         cset_changes.next())
+        self.assertRaises(StopIteration, cset_changes.next)
+
+        rows = self.env.db_query(
+                "SELECT time,author,message FROM revision ORDER BY rev")
+        self.assertEquals(4, len(rows))
+        self.assertEquals((to_utimestamp(t[0]), 'joe', '**empty**'), rows[0])
+        self.assertEquals((to_utimestamp(t[1]), 'joe', 'Import'), rows[1])
+        self.assertEquals((to_utimestamp(t[2]), 'john', 'Created directories'),
+                          rows[2])
+        self.assertEquals((to_utimestamp(t[3]), 'joe', 'Add COPYING'), rows[3])
+
     def test_get_changes(self):
         t1 = datetime(2001, 1, 1, 1, 1, 1, 0, utc)
         t2 = datetime(2002, 1, 1, 1, 1, 1, 0, utc)

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/browser.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/browser.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/browser.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/browser.py Tue Oct 16 15:55:00 2012
@@ -2,7 +2,7 @@
 #
 # Copyright (C) 2003-2010 Edgewall Software
 # Copyright (C) 2003-2005 Jonas Borgström <jo...@edgewall.com>
-# Copyright (C) 2005-2007 Christian Boos <cb...@neuf.fr>
+# Copyright (C) 2005-2007 Christian Boos <cb...@edgewall.org>
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/changeset.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/changeset.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/changeset.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/changeset.py Tue Oct 16 15:55:00 2012
@@ -3,7 +3,7 @@
 # Copyright (C) 2003-2009 Edgewall Software
 # Copyright (C) 2003-2005 Jonas Borgström <jo...@edgewall.com>
 # Copyright (C) 2004-2006 Christopher Lenz <cm...@gmx.de>
-# Copyright (C) 2005-2006 Christian Boos <cb...@neuf.fr>
+# Copyright (C) 2005-2006 Christian Boos <cb...@edgewall.org>
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -16,7 +16,7 @@
 #
 # Author: Jonas Borgström <jo...@edgewall.com>
 #         Christopher Lenz <cm...@gmx.de>
-#         Christian Boos <cb...@neuf.fr>
+#         Christian Boos <cb...@edgewall.org>
 
 from __future__ import with_statement
 
@@ -681,7 +681,7 @@ class ChangesetModule(Component):
         req.send_response(200)
         req.send_header('Content-Type', 'text/x-patch;charset=utf-8')
         req.send_header('Content-Disposition',
-                        content_disposition('inline', filename + '.diff'))
+                        content_disposition('attachment', filename + '.diff'))
         buf = StringIO()
         mimeview = Mimeview(self.env)
 
@@ -758,7 +758,7 @@ class ChangesetModule(Component):
         req.send_response(200)
         req.send_header('Content-Type', 'application/zip')
         req.send_header('Content-Disposition',
-                        content_disposition('inline', filename + '.zip'))
+                        content_disposition('attachment', filename + '.zip'))
 
         from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED as compression
 
@@ -990,6 +990,7 @@ class ChangesetModule(Component):
                                tag.strong(self._get_location(files) or '/')),
                         markup, class_="changes")
                 elif show_files:
+                    unique_files = set()
                     for c, r, repos_for_c in changesets:
                         for chg in c.get_changes():
                             resource = c.resource.parent.child('source',
@@ -998,8 +999,9 @@ class ChangesetModule(Component):
                                 continue
                             if show_files > 0 and len(files) > show_files:
                                 break
-                            files.append(tag.li(tag.div(class_=chg[2]),
-                                                chg[0] or '/'))
+                            unique_files.add((chg[0], chg[2]))
+                    files = [tag.li(tag.div(class_=mod), path or '/')
+                             for path, mod in sorted(unique_files)]
                     if show_files > 0 and len(files) > show_files:
                         files = files[:show_files] + [tag.li(u'\u2026')]
                     markup = tag(tag.ul(files, class_="changes"), markup)
@@ -1041,7 +1043,7 @@ class ChangesetModule(Component):
 
     # IWikiSyntaxProvider methods
 
-    CHANGESET_ID = r"(?:\d+|[a-fA-F\d]{8,})" # only "long enough" hexa ids
+    CHANGESET_ID = r"(?:[0-9]+|[a-fA-F0-9]{8,})" # only "long enough" hexa ids
 
     def get_wiki_syntax(self):
         yield (
@@ -1051,7 +1053,7 @@ class ChangesetModule(Component):
             # + optional query and fragment
             r"%s(?:/[^\]]*)?(?:\?[^\]]*)?(?:#[^\]]*)?\]|" % self.CHANGESET_ID +
             # r... form: allow r1 but not r1:2 (handled by the log syntax)
-            r"(?:\b|!)r\d+\b(?!:\d)(?:/[a-zA-Z0-9_/+-]+)?",
+            r"(?:\b|!)r[0-9]+\b(?!:[0-9])(?:/[a-zA-Z0-9_/+-]+)?",
             lambda x, y, z:
             self._format_changeset_link(x, 'changeset',
                                         y[1:] if y[0] == 'r' else y[1:-1],

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/log.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/log.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/log.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/log.py Tue Oct 16 15:55:00 2012
@@ -2,7 +2,7 @@
 #
 # Copyright (C) 2003-2009 Edgewall Software
 # Copyright (C) 2003-2005 Jonas Borgström <jo...@edgewall.com>
-# Copyright (C) 2005-2006 Christian Boos <cb...@neuf.fr>
+# Copyright (C) 2005-2006 Christian Boos <cb...@edgewall.org>
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -14,7 +14,7 @@
 # history and logs, available at http://trac.edgewall.org/log/.
 #
 # Author: Jonas Borgström <jo...@edgewall.com>
-#         Christian Boos <cb...@neuf.fr>
+#         Christian Boos <cb...@edgewall.org>
 
 import re
 
@@ -51,7 +51,7 @@ class LogModule(Component):
     graph_colors = ListOption('revisionlog', 'graph_colors',
         ['#cc0', '#0c0', '#0cc', '#00c', '#c0c', '#c00'],
         doc="""Comma-separated list of colors to use for the TracRevisionLog
-        graph display. (''since 0.13'')""")
+        graph display. (''since 1.0'')""")
 
     # INavigationContributor methods
 

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/wikisyntax.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/wikisyntax.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/wikisyntax.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/wikisyntax.py Tue Oct 16 15:55:00 2012
@@ -99,7 +99,13 @@ changeset:1#file0
 [1], r1
 </p>
 ------------------------------
-[1], r1
+============================== unicode digits
+[₁₂₃], r₁₂₃, [₀A₁B₂C₃D]
+------------------------------
+<p>
+[₁₂₃], r₁₂₃, [₀A₁B₂C₃D]
+</p>
+------------------------------
 ============================== Link resolver counter examples
 Change:[10] There should be a link to changeset [10]
 
@@ -237,6 +243,19 @@ rfc:4180 should not be a log link
 <a class="ext-link" href="http://trac.edgewall.org/intertrac/log%3A/trunk%403317%3A3318" title="log:/trunk@3317:3318 in Trac\'s Trac"><span class="icon"></span>[trac 3317:3318/trunk]</a>
 </p>
 ------------------------------
+============================== Log range with unicode digits
+r₁₂:₂₀,₂₅,₃₀-₃₅
+[₁₂:₂₀,₂₅,₃₀-₃₅]
+[T₃₃₁₇:₃₃₁₈]
+[trac ₃₃₁₇:₃₃₁₈]
+------------------------------
+<p>
+r₁₂:₂₀,₂₅,₃₀-₃₅
+[₁₂:₂₀,₂₅,₃₀-₃₅]
+[T₃₃₁₇:₃₃₁₈]
+[trac ₃₃₁₇:₃₃₁₈]
+</p>
+------------------------------
 """
 
 

Modified: incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/util.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/util.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/util.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/util.py Tue Oct 16 15:55:00 2012
@@ -2,7 +2,7 @@
 #
 # Copyright (C) 2003-2009 Edgewall Software
 # Copyright (C) 2003-2005 Jonas Borgström <jo...@edgewall.com>
-# Copyright (C) 2005-2007 Christian Boos <cb...@neuf.fr>
+# Copyright (C) 2005-2007 Christian Boos <cb...@edgewall.org>
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -14,7 +14,7 @@
 # history and logs, available at http://trac.edgewall.org/log/.
 #
 # Author: Jonas Borgström <jo...@edgewall.com>
-#         Christian Boos <cb...@neuf.fr>
+#         Christian Boos <cb...@edgewall.org>
 
 from itertools import izip
 

Modified: incubator/bloodhound/vendor/trac/current/trac/web/api.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/web/api.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/web/api.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/web/api.py Tue Oct 16 15:55:00 2012
@@ -62,7 +62,7 @@ class IRequestHandler(Interface):
         Note that if template processing should not occur, this method can
         simply send the response itself and not return anything.
 
-        :Since 0.13: Clearsilver templates are no longer supported.
+        :Since 1.0: Clearsilver templates are no longer supported.
         """
 
 
@@ -98,7 +98,7 @@ class IRequestFilter(Interface):
            at ClearSilver templates and the newer ones targeted at Genshi
            templates.
 
-        :Since 0.13: Clearsilver templates are no longer supported.
+        :Since 1.0: Clearsilver templates are no longer supported.
         """
 
 
@@ -150,7 +150,7 @@ class HTTPException(Exception):
         new_class.reason = reason
         return new_class
 
-
+_HTTPException_subclass_names = []
 for code in [code for code in HTTP_STATUS if code >= 400]:
     exc_name = HTTP_STATUS[code].replace(' ', '').replace('-', '')
     # 2.5 compatibility hack:
@@ -158,9 +158,10 @@ for code in [code for code in HTTP_STATU
         exc_name = 'InternalError'
     if exc_name.lower().startswith('http'):
         exc_name = exc_name[4:]
-    exc_name = 'HTTP' + exc_name        
+    exc_name = 'HTTP' + exc_name
     setattr(sys.modules[__name__], exc_name,
             HTTPException.subclass(exc_name, code))
+    _HTTPException_subclass_names.append(exc_name)
 del code, exc_name
 
 
@@ -562,9 +563,12 @@ class Request(object):
         self.send_header('Content-Type', mimetype)
         self.send_header('Content-Length', stat.st_size)
         self.send_header('Last-Modified', last_modified)
+        use_xsendfile = getattr(self, 'use_xsendfile', False)
+        if use_xsendfile:
+            self.send_header('X-Sendfile', os.path.abspath(path))
         self.end_headers()
 
-        if self.method != 'HEAD':
+        if not use_xsendfile and self.method != 'HEAD':
             fileobj = file(path, 'rb')
             file_wrapper = self.environ.get('wsgi.file_wrapper', _FileWrapper)
             self._response = file_wrapper(fileobj, 4096)
@@ -703,3 +707,5 @@ class Request(object):
         cookies = to_unicode(self.outcookie.output(header='')).encode('utf-8')
         for cookie in cookies.splitlines():
             self._outheaders.append(('Set-Cookie', cookie.strip()))
+
+__no_apidoc__ = _HTTPException_subclass_names

Modified: incubator/bloodhound/vendor/trac/current/trac/web/chrome.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/web/chrome.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/web/chrome.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/web/chrome.py Tue Oct 16 15:55:00 2012
@@ -54,13 +54,12 @@ from trac.util.html import escape, plain
 from trac.util.text import pretty_size, obfuscate_email_address, \
                            shorten_line, unicode_quote_plus, to_unicode, \
                            javascript_quote, exception_to_unicode
-from trac.util.datefmt import pretty_timedelta, format_datetime, format_date, \
-                              format_time, from_utimestamp, http_date, utc, \
-                              get_date_format_jquery_ui, is_24_hours, \
-                              get_time_format_jquery_ui, user_time, \
-                              get_month_names_jquery_ui, \
-                              get_day_names_jquery_ui, \
-                              get_timezone_list_jquery_ui
+from trac.util.datefmt import (
+    pretty_timedelta, format_datetime, format_date, format_time,
+    from_utimestamp, http_date, utc, get_date_format_jquery_ui, is_24_hours,
+    get_time_format_jquery_ui, user_time, get_month_names_jquery_ui,
+    get_day_names_jquery_ui, get_timezone_list_jquery_ui,
+    get_first_week_day_jquery_ui)
 from trac.util.translation import _, get_available_locales
 from trac.web.api import IRequestHandler, ITemplateStreamFilter, HTTPNotFound
 from trac.web.href import Href
@@ -345,7 +344,7 @@ class Chrome(Component):
         This can be useful in site.html for common interface customization
         of multiple Trac environments.
         
-        (''since 0.13'')""")
+        (''since 1.0'')""")
 
     auto_reload = BoolOption('trac', 'auto_reload', False,
         """Automatically reload template files after modification.""")
@@ -382,61 +381,34 @@ class Chrome(Component):
         http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js or
         https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js.
         
-        (''since 0.13'')""")
+        (''since 1.0'')""")
 
     jquery_ui_location = Option('trac', 'jquery_ui_location', '',
-        """Location of the jQuery UI !JavaScript library (version 1.8.18).
+        """Location of the jQuery UI !JavaScript library (version 1.8.21).
         
         An empty value loads jQuery UI from the copy bundled with Trac.
         
         Alternatively, jQuery UI could be loaded from a CDN, for example:
-        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js
+        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js
         or
-        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.18/jquery-ui.min.js.
+        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.21/jquery-ui.min.js.
         
-        (''since 0.13'')""")
+        (''since 1.0'')""")
 
     jquery_ui_theme_location = Option('trac', 'jquery_ui_theme_location', '',
         """Location of the theme to be used with the jQuery UI !JavaScript
-        library (version 1.8.18).
+        library (version 1.8.21).
         
         An empty value loads the custom Trac jQuery UI theme from the copy 
         bundled with Trac.
         
         Alternatively, a jQuery UI theme could be loaded from a CDN, for 
         example:
-        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/start/jquery-ui.css
+        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/start/jquery-ui.css
         or
-        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.18/themes/start/jquery-ui.css.
+        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.21/themes/start/jquery-ui.css.
         
-        (''since 0.13'')""")
-
-    jquery_ui_location = Option('trac', 'jquery_ui_location', '',
-        """Location of the jQuery UI !JavaScript library (version 1.8.18).
-        
-        An empty value loads jQuery UI from the copy bundled with Trac.
-        
-        Alternatively, jQuery UI could be loaded from a CDN, for example:
-        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js
-        or
-        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.18/jquery-ui.min.js.
-        
-        (''since 0.13'')""")
-
-    jquery_ui_theme_location = Option('trac', 'jquery_ui_theme_location', '',
-        """Location of the theme to be used with the jQuery UI !JavaScript
-        library (version 1.8.18).
-        
-        An empty value loads the custom Trac jQuery UI theme from the copy 
-        bundled with Trac.
-        
-        Alternatively, a jQuery UI theme could be loaded from a CDN, for 
-        example:
-        https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/start/jquery-ui.css
-        or
-        http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.18/themes/start/jquery-ui.css.
-        
-        (''since 0.13'')""")
+        (''since 1.0'')""")
 
     metanav_order = ListOption('trac', 'metanav',
                                'login, logout, prefs, help, about', doc=
@@ -502,7 +474,7 @@ class Chrome(Component):
         'relative',
         """The date information format. Valid options are 'relative' for
         displaying relative format and 'absolute' for displaying absolute
-        format. (''since 0.13'')
+        format. (''since 1.0'')
         """)
 
     templates = None
@@ -549,7 +521,12 @@ class Chrome(Component):
     
     def get_system_info(self):
         import genshi
-        yield 'Genshi', get_pkginfo(genshi).get('version')
+        info = get_pkginfo(genshi).get('version')
+        if hasattr(genshi, '_speedups'):
+            info += ' (with speedups)'
+        else:
+            info += ' (without speedups)'
+        yield 'Genshi', info
         try:
             import babel
         except ImportError:
@@ -909,6 +886,7 @@ class Chrome(Component):
             'format_author': partial(self.format_author, req),
             'format_emails': self.format_emails,
             'get_systeminfo': self.env.get_systeminfo,
+            'captioned_button': partial(presentation.captioned_button, req),
 
             # Date/time formatting
             'dateinfo': dateinfo,
@@ -1122,8 +1100,6 @@ class Chrome(Component):
                             or 'common/css/jquery-ui/jquery-ui.css')
         add_script(req, 'common/js/jquery-ui-addons.js')
         add_stylesheet(req, 'common/css/jquery-ui-addons.css')
-        first_day = (req.locale.first_week_day + 1) % 7 \
-                    if req.locale and req.locale.territory else 0
         is_iso8601 = req.lc_time == 'iso8601'
         add_script_data(req, jquery_ui={
             'month_names': get_month_names_jquery_ui(req),
@@ -1131,7 +1107,7 @@ class Chrome(Component):
             'date_format': get_date_format_jquery_ui(req.lc_time),
             'time_format': get_time_format_jquery_ui(req.lc_time),
             'ampm': not is_24_hours(req.lc_time),
-            'first_week_day': first_day,
+            'first_week_day': get_first_week_day_jquery_ui(req),
             'timepicker_separator': 'T' if is_iso8601 else ' ',
             'show_timezone': is_iso8601,
             'timezone_list': get_timezone_list_jquery_ui() \

Modified: incubator/bloodhound/vendor/trac/current/trac/web/main.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/web/main.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/web/main.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/web/main.py Tue Oct 16 15:55:00 2012
@@ -28,13 +28,13 @@ from pprint import pformat, pprint
 import re
 import sys
 
-from genshi.core import Markup
 from genshi.builder import Fragment, tag
 from genshi.output import DocType
 from genshi.template import TemplateLoader
 
 from trac import __version__ as TRAC_VERSION
-from trac.config import ExtensionOption, Option, OrderedExtensionsOption
+from trac.config import BoolOption, ExtensionOption, Option, \
+                        OrderedExtensionsOption
 from trac.core import *
 from trac.env import open_environment
 from trac.loader import get_plugin_info, match_plugins_to_frames
@@ -43,8 +43,7 @@ from trac.resource import ResourceNotFou
 from trac.util import arity, get_frame_info, get_last_traceback, hex_entropy, \
                       read_file, safe_repr, translation
 from trac.util.concurrency import threading
-from trac.util.datefmt import format_datetime, http_date, localtz, timezone, \
-                              user_time
+from trac.util.datefmt import format_datetime, localtz, timezone, user_time
 from trac.util.text import exception_to_unicode, shorten_line, to_unicode
 from trac.util.translation import _, get_negotiated_locale, has_babel, \
                                   safefmt, tag_
@@ -72,6 +71,15 @@ class FakePerm(dict):
         return self
 
 
+class RequestWithSession(Request):
+    """A request that saves its associated session when sending the reply."""
+    
+    def send_response(self, code=200):
+        if code < 400:
+            self.session.save()
+        super(RequestWithSession, self).send_response(code)
+
+
 class RequestDispatcher(Component):
     """Web request dispatcher.
     
@@ -110,7 +118,14 @@ class RequestDispatcher(Component):
         """The date format. Valid options are 'iso8601' for selecting
         ISO 8601 format, or leave it empty which means the default
         date format will be inferred from the browser's default
-        language. (''since 0.13'')
+        language. (''since 1.0'')
+        """)
+
+    use_xsendfile = BoolOption('trac', 'use_xsendfile', 'false',
+        """When true, send a `X-Sendfile` header and no content when sending
+        files from the filesystem, so that the web server handles the content.
+        This requires a web server that knows how to handle such a header,
+        like Apache with `mod_xsendfile` or lighttpd. (''since 1.0'')
         """)
 
     # Public API
@@ -142,7 +157,8 @@ class RequestDispatcher(Component):
             'locale': self._get_locale,
             'lc_time': self._get_lc_time,
             'tz': self._get_timezone,
-            'form_token': self._get_form_token
+            'form_token': self._get_form_token,
+            'use_xsendfile': self._get_use_xsendfile,
         })
 
         try:
@@ -219,8 +235,6 @@ class RequestDispatcher(Component):
                 else:
                     self._post_process_request(req)
             except RequestDone:
-                # Give the session a chance to persist changes after a send()
-                req.session.save()
                 raise
             except:
                 # post-process the request in case of errors
@@ -303,6 +317,9 @@ class RequestDispatcher(Component):
                 req.outcookie['trac_form_token']['httponly'] = True
             return req.outcookie['trac_form_token'].value
 
+    def _get_use_xsendfile(self, req):
+        return self.use_xsendfile
+
     def _pre_process_request(self, req, chosen_handler):
         for filter_ in self.filters:
             chosen_handler = filter_.pre_process_request(req, chosen_handler)
@@ -442,7 +459,7 @@ def dispatch_request(environ, start_resp
     except Exception, e:
         env_error = e
 
-    req = Request(environ, start_response)
+    req = RequestWithSession(environ, start_response)
     translation.make_activable(lambda: req.locale, env.path if env else None)
     try:
         return _dispatch_request(req, env, env_error)
@@ -663,9 +680,13 @@ def send_project_index(environ, start_re
                                 default_encoding='utf-8')
         tmpl = loader.load(template)
         stream = tmpl.generate(**data)
-        output = stream.render('xhtml', doctype=DocType.XHTML_STRICT,
-                               encoding='utf-8')
-        req.send(output, 'text/html')
+        if template.endswith('.xml'):
+            output = stream.render('xml')
+            req.send(output, 'text/xml')
+        else:
+            output = stream.render('xhtml', doctype=DocType.XHTML_STRICT,
+                                   encoding='utf-8')
+            req.send(output, 'text/html')
 
     except RequestDone:
         pass

Modified: incubator/bloodhound/vendor/trac/current/trac/web/session.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/web/session.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/web/session.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/web/session.py Tue Oct 16 15:55:00 2012
@@ -58,6 +58,18 @@ class DetachedSession(dict):
     def __setitem__(self, key, value):
         dict.__setitem__(self, key, unicode(value))
 
+    def set(self, key, value, default=None):
+        """Set a variable in the session, or remove it if it's equal to the
+        default value.
+        """
+        value = unicode(value)
+        if default is not None:
+            default = unicode(default)
+            if value == default:
+                self.pop(key, None)
+                return
+        dict.__setitem__(self, key, value)
+        
     def get_session(self, sid, authenticated=False):
         self.env.log.debug("Retrieving session for ID %r", sid)
 

Modified: incubator/bloodhound/vendor/trac/current/trac/web/tests/session.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/web/tests/session.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/web/tests/session.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/web/tests/session.py Tue Oct 16 15:55:00 2012
@@ -15,7 +15,7 @@ def _prep_session_table(env, spread_visi
     """ Populate the session table with known values.
 
     :return: a tuple of lists `(auth_list, anon_list, all_list)`
-    :since 0.13: changed `db` input parameter to `env`
+    :since 1.0: changed `db` input parameter to `env`
     """
     with env.db_transaction as db:
         db("DELETE FROM session")
@@ -44,7 +44,7 @@ def _prep_session_table(env, spread_visi
     return (auth_list, anon_list, all_list)
 
 def get_session_info(env, sid):
-    """:since 0.13: changed `db` input parameter to `env`"""
+    """:since 1.0: changed `db` input parameter to `env`"""
     for row in env.db_query("""
             SELECT DISTINCT s.sid, n.value, e.value FROM session AS s
             LEFT JOIN session_attribute AS n ON (n.sid=s.sid AND n.name='name')
@@ -456,6 +456,35 @@ class SessionTestCase(unittest.TestCase)
             WHERE sid='john' AND name='foo'
             """)[0][0])
 
+    def test_session_set(self):
+        """Verify that setting a variable in a session to the default value
+        removes it from the session.
+        """
+        with self.env.db_transaction as db:
+            db("INSERT INTO session VALUES ('john', 1, 0)")
+            db("INSERT INTO session_attribute VALUES ('john', 1, 'foo', 'bar')")
+
+        session = DetachedSession(self.env, 'john')
+        self.assertEqual('bar', session['foo'])
+            
+        # Setting the variable to the default value removes the variable
+        with self.env.db_transaction as db:
+            session.set('foo', 'default', 'default')
+            session.save()
+        self.assertEqual(0, self.env.db_query("""
+            SELECT COUNT(*) FROM session_attribute
+            WHERE sid='john' AND name='foo'
+            """)[0][0])
+        
+        # Setting the variable to a value different from the default sets it
+        with self.env.db_transaction as db:
+            session.set('foo', 'something', 'default')
+            session.save()
+        self.assertEqual('something', self.env.db_query("""
+            SELECT value FROM session_attribute
+            WHERE sid='john' AND name='foo'
+            """)[0][0])
+        
     def test_session_admin_list(self):
         auth_list, anon_list, all_list = _prep_session_table(self.env)
         sess_admin = SessionAdmin(self.env)

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/admin.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/admin.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/admin.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/admin.py Tue Oct 16 15:55:00 2012
@@ -93,8 +93,8 @@ class WikiAdmin(Component):
     
     def export_page(self, page, filename, cursor=None):
         """
-        :since 0.13: the `cursor` parameter is no longer needed and will be
-        removed in version 0.14
+        :since 1.0: the `cursor` parameter is no longer needed and will be
+        removed in version 1.1.1
         """
         for text, in self.env.db_query("""
                 SELECT text FROM wiki WHERE name=%s

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/api.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/api.py?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/api.py (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/api.py Tue Oct 16 15:55:00 2012
@@ -99,7 +99,7 @@ class IWikiMacroProvider(Interface):
         description of the macro or only the description with the specified
         name.
 
-        .. versionchanged :: 0.13
+        .. versionchanged :: 1.0
            `get_macro_description` can return a domain to translate the
            description.
         """
@@ -110,7 +110,7 @@ class IWikiMacroProvider(Interface):
     def is_inline(content):
         """Return `True` if the content generated is an inline XHTML element.
 
-        .. versionadded :: 0.13
+        .. versionadded :: 1.0
         """
 
     def expand_macro(formatter, name, content, args=None):
@@ -342,7 +342,7 @@ class WikiSystem(Component):
     def get_wiki_syntax(self):
         wiki_page_name = (
             r"(?:[%(upper)s](?:[%(lower)s])+/?){2,}" # wiki words
-            r"(?:@\d+)?"                             # optional version
+            r"(?:@[0-9]+)?"                          # optional version
             r"(?:#%(xml)s)?"                         # optional fragment id
             r"(?=:(?:\Z|\s)|[^:\w%(upper)s%(lower)s]|\s|\Z)"
             # what should follow it

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterMapTxt
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterMapTxt?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterMapTxt (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterMapTxt Tue Oct 16 15:55:00 2012
@@ -61,6 +61,10 @@ Creole2Wiki  http://wiki.wikicreole.org/
 
 MediaWiki    http://www.mediawiki.org/wiki/
 
+SO  http://stackoverflow.com/questions/ # Question $1 in StackOverflow
+
+kwquery      /query?group=status&keywords=~  # Custom query for tickets matching keyword $1
+
 #
 # A arbitrary pick of InterWiki prefixes...
 #
@@ -75,6 +79,8 @@ Dictionary       http://www.dict.org/bin
 Google           http://www.google.com/search?q=
 lmgtfy           http://lmgtfy.com/?q= # Well, just search for "$1", follow the link to see how to do it...
 GoogleGroups     http://groups.google.com/group/$1/msg/$2        # Message $2 in $1 Google Group
+gdiscussion      https://groups.google.com/d/topic/$1/$2/discussion # Discussion $2 in $1 Google 
+gmessage         https://groups.google.com/d/msg/$1/$2 # Message $2 in $1 Google Group
 JargonFile       http://downlode.org/perl/jargon-redirect.cgi?term=
 MeatBall         http://www.usemod.com/cgi-bin/mb.pl?
 MetaWiki         http://sunir.org/apps/meta.pl?

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterTrac
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterTrac?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterTrac (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterTrac Tue Oct 16 15:55:00 2012
@@ -29,7 +29,7 @@ environment, or an alias for it. 
 The aliases are defined in `trac.ini` (see below).
 The prefix is case insensitive.
 
-If the InterTrac link is enclosed in square brackets (like `[th:WikiGoodiesPlugin]`), the InterTrac prefix is removed in the displayed link, like a normal link resolver would be (i.e. the above would be displayed as `WikiGoodiesPlugin`).
+If the InterTrac link is enclosed in square brackets (like `[th:WikiExtrasPlugin]`), the InterTrac prefix is removed in the displayed link, like a normal link resolver would be (i.e. the above would be displayed as `WikiExtrasPlugin`).
 
 For convenience, there's also some alternative short-hand form, 
 where one can use an alias as an immediate prefix 

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterWiki
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterWiki?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterWiki (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/InterWiki Tue Oct 16 15:55:00 2012
@@ -23,8 +23,7 @@ followed by a colon (e.g. `MeatBall:`),
 followed by a page specification in the target.
 Note that, as for InterTrac prefixes, '''InterWiki prefixes are case insensitive'''.
 
-The target Wiki URL is looked up in the InterMapTxt wiki page, 
-modelled after MeatBall:InterMapTxt.
+The target Wiki URL is looked up in the `[interwiki]` section of TracIni or in the InterMapTxt wiki page, modeled after MeatBall:InterMapTxt. If a prefix is defined in both the `[interwiki]` section and InterMapTxt, the `[interwiki]` section takes precedence.
 
 In addition to traditional InterWiki links, where the target
 is simply ''appended'' to the URL, 
@@ -34,6 +33,17 @@ will be replaced by corresponding argume
 The argument list is formed by splitting the page identifier
 using the ":" separator.
 
+=== [interwiki] ===
+Every option in the `[interwiki]` section in TracIni defines one InterWiki prefix. The option name defines the prefix. The option value defines the URL, optionally followed by a description separated from the URL by whitespace. Parametric URLs are supported as well.
+
+'''Example:'''
+{{{
+[interwiki]
+MeatBall = http://www.usemod.com/cgi-bin/mb.pl?
+PEP = http://www.python.org/peps/pep-$1.html Python Enhancement Proposal $1
+tsvn = tsvn: Interact with TortoiseSvn
+}}}
+
 == Examples ==
 
 If the following is an excerpt of the InterMapTxt page:
@@ -68,4 +78,4 @@ Then, 
    and the ''title'' for that link would be "Message 4346 in Trac Mailing List"
 
 ----
-See also: InterTrac, InterMapTxt
\ No newline at end of file
+See also: InterTrac, InterMapTxt

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracAccessibility
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracAccessibility?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracAccessibility (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracAccessibility Tue Oct 16 15:55:00 2012
@@ -4,10 +4,10 @@ Not every user has a graphic environment
 
 The keyboard shortcuts must be enabled for a session through the [/prefs/keybindings Keyboard Shortcuts] preferences panel.
 
-Trac supports accessibility keys for the most common operations. On Windows and Linux platforms, press any of the keys listed below in combination with the `<Alt>` key; on a Mac, use the `<ctrl>` key instead.
-
-''Note that when using Internet Explorer on Windows, you need to hit `<Enter>` after having used the access key.''[[BR]]
-''Note that when using Firefox 2.0 on Windows, you need to hit `<Shift> + <Alt> + <Key>`.''
+Trac supports accessibility keys for the most common operations.
+ - on Linux platforms, press any of the keys listed below in combination with the `<Alt>` key 
+ - on a Mac, use the `<ctrl>` key instead
+ - on Windows, you need to hit `<Shift> + <Alt> + <Key>`. This works for most browsers (Firefox, Chrome, Safari and Internet Explorer)
 
 == Global Access Keys ==
 

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup Tue Oct 16 15:55:00 2012
@@ -26,7 +26,5 @@ Backups are simply a copied snapshot of 
 
 To restore an environment from a backup, stop the process running Trac (i.e. the Web server or [wiki:TracStandalone tracd]), restore the contents of your backup (path/to/backupdir) to your [wiki:TracEnvironment project environment] directory and restart the service.
 
-  ''Note: Automatic backup of environments that don't use SQLite as database backend is not supported at this time. As a workaround, we recommend that you stop the server, copy the environment directory, and make a backup of the database using whatever mechanism is provided by the database system.''
-
 ----
-See also: TracAdmin, TracEnvironment, TracGuide, [trac:TracMigrate TracMigrate]
\ No newline at end of file
+See also: TracAdmin, TracEnvironment, TracGuide, [trac:TracMigrate TracMigrate]

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify Tue Oct 16 15:55:00 2012
@@ -7,4 +7,4 @@ To perform a batch modification select t
 
 == List fields
 
-The `Keywords` and `Cc` fields are treated as lists, where list items can be added and / or removed in addition of replacing the entire list value. All list field controls accept multiple items (i.e. multiple keywords or cc addresses).
\ No newline at end of file
+The `Keywords` and `Cc` fields are treated as lists, where list items can be added and/or removed in addition of replacing the entire list value. All list field controls accept multiple items (i.e. multiple keywords or cc addresses).

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser Tue Oct 16 15:55:00 2012
@@ -88,7 +88,7 @@ but I think the other items could be cha
 
 ----
 {{{#!div style="font-size:85%"
-[=#note-multirepos (1)] -  This means that after upgrading a single-repository Trac of version 
+[=#note-multirepos (1)] This means that after upgrading a single-repository Trac of version 
 0.11 (or below) to a multi-repository Trac (0.12), the repository browser will look and feel 
 the same, that single repository becoming automatically the "default" repository.
 }}}

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracChangeset
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracChangeset?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracChangeset (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracChangeset Tue Oct 16 15:55:00 2012
@@ -29,11 +29,11 @@ won't be shown.
 In front of each listed file, you'll find  a colored rectangle. The color
 indicates how the file is affected by the changeset.
  
- * [[span(style=background:#bfb;border:1px solid #999,` `)]] Green: Added
- * [[span(style=background:#f88;border:1px solid #999,` `)]] Red: Removed
- * [[span(style=background:#fd8;border:1px solid #999,` `)]] Yellow: Modified
- * [[span(style=background:#88f;border:1px solid #999,` `)]] Blue: Copied
- * [[span(style=background:#ccc;border:1px solid #999,` `)]] Gray: Moved
+ [[span(style=background:#bfb;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Green: Added \\
+ [[span(style=background:#f88;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Red: Removed \\
+ [[span(style=background:#fd8;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Yellow: Modified \\
+ [[span(style=background:#88f;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Blue: Copied \\
+ [[span(style=background:#ccc;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Gray: Moved \\
 The color legend is located below the header as a reminder.
 
 == Diff Views ==

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracEnvironment
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracEnvironment?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracEnvironment (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracEnvironment Tue Oct 16 15:55:00 2012
@@ -146,7 +146,7 @@ An environment directory will usually co
  * `templates` - Custom Genshi environment-specific templates. ''(since 0.11)''
    * `site.html` - method to customize header, footer, and style, described in TracInterfaceCustomization#SiteAppearance
 
-'''Caveat:''' ''don't confuse a Trac environment directory with the source code repository directory.'' 
+=== Caveat: don't confuse a ''Trac environment directory'' with the ''source code repository directory'' #Caveat
 
 This is a common beginners' mistake.
 It happens that the structure for a Trac environment is loosely modelled after the Subversion repository directory 

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracFineGrainedPermissions
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracFineGrainedPermissions?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracFineGrainedPermissions (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracFineGrainedPermissions Tue Oct 16 15:55:00 2012
@@ -1,3 +1,4 @@
+[[PageOutline(2-5, Contents, floated)]]
 = Fine grained permissions =
 
 Before Trac 0.11, it was only possible to define fine-grained permissions checks on the repository browser sub-system.
@@ -30,7 +31,7 @@ See also [trac:source:branches/0.12-stab
 === !AuthzPolicy === 
 ==== Configuration ====
 * Install [http://www.voidspace.org.uk/python/configobj.html ConfigObj] (still needed for 0.12).
-* Copy authz_policy.py into your plugins directory.
+* Copy authz_policy.py into your plugins directory (only for Trac 0.11).
 * Put a [http://swapoff.org/files/authzpolicy.conf authzpolicy.conf] file somewhere, preferably on a secured location on the server, not readable for others than the webuser. If the  file contains non-ASCII characters, the UTF-8 encoding should be used.
 * Update your `trac.ini`:
   1. modify the [TracIni#trac-section permission_policies] entry in the `[trac]` section
@@ -39,12 +40,12 @@ See also [trac:source:branches/0.12-stab
 ...
 permission_policies = AuthzPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy
 }}}
-  2. add a new `[authz_policy]` section
+  1. add a new `[authz_policy]` section
 {{{
 [authz_policy]
 authz_file = /some/trac/env/conf/authzpolicy.conf
 }}}
-  3. enable the single file plugin
+  1. enable the plugin through [/admin/general/plugin WebAdmin] or by editing the `[components]` section
 {{{
 [components]
 ...
@@ -53,6 +54,8 @@ tracopt.perm.authz_policy.* = enabled
 # for Trac 0.11 use this
 #authz_policy.* = enabled 
 }}}
+
+
 ==== Usage Notes ====
 Note that the order in which permission policies are specified is quite critical, 
 as policies will be examined in the sequence provided.
@@ -106,8 +109,7 @@ jack = WIKI_VIEW
   * If a value (permission) is prefixed with a `!`, the permission is
     denied rather than granted.
 
-  The username will match any of 'anonymous',
-  'authenticated', <username> or '*', using normal Trac permission rules.
+  The username will match any of 'anonymous', 'authenticated', <username> or '*', using normal Trac permission rules. || '''Note:''' Other groups which are created by user (e.g. by 'adding subjects to groups' on web interface page //Admin / Permissions//) cannot be used. See [trac:ticket:5648 #5648] for details about this missing feature ||
 
 For example, if the `authz_file` contains:
 {{{
@@ -189,6 +191,29 @@ john = BROWSER_VIEW, FILE_VIEW
 Note: In order for Timeline to work/visible for John, we must add CHANGESET_VIEW to the above permission list.
 
 
+==== Missing Features ====
+Although possible with the !DefaultPermissionPolicy handling (see Admin panel), fine-grained permissions still miss those grouping features (see [trac:ticket:9573 #9573], [trac:ticket:5648 #5648]). Patches are partially available, see forgotten authz_policy.2.patch  part of [trac:ticket:6680 #6680]).
+
+You cannot do the following:
+{{{
+[groups]
+team1 = a, b, c
+team2 = d, e, f
+team3 = g, h, i
+departmentA = team1, team2
+}}}
+
+Permission groups are not supported either. You cannot do the following:
+{{{
+[groups]
+permission_level_1 = WIKI_VIEW, TICKET_VIEW
+permission_level_2  = permission_level_1, WIKI_MODIFY, TICKET_MODIFY
+[*]
+@team1 = permission_level_1
+@team2 = permission_level_2
+@team3 = permission_level_2, TICKET_CREATE
+}}}
+
 === !AuthzSourcePolicy  (mod_authz_svn-like permission policy) === #AuthzSourcePolicy
 
 At the time of this writing, the old fine grained permissions system from Trac 0.11 and before used for restricting access to the repository has  been converted to a permission policy component, but from the user point of view, this makes little if no difference.

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracGuide
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracGuide?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracGuide (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracGuide Tue Oct 16 15:55:00 2012
@@ -1,42 +1,63 @@
 = The Trac User and Administration Guide =
 [[TracGuideToc]]
+{{{#!span style="font-size:90%"
+//The TracGuide is meant to serve as a starting point for all documentation regarding Trac usage and development. The guide is a free document, a collaborative effort, and a part of the [http://trac.edgewall.org Trac Project] itself.//
+}}}
 
-The TracGuide is meant to serve as a starting point for all documentation regarding Trac usage and development. The guide is a free document, a collaborative effort, and a part of the [http://trac.edgewall.org Trac Project] itself.
+== Introduction
 
-== Table of Contents ==
+Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. It strives to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.
 
-Currently available documentation:
- * '''User Guide'''
-   * TracWiki — How to use the built-in Wiki.
-   * TracTimeline — The timeline provides a historic perspective on a project.
-   * TracRss — RSS content syndication in Trac.
-   * ''The Version Control Subsystem''
+It provides an interface to Subversion (and other version control systems), an integrated Wiki and convenient reporting facilities.
+
+Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all current and past project events in order, making the acquisition of an overview of the project and tracking progress very easy. The roadmap shows the road ahead, listing the upcoming milestones.
+== User Guide
+   * Using the Wiki subsystem
+     * TracWiki — How to use the built-in Wiki.
+     * WikiFormatting — Reference to the wiki syntax used throughout.
+   * Using the Version Control subsystem
      * TracBrowser — Browsing source code with Trac.
      * TracChangeset — Viewing changes to source code.
      * TracRevisionLog — Viewing change history.
-   * ''The Ticket Subsystem''
+   * Using the Ticket subsystem
      * TracTickets — Using the issue tracker.
+     * TracRoadmap — The roadmap helps tracking project progress.
      * TracReports — Writing and using reports.
      * TracQuery — Executing custom ticket queries.
-     * TracRoadmap — The roadmap helps tracking project progress.
      * TracBatchModify - Modifying a batch of tickets in one request.
- * '''Administrator Guide'''
-   * TracInstall — How to install and run Trac.
-   * TracUpgrade — How to upgrade existing installations.
-   * TracAdmin — Administering a Trac project.
-   * TracImport — Importing tickets from other bug databases.
-   * TracIni — Trac configuration file reference. 
-   * TracPermissions — Access control and permissions.
-   * TracInterfaceCustomization — Customizing the Trac interface.
-   * TracPlugins — Installing and managing Trac extensions.
-   * TracLogging — The Trac logging facility.
-   * TracNotification — Email notification.
-   * TracWorkflow — Configurable Ticket Workflow.
-   * TracRepositoryAdmin — Management of Source Code Repositories.
- * [trac:TracFaq Trac FAQ] — A collection of Frequently Asked Questions (on the project website).
- * [trac:TracDev Trac Developer Documentation] — Developer documentation
+   * Other modules and general topics
+     * TracSearch — Full text search in all content.
+     * TracTimeline — The timeline provides a historic perspective on a project.
+     * TracRss — RSS content syndication in Trac.
+     * TracAccessibility — Accessibility keys support
+
+
+== Administrator Guide
+   * Installation and upgrade
+     * TracInstall — How to install and run Trac.
+     * TracUpgrade — How to upgrade existing installations.
+     * TracImport — Importing tickets from other bug databases.
+     * TracPlugins — Installing and managing Trac extensions.
+   * Configuration and customization
+     * TracIni — Trac configuration file reference. 
+     * TracPermissions — Access control and permissions.
+     * TracNavigation — Customize main navigation menus.
+     * TracInterfaceCustomization — Customizing the Trac interface.
+     * TracLogging — The Trac logging facility.
+   * Administering the Version Control subsystem
+     * TracRepositoryAdmin — Management of Source Code Repositories.
+   * Administering the Ticket subsystem
+     * TracTicketsCustomFields — Expanding tickets with customized fields.
+     * TracNotification — Email notification.
+     * TracWorkflow — Configurable Ticket Workflow.
+   * Reference
+     * TracEnvironment — All you need to know about Trac environments
+     * TracAdmin — Administering a Trac project via the command-line.
 
 == Support and Other Sources of Information ==
-If you are looking for a good place to ask a question about Trac, look no further than the [http://trac.edgewall.org/wiki/MailingList MailingList]. It provides a friendly environment to discuss openly among Trac users and developers.
 
-See also the TracSupport page for more information resources.
+ * [trac:TracFaq Trac FAQ] — A collection of Frequently Asked Questions (on the project website).
+ * [trac:TracDev] and [trac:TracDev/ApiDocs API docs] — Trac Developer documentation
+ * TracSupport — How to get more information
+
+If you are looking for a good place to ask a question about Trac, look no further than the [http://trac.edgewall.org/wiki/MailingList MailingList]. It provides a friendly environment to discuss openly among Trac users and developers.

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracImport
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracImport?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracImport (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracImport Tue Oct 16 15:55:00 2012
@@ -7,16 +7,16 @@ Below, follows a collection of some of t
 
 == !TicketImportPlugin ==
 
- th:TicketImportPlugin:: mainly, but not only, this plug-in lets you import or up-date into Trac a series of tickets from a '''CSV file''' or (if the [http://pypi.python.org/pypi/xlrd xlrd library] is installed) from an '''Excel file'''. 
+ [http://trac-hacks.org/wiki/TicketImportPlugin TicketImportPlugin] :: mainly, but not only, this plug-in lets you import or up-date into Trac a series of tickets from a '''CSV file''' or (if the [http://pypi.python.org/pypi/xlrd xlrd library] is installed) from an '''Excel file'''. 
 
 == !ExportImportXlsPlugin ==
 
- th:ExportImportXlsPlugin:: this plug-in add an admin panel for export and import tickets via '''XLS file'''.
+ [http://trac-hacks.org/wiki/ExportImportXlsPlugin ExportImportXlsPlugin] :: this plug-in add an admin panel for export and import tickets via '''XLS file'''.
   * It depends on the python packages xlwt/rxld.
 
 == Bugzilla ==
 
- th:BugzillaIssueTrackingPlugin:: integrates Bugzilla into Trac keeping TracLinks
+ [http://trac-hacks.org/wiki/BugzillaIssueTrackingPlugin BugzillaIssueTrackingPlugin] :: integrates Bugzilla into Trac keeping TracLinks
 
 Ticket data can be imported from Bugzilla using the [http://trac.edgewall.org/browser/trunk/contrib/bugzilla2trac.py bugzilla2trac.py] script, available in the contrib/ directory of the Trac distribution.
 
@@ -57,14 +57,14 @@ For more details on the available option
 
 == Jira ==
 
- th:JiraToTracIntegration:: provides tools to import Atlassian Jira backup files into Trac. The plug-in consists of a Python 3.1 commandline tool that:
+ [http://trac-hacks.org/wiki/JiraToTracIntegration JiraToTracIntegration] :: provides tools to import Atlassian Jira backup files into Trac. The plug-in consists of a Python 3.1 commandline tool that:
    - Parses the Jira backup XML file
    - Sends the imported Jira data and attachments to Trac using the [http://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin]
    - Generates a htpasswd file containing the imported Jira users and their SHA-512 base64 encoded passwords
 
 == Mantis ==
 
- th:MantisImportScript:: script to import from Mantis into Trac the following data:
+ [http://trac-hacks.org/wiki/MantisImportScript MantisImportScript] :: script to import from Mantis into Trac the following data:
   * bugs
   * bug comments
   * bug activity (field changes)
@@ -72,16 +72,16 @@ For more details on the available option
 
 == !PlanetForge ==
 
- th:PlanetForgeImportExportPlugin:: this plugin exports Trac data (wiki, tickets, compoments, permissions, repositories, etc.) using the open format designed by the COCLICO project. It extends the webadmin panel and the 'trac admin ...' command. Still has no 'import' feature. 
+ [http://trac-hacks.org/wiki/PlanetForgeImportExportPlugin PlanetForgeImportExportPlugin] :: this plugin exports Trac data (wiki, tickets, compoments, permissions, repositories, etc.) using the open format designed by the COCLICO project. It extends the webadmin panel and the 'trac admin ...' command. Still has no 'import' feature. 
 
 == Scarab ==
 
- th:ScarabToTracScript:: script that migrates Scarab issues to Trac tickets
+ [http://trac-hacks.org/wiki/ScarabToTracScript ScarabToTracScript] :: script that migrates Scarab issues to Trac tickets
     * Requires [http://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin]
 
 == Sourceforge ==
 
- th:SfnToTracScript:: importer of !SourceForge's new backup file (originated from #Trac3521)
+ [http://trac-hacks.org/wiki/SfnToTracScript SfnToTracScript] :: importer of !SourceForge's new backup file (originated from #Trac3521)
 
 Also, ticket data can be imported from Sourceforge using the [http://trac.edgewall.org/browser/trunk/contrib/sourceforge2trac.py sourceforge2trac.py] script, available in the contrib/ directory of the Trac distribution.
 
@@ -90,7 +90,7 @@ Also, ticket data can be imported from S
 Since trac uses a SQL database to store the data, you can import from other systems by examining the database tables. Just go into [http://www.sqlite.org/sqlite.html sqlite] command line to look at the tables and import into them from your application.
 
 === Comma delimited file - CSV ===
-See [http://trac.edgewall.org/attachment/wiki/TracSynchronize/csv2trac.2.py] for details.  This approach is particularly useful if one needs to enter a large number of tickets by hand. (note that the ticket type type field, (task etc...) is also needed for this script to work with more recent Trac releases)
+See [http://trac.edgewall.org/attachment/wiki/TracSynchronize/csv2trac.2.py csv2trac.2.py] for details.  This approach is particularly useful if one needs to enter a large number of tickets by hand. (note that the ticket type type field, (task etc...) is also needed for this script to work with more recent Trac releases)
 Comments on script: The script has an error on line 168, ('Ticket' needs to be 'ticket').  Also, the listed values for severity and priority are swapped. 
 
 ----

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracIni
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracIni?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracIni (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracIni Tue Oct 16 15:55:00 2012
@@ -1,5 +1,7 @@
 = The Trac Configuration File =
 
+ ''[Note To Editors] Please discuss documentation changes in the [#Discussion] section. Even better, send us [TracDev/SubmittingPatches documentation patches] against the ''code'' (i.e. where the configuration entries are documented), either on Trac-dev or on new tickets. ''
+
 [[TracGuideToc]]
 [[PageOutline]]
 
@@ -30,117 +32,5 @@ This is a brief reference of available c
 
 [[TracIni]]
 
-== Reference for special sections
-[[PageOutline(3,,inline)]]
-
-=== [components] === #components-section
-This section is used to enable or disable components provided by plugins, as well as by Trac itself. The component to enable/disable is specified via the name of the option. Whether its enabled is determined by the option value; setting the value to `enabled` or `on` will enable the component, any other value (typically `disabled` or `off`) will disable the component.
-
-The option name is either the fully qualified name of the components or the module/package prefix of the component. The former enables/disables a specific component, while the latter enables/disables any component in the specified package/module.
-
-Consider the following configuration snippet:
-{{{
-[components]
-trac.ticket.report.ReportModule = disabled
-webadmin.* = enabled
-}}}
-
-The first option tells Trac to disable the [wiki:TracReports report module]. The second option instructs Trac to enable all components in the `webadmin` package. Note that the trailing wildcard is required for module/package matching.
-
-See the ''Plugins'' page on ''About Trac'' to get the list of active components (requires `CONFIG_VIEW` [wiki:TracPermissions permissions].)
-
-See also: TracPlugins
-
-=== [extra-permissions] === #extra-permissions-section
-''(since 0.12)''
-
-Custom additional permissions can be defined in this section when [wiki:ExtraPermissionsProvider] is enabled.
-
-=== [milestone-groups] === #milestone-groups-section
-''(since 0.11)''
-
-As the workflow for tickets is now configurable, there can be many ticket states,
-and simply displaying closed tickets vs. all the others is maybe not appropriate 
-in all cases. This section enables one to easily create ''groups'' of states 
-that will be shown in different colors in the milestone progress bar.
-
-Example configuration (the default only has closed and active):
-{{{
-closed = closed
-# sequence number in the progress bar
-closed.order = 0
-# optional extra param for the query (two additional columns: created and modified and sort on created)
-closed.query_args = group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime
-# indicates groups that count for overall completion percentage
-closed.overall_completion = true
-
-new = new
-new.order = 1
-new.css_class = new
-new.label = new
-
-# one catch-all group is allowed
-active = *
-active.order = 2
-# CSS class for this interval
-active.css_class = open
-# Displayed label for this group
-active.label = in progress
-}}}
-
-The definition consists in a comma-separated list of accepted status.
-Also, '*' means any status and could be used to associate all remaining
-states to one catch-all group.
-
-The CSS class can be one of: new (yellow), open (no color) or
-closed (green). New styles can easily be added using the following
-selector:  `table.progress td.<class>`
-
-=== [repositories] === #repositories-section
-
-(''since 0.12'' multirepos)
-
-One of the alternatives for registering new repositories is to populate the `[repositories]` section of the trac.ini.
-
-This is especially suited for setting up convenience aliases, short-lived repositories, or during the initial phases of an installation.
-
-See [TracRepositoryAdmin#Intrac.ini TracRepositoryAdmin] for details about the format adopted for this section and the rest of that page for the other alternatives.
-
-=== [svn:externals] === #svn:externals-section
-''(since 0.11)''
-
-The TracBrowser for Subversion can interpret the `svn:externals` property of folders.
-By default, it only turns the URLs into links as Trac can't browse remote repositories.
-
-However, if you have another Trac instance (or an other repository browser like [http://www.viewvc.org/ ViewVC]) configured to browse the target repository, then you can instruct Trac which other repository browser to use for which external URL.
-
-This mapping is done in the `[svn:externals]` section of the TracIni
-
-Example:
-{{{
-[svn:externals]
-1 = svn://server/repos1                       http://trac/proj1/browser/$path?rev=$rev
-2 = svn://server/repos2                       http://trac/proj2/browser/$path?rev=$rev
-3 = http://theirserver.org/svn/eng-soft       http://ourserver/viewvc/svn/$path/?pathrev=25914
-4 = svn://anotherserver.com/tools_repository  http://ourserver/tracs/tools/browser/$path?rev=$rev
-}}}
-With the above, the `svn://anotherserver.com/tools_repository/tags/1.1/tools` external will be mapped to `http://ourserver/tracs/tools/browser/tags/1.1/tools?rev=` (and `rev` will be set to the appropriate revision number if the external additionally specifies a revision, see the [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book on externals] for more details).
-
-Note that the number used as a key in the above section is purely used as a place holder, as the URLs themselves can't be used as a key due to various limitations in the configuration file parser.
-
-Finally, the relative URLs introduced in [http://subversion.tigris.org/svn_1.5_releasenotes.html#externals Subversion 1.5] are not yet supported.
-
-=== [ticket-custom] === #ticket-custom-section
-
-In this section, you can define additional fields for tickets. See TracTicketsCustomFields for more details.
-
-=== [ticket-workflow] === #ticket-workflow-section
-''(since 0.11)''
-
-The workflow for tickets is controlled by plugins. 
-By default, there's only a `ConfigurableTicketWorkflow` component in charge. 
-That component allows the workflow to be configured via this section in the trac.ini file.
-See TracWorkflow for more details.
-
 ----
 See also: TracGuide, TracAdmin, TracEnvironment

Modified: incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracInstall
URL: http://svn.apache.org/viewvc/incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracInstall?rev=1398858&r1=1398857&r2=1398858&view=diff
==============================================================================
--- incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracInstall (original)
+++ incubator/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracInstall Tue Oct 16 15:55:00 2012
@@ -1,13 +1,13 @@
-= Trac Installation Guide for 0.12 = 
+= Trac Installation Guide for 1.0 = 
 [[TracGuideToc]]
 
 Trac is written in the Python programming language and needs a database, [http://sqlite.org/ SQLite], [http://www.postgresql.org/ PostgreSQL], or [http://mysql.com/ MySQL]. For HTML rendering, Trac uses the [http://genshi.edgewall.org Genshi] templating system.
 
-Since version 0.12, Trac can also be localized, and there's probably a translation available for your language. If you want to be able to use the Trac interface in other languages, then make sure you **first** have installed the optional package [#OtherPythonPackages Babel]. Lacking Babel, you will only get the default English version, as usual. If you install Babel later on, you will need to re-install Trac.
+Since version 0.12, Trac can also be localized, and there's probably a translation available for your language. If you want to be able to use the Trac interface in other languages, then make sure you have installed the optional package [#OtherPythonPackages Babel]. Pay attention to the extra steps for localization support in the [#InstallingTrac Installing Trac] section below. Lacking Babel, you will only get the default english version, as usual.
 
-If you're interested in contributing new translations for other languages or enhance the existing translations, then please have a look at [trac:wiki:TracL10N TracL10N].
+If you're interested in contributing new translations for other languages or enhance the existing translations, then please have a look at [[trac:TracL10N]].
 
-What follows are generic instructions for installing and setting up Trac and its requirements. While you may find instructions for installing Trac on specific systems at [trac:wiki:TracInstallPlatforms TracInstallPlatforms] on the main Trac site, please be sure to '''first read through these general instructions''' to get a good understanding of the tasks involved.
+What follows are generic instructions for installing and setting up Trac and its requirements. While you may find instructions for installing Trac on specific systems at [trac:TracInstallPlatforms TracInstallPlatforms] on the main Trac site, please be sure to '''first read through these general instructions''' to get a good understanding of the tasks involved.
 
 [[PageOutline(2-3,Installation Steps,inline)]]
 
@@ -15,41 +15,36 @@ What follows are generic instructions fo
 === Mandatory Dependencies
 To install Trac, the following software packages must be installed:
 
- * [http://www.python.org/ Python], version >= 2.4 and < 3.0
-   //(note that we dropped the support for Python 2.3 in this release and that this will be the last Trac release supporting Python 2.4)//
- * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version >= 0.6
- * [http://genshi.edgewall.org/wiki/Download Genshi], version >= 0.6
+ * [http://www.python.org/ Python], version >= 2.5 and < 3.0
+   (note that we dropped the support for Python 2.4 in this release)
+ * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version >= 0.6, or better yet, [http://pypi.python.org/pypi/distribute distribute]
+ * [http://genshi.edgewall.org/wiki/Download Genshi], version >= 0.6 (unreleased version 0.7dev should work as well)
 
 You also need a database system and the corresponding python bindings.
 The database can be either SQLite, PostgreSQL or MySQL.
 
 ==== For the SQLite database #ForSQLite
 
-If you're using Python 2.5 or 2.6, you already have everything you need.
+As you must be using Python 2.5, 2.6 or 2.7, you already have the SQLite database bindings bundled with the standard distribution of Python (the `sqlite3` module).
 
-If you're using Python 2.4 and need pysqlite, you can download from 
-[http://code.google.com/p/pysqlite/downloads/list google code] the Windows installers or the tar.gz archive for building from source: 
+However, if you'd like, you can download the latest and greatest version of [[trac:Pysqlite]] from 
+[http://code.google.com/p/pysqlite/downloads/list google code], where you'll find the Windows
+installers or the `tar.gz` archive for building from source: 
 {{{
 $ tar xvfz <version>.tar.gz 
 $ cd <version> 
 $ python setup.py build_static install 
 }}}
  
-This will extract the SQLite code and build the bindings. 
+This will download the latest SQLite code and build the bindings. 
 
-To install SQLite, your system may require the development headers. Without these you will get various GCC related errors when attempting to build:
+SQLite 2.x is no longer supported.
 
-{{{
-$ apt-get install libsqlite3-dev
-}}}
-
-SQLite 2.x is no longer supported, and neither is !PySqlite 1.1.x.
-
-A known bug !PySqlite versions 2.5.2-4 prohibits upgrade of trac databases
+A known bug PySqlite versions 2.5.2-4 prohibits upgrade of trac databases
 from 0.11.x to 0.12. Please use versions 2.5.5 and newer or 2.5.1 and
-older. See [trac:#9434] for more detail.
+older. See #9434 for more detail.
 
-See additional information in [trac:PySqlite].
+See additional information in [trac:PySqlite PySqlite].
 
 ==== For the PostgreSQL database #ForPostgreSQL
 
@@ -74,42 +69,39 @@ It is '''very''' important to read caref
 ==== Version Control System ====
 
 ===== Subversion =====
+ * [http://subversion.apache.org/ Subversion], 1.5.x or 1.6.x and the '''''corresponding''''' Python bindings. Older versions starting from 1.0, like 1.2.4, 1.3.2 or 1.4.2, etc. should still work. For troubleshooting information, check the [trac:TracSubversion#Troubleshooting TracSubversion] page.
 
-[http://subversion.apache.org/ Subversion] 1.5.x or 1.6.x and the '''''corresponding''''' Python bindings. 
-
-There are [http://subversion.apache.org/packages.html pre-compiled SWIG bindings] available for various platforms. See also the TracSubversion page for details about Windows packages.
-
-Older versions starting from 1.4.0, etc. should still work. For troubleshooting information, check the [trac:TracSubversion#Troubleshooting TracSubversion] page. Versions prior to 1.4.0 won't probably work since trac uses svn core functionality (e.g. svn_path_canonicalize) that is not implemented in the python swig wrapper in svn <= 1.3.x (although it exists in the svn lib itself).
+There are [http://subversion.apache.org/packages.html pre-compiled SWIG bindings] available for various platforms. (Good luck finding precompiled SWIG bindings for any Windows package at that listing. TracSubversion points you to [http://alagazam.net Algazam], which works for me under Python 2.6.)
 
 Note that Trac '''doesn't''' use [http://pysvn.tigris.org/ PySVN], neither does it work yet with the newer `ctype`-style bindings. 
 
-'''Please note:''' if using Subversion, Trac must be installed on the '''same machine'''. Remote repositories are currently [trac:#493 not supported].
+
+'''Please note:''' if using Subversion, Trac must be installed on the '''same machine'''. Remote repositories are currently [trac:ticket:493 not supported].
 
 
 ===== Others =====
 
-Support for other version control systems is provided via third-parties. See [trac:PluginList] and [trac:VersioningSystemBackend].
+Support for other version control systems is provided via third-parties. See [trac:PluginList] and [trac:VersionControlSystem].
 
 ==== Web Server ====
 A web server is optional because Trac is shipped with a server included, see the [#RunningtheStandaloneServer Running the Standalone Server ] section below.
 
 Alternatively you configure Trac to run in any of the following environments.
  * [http://httpd.apache.org/ Apache] with 
-   - [http://code.google.com/p/modwsgi/ mod_wsgi], see [wiki:TracModWSGI] (preferred)
-   - //[http://modpython.org/ mod_python 3.3.1], see TracModPython (deprecated)//
- * any [http://www.fastcgi.com/ FastCGI]-capable web server, see TracFastCgi
- * any [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web
-   server, see [trac:TracOnWindowsIisAjp]
- * IIS with [http://code.google.com/p/isapi-wsgi/ Isapi-wsgi], see [trac:TracOnWindowsIisIsapi]
- * //as a last resort, a CGI-capable web server (see TracCgi), but usage of Trac as a cgi script 
-   is highly discouraged, better use one of the previous options.//
+   - [http://code.google.com/p/modwsgi/ mod_wsgi], see [wiki:TracModWSGI] and 
+     http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac
+   - [http://modpython.org/ mod_python 3.3.1], deprecated: see TracModPython)
+ * a [http://www.fastcgi.com/ FastCGI]-capable web server (see TracFastCgi)
+ * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web
+   server (see [trac:TracOnWindowsIisAjp TracOnWindowsIisAjp])
+ * a CGI-capable web server (see TracCgi), '''but usage of Trac as a cgi script 
+   is highly discouraged''', better use one of the previous options. 
    
 
 ==== Other Python Packages ====
 
- * [http://babel.edgewall.org Babel], version 0.9.5, 
-   needed for localization support[[BR]]
-   ''Note: '' If you want to be able to use the Trac interface in other languages, then make sure you first have installed the optional package Babel. Lacking Babel, you will only get the default english version, as usual. If you install Babel later on, you will need to re-install Trac. 
+ * [http://babel.edgewall.org Babel], version >= 0.9.5, 
+   needed for localization support (unreleased version 1.0dev should work as well)
  * [http://docutils.sourceforge.net/ docutils], version >= 0.3.9 
    for WikiRestructuredText.
  * [http://pygments.pocoo.org Pygments] for 
@@ -133,36 +125,54 @@ With setuptools you can install Trac fro
 
 A few examples:
 
- - first install of the latest stable version Trac 0.12.2, with i18n support:
+ - install Trac 1.0:
    {{{
-   easy_install Babel==0.9.5
-   easy_install Trac
+   easy_install Trac==1.0
    }}}
-   ''It's very important to run the two `easy_install` commands separately, otherwise the message catalogs won't be generated.''
-
- - upgrade to the latest stable version of Trac:
+   (NOT YET ENABLED)
+ - install latest development version 1.0dev:
    {{{
-   easy_install -U Trac
+   easy_install Trac==dev
    }}}
+   Note that in this case you won't have the possibility to run a localized version of Trac;
+   either use a released version or install from source 
+
+=== Using `pip`
+'pip' is an easy_install replacement that is very useful to quickly install python packages.
+To get a trac installation up and running in less than 5 minutes:
+
+Assuming you want to have your entire pip installation in `/opt/user/trac`
+
+ - 
+{{{
+pip -E /opt/user/trac install trac psycopg2 
+}}}
+or
+ - 
+{{{
+pip -E /opt/user/trac install trac mysql-python 
+}}}
+
+Make sure your OS specific headers are available for pip to automatically build PostgreSQL (libpq-dev) or MySQL (libmysqlclient-dev) bindings.
+
+pip will automatically resolve all dependencies (like Genshi, pygments, etc.) and download the latest packages on pypi.python.org and create a self contained installation in `/opt/user/trac`.
+
+All commands (`tracd`, `trac-admin`) are available in `/opt/user/trac/bin`. This can also be leveraged for `mod_python` (using `PythonHandler` directive) and `mod_wsgi` (using `WSGIDaemonProcess` directive)
+
+Additionally, you can install several trac plugins (listed [http://pypi.python.org/pypi?:action=search&term=trac&submit=search here]) through pip.
 
- - upgrade to the latest trunk development version (0.13dev):
-   {{{
-   easy_install -U Trac==dev
-   }}}
 
-For upgrades, reading the TracUpgrade page is mandatory, of course.
 
 === From source
-If you want more control, you can download the source in archive form, or do a checkout from one of the official [[Trac:TracRepositories|source code repositories]].
+Of course, using the python-typical setup at the top of the source directory also works.
 
-Be sure to have the prerequisites already installed. You can also obtain the Genshi and Babel source packages from http://www.edgewall.org and follow for them a similar installation procedure, or you can just `easy_install` those, see [#Usingeasy_install above].
+You can obtain the source for a .tar.gz or .zip file corresponding to a release (e.g. Trac-1.0.tar.gz), or you can get the source directly from the repository (see Trac:SubversionRepository for details).
 
-Once you've unpacked the Trac archive or performed the checkout, move in the top-level folder and do:
 {{{
 $ python ./setup.py install
 }}}
 
-You'll need root permissions or equivalent for this step.
+''You'll need root permissions or equivalent for this step.''
 
 This will byte-compile the python source code and install it as an .egg file or folder in the `site-packages` directory
 of your Python installation. The .egg will also contain all other resources needed by standard Trac, such as htdocs and templates.
@@ -177,8 +187,6 @@ Alternatively, you can do a `bdist_egg` 
 
 === Advanced Options ===
 
-==== Custom location with `easy_install`
-
 To install Trac to a custom location, or find out about other advanced installation options, run:
 {{{
 easy_install --help
@@ -198,31 +206,6 @@ Note: If installing on Mac OS X 10.6 run
 
 The above will place your `tracd` and `trac-admin` commands into `/usr/local/bin` and will install the Trac libraries and dependencies into `/Library/Python/2.5/site-packages`, which is Apple's preferred location for third-party Python application installations.
 
-==== Using `pip`
-'pip' is an easy_install replacement that is very useful to quickly install python packages.
-To get a trac installation up and running in less than 5 minutes:
-
-Assuming you want to have your entire pip installation in /opt/user/trac:
-
- - 
-{{{
-pip -E /opt/user/trac install trac psycopg2 
-}}}
-or
- - 
-{{{
-pip -E /opt/user/trac install trac mysql-python 
-}}}
-
-Make sure your OS specific headers are available for pip to automatically build PostgreSQL (libpq-dev) or MySQL (libmysqlclient-dev) bindings.
-
-pip will automatically resolve all dependencies (like Genshi, pygments, etc.) and download the latest packages on pypi.python.org and create a self contained installation in /opt/user/trac .
-
-All commands (tracd, trac-admin) are available in /opt/user/trac/bin. This can also be leveraged for mod_python (using !PythonHandler directive) and mod_wsgi (using WSGIDaemonProcess directive)
-
-Additionally, you can install several trac plugins (listed [http://pypi.python.org/pypi?:action=search&term=trac&submit=search here]) through pip.
-
-
 
 == Creating a Project Environment ==