亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? svn_fs.py

?? trac是一款svn服務(wù)器的web客戶端
?? PY
?? 第 1 頁 / 共 3 頁
字號:
# -*- coding: utf-8 -*-## Copyright (C) 2005 Edgewall Software# Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de># All rights reserved.## This software is licensed as described in the file COPYING, which# you should have received as part of this distribution. The terms# are also available at http://trac.edgewall.org/wiki/TracLicense.## This software consists of voluntary contributions made by many# individuals. For the exact contribution history, see the revision# history and logs, available at http://trac.edgewall.org/log/.## Author: Christopher Lenz <cmlenz@gmx.de>from datetime import datetimeimport os.pathimport statimport shutilimport sysimport tempfileimport unittestfrom StringIO import StringIOtry:    from svn import core, repos    has_svn = Trueexcept:    has_svn = Falsefrom trac.log import logger_factoryfrom trac.test import TestSetupfrom trac.core import TracErrorfrom trac.util.datefmt import utcfrom trac.versioncontrol import Changeset, Node, NoSuchChangesetfrom trac.versioncontrol.svn_fs import SubversionRepositoryfrom trac.versioncontrol import svn_fsREPOS_PATH = os.path.join(tempfile.gettempdir(), 'trac-svnrepos')HEAD = 21class SubversionRepositoryTestSetup(TestSetup):    def setUp(self):        dumpfile = open(os.path.join(os.path.split(__file__)[0],                                     'svnrepos.dump'))        svn_fs._import_svn()        core.apr_initialize()        pool = core.svn_pool_create(None)        dumpstream = None        try:            r = repos.svn_repos_create(REPOS_PATH, '', '', None, None, pool)            if hasattr(repos, 'svn_repos_load_fs2'):                repos.svn_repos_load_fs2(r, dumpfile, StringIO(),                                        repos.svn_repos_load_uuid_default, '',                                        0, 0, None, pool)            else:                dumpstream = core.svn_stream_from_aprfile(dumpfile, pool)                repos.svn_repos_load_fs(r, dumpstream, None,                                        repos.svn_repos_load_uuid_default, '',                                        None, None, pool)        finally:            if dumpstream:                core.svn_stream_close(dumpstream)            core.svn_pool_destroy(pool)            core.apr_terminate()    def tearDown(self):        if os.name == 'nt':            # The Windows version of 'shutil.rmtree' doesn't override the            # permissions of read-only files, so we have to do it ourselves:            format_file = os.path.join(REPOS_PATH, 'db', 'format')            if os.path.isfile(format_file):                os.chmod(format_file, stat.S_IRWXU)            os.chmod(os.path.join(REPOS_PATH, 'format'), stat.S_IRWXU)        shutil.rmtree(REPOS_PATH)class SubversionRepositoryTestCase(unittest.TestCase):    def setUp(self):        self.repos = SubversionRepository(REPOS_PATH, None,                                          logger_factory('test'))    def tearDown(self):        self.repos = None    def test_repos_normalize_path(self):        self.assertEqual('/', self.repos.normalize_path('/'))        self.assertEqual('/', self.repos.normalize_path(''))        self.assertEqual('/', self.repos.normalize_path(None))        self.assertEqual('trunk', self.repos.normalize_path('trunk'))        self.assertEqual('trunk', self.repos.normalize_path('/trunk'))        self.assertEqual('trunk', self.repos.normalize_path('trunk/'))        self.assertEqual('trunk', self.repos.normalize_path('/trunk/'))    def test_repos_normalize_rev(self):        self.assertEqual(HEAD, self.repos.normalize_rev('latest'))        self.assertEqual(HEAD, self.repos.normalize_rev('head'))        self.assertEqual(HEAD, self.repos.normalize_rev(''))        self.assertRaises(NoSuchChangeset,                          self.repos.normalize_rev, 'something else')        self.assertEqual(HEAD, self.repos.normalize_rev(None))        self.assertEqual(11, self.repos.normalize_rev('11'))        self.assertEqual(11, self.repos.normalize_rev(11))    def test_rev_navigation(self):        self.assertEqual(1, self.repos.oldest_rev)        self.assertEqual(None, self.repos.previous_rev(0))        self.assertEqual(None, self.repos.previous_rev(1))        self.assertEqual(HEAD, self.repos.youngest_rev)        self.assertEqual(6, self.repos.next_rev(5))        self.assertEqual(7, self.repos.next_rev(6))        # ...        self.assertEqual(None, self.repos.next_rev(HEAD))        self.assertRaises(NoSuchChangeset, self.repos.normalize_rev, HEAD + 1)    def test_rev_path_navigation(self):        self.assertEqual(1, self.repos.oldest_rev)        self.assertEqual(None, self.repos.previous_rev(0, 'trunk'))        self.assertEqual(None, self.repos.previous_rev(1, 'trunk'))        self.assertEqual(HEAD, self.repos.youngest_rev)        self.assertEqual(6, self.repos.next_rev(5, 'trunk'))        self.assertEqual(13, self.repos.next_rev(6, 'trunk'))        # ...        self.assertEqual(None, self.repos.next_rev(HEAD, 'trunk'))        # test accentuated characters        self.assertEqual(None, self.repos.previous_rev(17, u'trunk/R\xe9sum\xe9.txt'))        self.assertEqual(17, self.repos.next_rev(16, u'trunk/R\xe9sum\xe9.txt'))    def test_has_node(self):        self.assertEqual(False, self.repos.has_node('/trunk/dir1', 3))        self.assertEqual(True, self.repos.has_node('/trunk/dir1', 4))        self.assertEqual(True, self.repos.has_node('/trunk/dir1'))            def test_get_node(self):        node = self.repos.get_node('/trunk')        self.assertEqual('trunk', node.name)        self.assertEqual('/trunk', node.path)        self.assertEqual(Node.DIRECTORY, node.kind)        self.assertEqual(HEAD, node.rev)        self.assertEqual(datetime(2007,4,30,17,45,26,0,utc),                         node.last_modified)        node = self.repos.get_node('/trunk/README.txt')        self.assertEqual('README.txt', node.name)        self.assertEqual('/trunk/README.txt', node.path)        self.assertEqual(Node.FILE, node.kind)        self.assertEqual(3, node.rev)        self.assertEqual(datetime(2005,4,1,13,24,58,0,utc), node.last_modified)    def test_get_node_specific_rev(self):        node = self.repos.get_node('/trunk', 1)        self.assertEqual('trunk', node.name)        self.assertEqual('/trunk', node.path)        self.assertEqual(Node.DIRECTORY, node.kind)        self.assertEqual(1, node.rev)        self.assertEqual(datetime(2005,4,1,10,0,52,0,utc), node.last_modified)        node = self.repos.get_node('/trunk/README.txt', 2)        self.assertEqual('README.txt', node.name)        self.assertEqual('/trunk/README.txt', node.path)        self.assertEqual(Node.FILE, node.kind)        self.assertEqual(2, node.rev)        self.assertEqual(datetime(2005,4,1,13,12,18,0,utc), node.last_modified)    def test_get_dir_entries(self):        node = self.repos.get_node('/trunk')        entries = node.get_entries()        self.assertEqual('dir1', entries.next().name)        self.assertEqual('mpp_proc', entries.next().name)        self.assertEqual('v2', entries.next().name)        self.assertEqual('README3.txt', entries.next().name)        self.assertEqual(u'R\xe9sum\xe9.txt', entries.next().name)        self.assertEqual('README.txt', entries.next().name)        self.assertRaises(StopIteration, entries.next)    def test_get_file_entries(self):        node = self.repos.get_node('/trunk/README.txt')        entries = node.get_entries()        self.assertRaises(StopIteration, entries.next)    def test_get_dir_content(self):        node = self.repos.get_node('/trunk')        self.assertEqual(None, node.content_length)        self.assertEqual(None, node.content_type)        self.assertEqual(None, node.get_content())    def test_get_file_content(self):        node = self.repos.get_node('/trunk/README.txt')        self.assertEqual(8, node.content_length)        self.assertEqual('text/plain', node.content_type)        self.assertEqual('A test.\n', node.get_content().read())    def test_get_dir_properties(self):        f = self.repos.get_node('/trunk')        props = f.get_properties()        self.assertEqual(1, len(props))    def test_get_file_properties(self):        f = self.repos.get_node('/trunk/README.txt')        props = f.get_properties()        self.assertEqual('native', props['svn:eol-style'])        self.assertEqual('text/plain', props['svn:mime-type'])    def test_created_path_rev(self):        node = self.repos.get_node('/trunk/README3.txt', 15)        self.assertEqual(14, node.rev)        self.assertEqual('/trunk/README3.txt', node.path)        self.assertEqual(14, node.created_rev)        self.assertEqual('trunk/README3.txt', node.created_path)    def test_created_path_rev_parent_copy(self):        node = self.repos.get_node('/tags/v1/README.txt', 15)        self.assertEqual(3, node.rev)        self.assertEqual('/tags/v1/README.txt', node.path)        self.assertEqual(3, node.created_rev)        self.assertEqual('trunk/README.txt', node.created_path)    # Revision Log / node history     def test_get_node_history(self):        node = self.repos.get_node('/trunk/README3.txt')        history = node.get_history()        self.assertEqual(('trunk/README3.txt', 14, 'copy'), history.next())        self.assertEqual(('trunk/README2.txt', 6, 'copy'), history.next())        self.assertEqual(('trunk/README.txt', 3, 'edit'), history.next())        self.assertEqual(('trunk/README.txt', 2, 'add'), history.next())        self.assertRaises(StopIteration, history.next)    def test_get_node_history_follow_copy(self):        node = self.repos.get_node('/tags/v1/README.txt')        history = node.get_history()        self.assertEqual(('tags/v1/README.txt', 7, 'copy'), history.next())        self.assertEqual(('trunk/README.txt', 3, 'edit'), history.next())        self.assertEqual(('trunk/README.txt', 2, 'add'), history.next())        self.assertRaises(StopIteration, history.next)    # Revision Log / path history     def test_get_path_history(self):        history = self.repos.get_path_history('/trunk/README2.txt', None)        self.assertEqual(('trunk/README2.txt', 14, 'delete'), history.next())        self.assertEqual(('trunk/README2.txt', 6, 'copy'), history.next())        self.assertEqual(('trunk/README.txt', 3, 'unknown'), history.next())        self.assertRaises(StopIteration, history.next)    def test_get_path_history_copied_file(self):        history = self.repos.get_path_history('/tags/v1/README.txt', None)        self.assertEqual(('tags/v1/README.txt', 7, 'copy'), history.next())        self.assertEqual(('trunk/README.txt', 3, 'unknown'), history.next())        self.assertRaises(StopIteration, history.next)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区欧美| 麻豆91在线播放| 无码av免费一区二区三区试看 | 精品一区二区三区在线观看国产| 蜜臀国产一区二区三区在线播放| 蜜臀av性久久久久蜜臀aⅴ流畅 | 中文字幕欧美一| 亚洲一区二区偷拍精品| 日本午夜精品视频在线观看 | 中文字幕在线不卡视频| 亚洲国产日韩a在线播放性色| 全部av―极品视觉盛宴亚洲| 韩国在线一区二区| 在线观看不卡视频| 国产女同互慰高潮91漫画| 亚洲欧美日韩系列| 国产精品996| 在线视频观看一区| 国产欧美日韩在线看| 日本午夜一区二区| 欧美丝袜丝交足nylons| 国产精品天美传媒| 韩国av一区二区三区四区 | 亚洲女与黑人做爰| eeuss鲁片一区二区三区在线观看| 欧美精品xxxxbbbb| 又紧又大又爽精品一区二区| 高清国产一区二区| 久久免费电影网| 久久99热国产| 欧美精品一区二区在线观看| 免费在线观看精品| 欧美一区二区福利视频| 麻豆精品蜜桃视频网站| 精品国产乱码久久久久久夜甘婷婷| 日日夜夜免费精品视频| 国产高清无密码一区二区三区| 亚洲国产精品麻豆| 在线播放/欧美激情| 麻豆国产精品一区二区三区 | 免费在线观看成人| 26uuu国产日韩综合| 国产99久久久国产精品潘金| 欧美国产在线观看| 欧美午夜影院一区| 麻豆精品精品国产自在97香蕉| 欧美一区二区三区影视| 国产成人99久久亚洲综合精品| 国产亚洲一区二区三区在线观看| 国产a区久久久| 亚洲精品免费看| 欧美mv和日韩mv国产网站| aaa亚洲精品| 美女视频黄 久久| 国产精品色一区二区三区| 色狠狠综合天天综合综合| 国产在线乱码一区二区三区| 中文字幕一区二区三区四区不卡| 欧美视频一区二区在线观看| 久久99国产精品免费网站| 亚洲一二三区不卡| 亚洲精品写真福利| 久久久久久久久久久久久女国产乱| 在线这里只有精品| 成人免费视频一区二区| 精品一区在线看| 视频一区二区欧美| 一区二区三区四区视频精品免费| 久久久久九九视频| 欧美videossexotv100| 欧美精品 国产精品| 欧美喷水一区二区| 日本道在线观看一区二区| 国产成人免费视频一区| 国内精品久久久久影院一蜜桃| 美腿丝袜在线亚洲一区| 久久99精品视频| 九九热在线视频观看这里只有精品| 日韩精品国产精品| 午夜精品一区二区三区电影天堂| 亚洲图片自拍偷拍| 日韩综合一区二区| 免费成人av在线| 狠狠色丁香久久婷婷综合丁香| 国产一区二区三区蝌蚪| 国产成人h网站| 91在线观看美女| 宅男噜噜噜66一区二区66| 2014亚洲片线观看视频免费| 欧美激情在线一区二区三区| 亚洲男人天堂av网| 午夜精品影院在线观看| 国产一区二区美女| aaa欧美日韩| 日韩免费成人网| 亚洲欧美综合另类在线卡通| 一区二区三区蜜桃网| 狠狠色丁香婷婷综合久久片| 一本色道综合亚洲| 日韩免费高清电影| 一区二区三区四区在线| 国产成人aaaa| 日韩一级免费观看| 1区2区3区国产精品| 国产在线精品一区在线观看麻豆| av一区二区久久| 久久亚洲影视婷婷| 日本女人一区二区三区| 欧美最新大片在线看| 中文字幕巨乱亚洲| 久久99精品国产麻豆婷婷洗澡| 欧美色视频在线| 亚洲免费在线电影| 成人少妇影院yyyy| 久久九九国产精品| 裸体健美xxxx欧美裸体表演| 欧美性色黄大片手机版| 一区二区三区免费| 在线视频欧美精品| 亚洲美女电影在线| 97精品国产露脸对白| 久久精品水蜜桃av综合天堂| 国内精品第一页| 国产精品蜜臀av| 色先锋资源久久综合| 一区二区三区在线免费视频| 一本到三区不卡视频| 一区二区视频在线| 欧美丝袜丝交足nylons图片| 亚洲1区2区3区4区| 日韩一区二区三区视频在线观看| 日本欧美大码aⅴ在线播放| 日韩欧美电影一二三| 激情国产一区二区| 久久天堂av综合合色蜜桃网 | 亚洲永久精品大片| 欧美日韩免费在线视频| 亚洲成av人片在www色猫咪| 日本久久精品电影| 亚洲福利一二三区| 538在线一区二区精品国产| 日韩av一区二区三区四区| 精品少妇一区二区三区视频免付费 | 美女被吸乳得到大胸91| 91精品国产一区二区三区香蕉| 视频一区国产视频| 欧美精品一区视频| 91丨porny丨国产| av网站免费线看精品| 一区二区三区欧美在线观看| 欧洲一区二区三区在线| 日韩国产欧美一区二区三区| 久久美女高清视频| 91麻豆国产精品久久| 日韩专区中文字幕一区二区| 国产免费久久精品| 精品制服美女丁香| 亚洲激情一二三区| 精品久久久三级丝袜| 欧美亚洲综合色| 懂色av中文一区二区三区| 日韩成人午夜精品| 最新国产の精品合集bt伙计| 91麻豆精品国产无毒不卡在线观看 | 国产情人综合久久777777| 91.xcao| av电影在线不卡| 国产iv一区二区三区| 国产一区二区电影| 婷婷丁香久久五月婷婷| 国产精品嫩草99a| 久久女同精品一区二区| 欧美日韩国产首页| 色欧美88888久久久久久影院| 青青草视频一区| 性做久久久久久久免费看| 亚洲综合999| 欧美精品xxxxbbbb| 在线亚洲免费视频| 欧洲av在线精品| 8v天堂国产在线一区二区| 91国偷自产一区二区三区观看| 99re这里只有精品视频首页| 色综合久久综合网| 在线播放中文字幕一区| 欧美喷潮久久久xxxxx| 欧美一级高清片| 国产视频一区二区在线观看| 精品久久人人做人人爰| 日韩欧美国产麻豆| 最新不卡av在线| 性做久久久久久| 国产乱国产乱300精品| 成人小视频在线| 欧美日韩一二区| 精品va天堂亚洲国产| 亚洲情趣在线观看| 另类小说视频一区二区| 91麻豆福利精品推荐| 欧美大片国产精品|