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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reposlog.cpp

?? LINUX 下以 QT/KDE 寫的 SVN 客戶端
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
        revision = bcur.value(0).toLongLong();        cur.bindValue(0,revision);        if (!cur.exec()) {            qDebug(cur.lastError().text().TOUTF8().data());            throw svn::cache::DatabaseException(QString("Could not retrieve values: ")+cur.lastError().text()                    ,cur.lastError().number());            return false;        }        target[revision].revision=revision;        target[revision].author=bcur.value(1).toString();        target[revision].date=bcur.value(2).toLongLong();        target[revision].message=bcur.value(3).toString();        while(cur.next()) {            LogChangePathEntry lcp;            QString ac = cur.value(1).toString();#if QT_VERSION < 0x040000            lcp.action=ac[0].latin1();#else            lcp.action=ac[0].toLatin1();#endif            lcp.copyFromPath=cur.value(2).toString();            lcp.path= cur.value(0).toString();            lcp.copyFromRevision=cur.value(3).toLongLong();            target[revision].changedPaths.push_back(lcp);        }        if (cp && cp->getListener()) {            //cp->getListener()->contextProgress(++icount,bcur.size());            if (cp->getListener()->contextCancel()) {                throw svn::cache::DatabaseException(QString("Could not retrieve values: User cancel."));            }        }    }    return false;}/*!    \fn svn::cache::ReposLog::date2numberRev(const svn::Revision&) */svn::Revision svn::cache::ReposLog::date2numberRev(const svn::Revision&aRev,bool noNetwork){    if (aRev!=svn::Revision::DATE) {        return aRev;    }#if QT_VERSION < 0x040000    if (!m_Database) {#else    if (!m_Database.isValid()) {#endif        return svn::Revision::UNDEFINED;    }    static QString _q("select revision from logentries where date<? order by revision desc");    QSqlQuery query("select revision,date from logentries order by revision desc limit 1",m_Database);#if QT_VERSION < 0x040000    if (query.lastError().type()!=QSqlError::None) {#else    if (query.lastError().type()!=QSqlError::NoError) {#endif        qDebug(query.lastError().text().TOUTF8().data());    }    bool must_remote=!noNetwork;    if (query.next()) {        if (query.value(1).toLongLong()>=aRev.date()) {            must_remote=false;        }    }    if (must_remote) {        svn::InfoEntries e = (m_Client->info(m_ReposRoot,false,aRev,aRev));;        if (e.count()<1||e[0].reposRoot().isEmpty()) {            return aRev;        }        return e[0].revision();    }    query.prepare(_q);    query.bindValue(0,Q_LLONG(aRev.date()));    query.exec();#if QT_VERSION < 0x040000    if (query.lastError().type()!=QSqlError::None) {#else    if (query.lastError().type()!=QSqlError::NoError) {#endif        qDebug(query.lastError().text().TOUTF8().data());    }    if (query.next()) {        return query.value(0).toInt();    }    // not found...    svn::InfoEntries e = (m_Client->info(m_ReposRoot,false,svn::Revision::HEAD,svn::Revision::HEAD));;    if (e.count()<1||e[0].reposRoot().isEmpty()) {        return aRev;    }    return e[0].revision();}/*!    \fn svn::cache::ReposLog::insertLogEntry(const svn::LogEntry&) */bool svn::cache::ReposLog::_insertLogEntry(const svn::LogEntry&aEntry){    QSqlRecord *buffer;#if QT_VERSION < 0x040000    m_Database->transaction();    Q_LLONG j = aEntry.revision;#else    m_Database.transaction();    qlonglong j = aEntry.revision;#endif    static QString qEntry("insert into logentries (revision,date,author,message) values (?,?,?,?)");    static QString qPathes("insert into changeditems (revision,changeditem,action,copyfrom,copyfromrev) values (?,?,?,?,?)");    QSqlQuery _q(QString::null,m_Database);    _q.prepare(qEntry);    _q.bindValue(0,j);    _q.bindValue(1,aEntry.date);    _q.bindValue(2,aEntry.author);    _q.bindValue(3,aEntry.message);    if (!_q.exec()) {#if QT_VERSION < 0x040000        m_Database->rollback();#else        m_Database.rollback();#endif        qDebug("Could not insert values: %s",_q.lastError().text().TOUTF8().data());        qDebug(_q.lastQuery().TOUTF8().data());        throw svn::cache::DatabaseException(QString("Could not insert values: ")+_q.lastError().text(),_q.lastError().number());    }    _q.prepare(qPathes);    svn::LogChangePathEntries::ConstIterator cpit = aEntry.changedPaths.begin();    for (;cpit!=aEntry.changedPaths.end();++cpit){        _q.bindValue(0,j);        _q.bindValue(1,(*cpit).path);        _q.bindValue(2,QString(QChar((*cpit).action)));        _q.bindValue(3,(*cpit).copyFromPath);        _q.bindValue(4,Q_LLONG((*cpit).copyFromRevision));        if (!_q.exec()) {#if QT_VERSION < 0x040000            m_Database->rollback();#else            m_Database.rollback();#endif            qDebug("Could not insert values: %s",_q.lastError().text().TOUTF8().data());            qDebug(_q.lastQuery().TOUTF8().data());            throw svn::cache::DatabaseException(QString("Could not insert values: ")+_q.lastError().text(),_q.lastError().number());        }    }#if QT_VERSION < 0x040000        m_Database->commit();#else        m_Database.commit();#endif    return true;}bool svn::cache::ReposLog::insertLogEntry(const svn::LogEntry&aEntry){    return _insertLogEntry(aEntry);}/*!    \fn svn::cache::ReposLog::log(const svn::Path&,const svn::Revision&start, const svn::Revision&end,const svn::Revision&peg,svn::LogEntriesMap&target, bool strictNodeHistory,int limit)) */bool svn::cache::ReposLog::log(const svn::Path&what,const svn::Revision&_start, const svn::Revision&_end,const svn::Revision&_peg,svn::LogEntriesMap&target, bool strictNodeHistory,int limit){    static QString s_q("select logentries.revision,logentries.author,logentries.date,logentries.message from logentries where logentries.revision in (select changeditems.revision from changeditems where (changeditems.changeditem='%1' or changeditems.changeditem GLOB '%2/*') %3 GROUP BY changeditems.revision) ORDER BY logentries.revision DESC");    svn::Revision peg = date2numberRev(_peg,true);    svn::Revision end = date2numberRev(_end,true);    svn::Revision start = date2numberRev(_start,true);    QString query_string = QString(s_q).arg(what.native()).arg(what.native()).arg((peg==svn::Revision::UNDEFINED?"":QString(" AND revision<=%1").arg(peg.revnum())));    if (peg==svn::Revision::UNDEFINED) {        peg = latestCachedRev();    }    if (!itemExists(peg,what)) {        throw svn::cache::DatabaseException(QString("Entry '%1' does not exists at revision %2").arg(what.native()).arg(peg.toString()));    }    if (limit>0) {        query_string+=QString(" LIMIT %1").arg(limit);    }    qDebug("Query-string: %s",query_string.TOUTF8().data());    QSqlQuery _q(QString::null,m_Database);    _q.prepare(query_string);    if (!_q.exec()) {        qDebug("Could not select values: %s",_q.lastError().text().TOUTF8().data());        qDebug(_q.lastQuery().TOUTF8().data());        throw svn::cache::DatabaseException(QString("Could not select values: ")+_q.lastError().text(),_q.lastError().number());    }    while(_q.next()) {        Q_LLONG revision = _q.value(0).toLongLong();        target[revision].revision=revision;        target[revision].author=_q.value(1).toString();        target[revision].date=_q.value(2).toLongLong();        target[revision].message=_q.value(3).toString();    }    return true;}/*!    \fn svn::cache::ReposLog::itemExists(const svn::Revision&,const QString&) */bool svn::cache::ReposLog::itemExists(const svn::Revision&peg,const svn::Path&path){    /// @todo this moment I have no idea how to check real  with all moves and deletes of parent folders without a hell of sql statements so we make it quite simple: it exists if we found it.#if 0    static QString _s1("select revision from changeditems where changeditem='%1' and action='A' and revision<=%2 order by revision desc limit 1");    QSqlQuery _q(QString::null,m_Database);    QString query_string=QString(_s1).arg(path.native()).arg(peg.revnum());    if (!_q.exec(query_string)) {        qDebug("Could not select values: %s",_q.lastError().text().TOUTF8().data());        qDebug(_q.lastQuery().TOUTF8().data());        throw svn::cache::DatabaseException(QString("Could not select values: ")+_q.lastError().text(),_q.lastError().number());    }    qDebug(_q.lastQuery().TOUTF8().data());    svn::Path _p = path;    static QString _s2("select revision from changeditem where changeditem in (%1) and action='D' and revision>%2 and revision<=%3 order by revision desc limit 1");    QStringList p_list;    while (_p.length()>0) {        p_list.append(QString("'%1'").arg(_p.native()));        _p.removeLast();    }    query_string=QString(_s2).arg(p_list.join(",")).arg();#endif    return true;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线| 亚洲美女免费视频| 亚洲gay无套男同| 欧美三级电影在线看| 91精品国产乱| 欧美96一区二区免费视频| 色噜噜偷拍精品综合在线| 国产精品久久久一本精品| 麻豆精品视频在线观看视频| 色综合色狠狠天天综合色| 国产精品色婷婷| 不卡电影一区二区三区| 国产色一区二区| 国产在线不卡视频| 久久免费偷拍视频| 懂色中文一区二区在线播放| 国产欧美一区二区三区在线看蜜臀 | 免费在线观看不卡| 日韩你懂的在线观看| 日本成人超碰在线观看| 日韩一区二区在线观看视频| 麻豆成人久久精品二区三区红| 欧美成人bangbros| 另类小说图片综合网| 中文在线资源观看网站视频免费不卡| 成人不卡免费av| 夜夜亚洲天天久久| 日韩欧美国产一区二区三区| 国产曰批免费观看久久久| 久久久不卡影院| 在线亚洲人成电影网站色www| 亚洲一区二区四区蜜桃| 日韩精品专区在线影院观看| 国产成人精品三级| 日日夜夜免费精品| 中文字幕综合网| 91.com视频| 欧美mv日韩mv| 欧美日韩一区二区三区在线看 | 91精品国产综合久久香蕉的特点| 国模冰冰炮一区二区| 亚洲精品国产一区二区精华液| 精品噜噜噜噜久久久久久久久试看| 国产高清不卡二三区| 精品在线亚洲视频| 日韩激情视频网站| 亚洲三级在线免费观看| 久久精品欧美一区二区三区麻豆| 欧美精品第一页| 一本大道久久a久久综合| 国产在线不卡视频| 蜜桃一区二区三区在线观看| 夜夜操天天操亚洲| 亚洲自拍偷拍网站| 亚洲女同一区二区| 亚洲人成网站在线| 亚洲精品国产成人久久av盗摄| 国产精品理论在线观看| 欧美国产在线观看| 亚洲国产精品黑人久久久| 久久免费国产精品| 日韩欧美久久久| 日韩欧美国产一区二区三区| 欧美一区日本一区韩国一区| 91精品啪在线观看国产60岁| 欧美亚洲高清一区二区三区不卡| 91久久精品午夜一区二区| 91免费观看视频在线| 91成人在线精品| 在线综合视频播放| 欧美一区二区精美| 国产欧美一区二区三区鸳鸯浴| 欧美国产欧美综合| 亚洲精品视频在线看| 亚洲国产另类av| 成人综合婷婷国产精品久久蜜臀 | 麻豆成人久久精品二区三区红| 欧美性色黄大片| 欧美久久久久免费| 日韩欧美中文字幕公布| 亚洲欧洲日韩av| 五月天一区二区| av亚洲精华国产精华精华| 欧美亚洲丝袜传媒另类| 69成人精品免费视频| 国产日韩欧美精品一区| 日韩综合小视频| 不卡区在线中文字幕| 欧美日韩亚洲综合在线| 国产精品另类一区| 青青国产91久久久久久 | 午夜精品福利久久久| fc2成人免费人成在线观看播放| 欧美一区二区三区人| 亚洲欧美激情在线| 国产在线精品一区二区夜色| 欧美久久高跟鞋激| 欧美sm美女调教| 亚洲一区在线免费观看| av电影在线观看完整版一区二区| 精品久久久久香蕉网| 秋霞午夜鲁丝一区二区老狼| 欧美综合天天夜夜久久| 一区二区三区欧美亚洲| 97久久精品人人爽人人爽蜜臀| 国产午夜精品久久久久久久| 国产麻豆一精品一av一免费 | 天天综合天天综合色| 色狠狠一区二区三区香蕉| 一区二区三区在线免费| 色综合中文字幕国产 | 国产不卡在线一区| 在线综合视频播放| 精品系列免费在线观看| 日韩一级黄色大片| 国产成人精品一区二区三区四区| 国产欧美日韩三级| www.日韩大片| 亚洲你懂的在线视频| 在线免费观看不卡av| 久久国产综合精品| 亚洲欧洲av色图| 欧美一区二区三区性视频| 另类小说一区二区三区| 国产精品久99| 精品国产伦一区二区三区观看方式 | 2023国产精品自拍| 欧美在线免费播放| 国产老妇另类xxxxx| 亚洲欧美日韩一区| 欧美国产日韩亚洲一区| 91官网在线免费观看| 国产精品一区二区久激情瑜伽 | 欧美xxxxx牲另类人与| 91麻豆免费在线观看| 国产精品正在播放| 日韩国产欧美在线播放| 国产精品久99| 久久久久久久久久看片| 99在线精品视频| 国产凹凸在线观看一区二区| 一级女性全黄久久生活片免费| 中文字幕国产一区二区| 日韩欧美一级片| 欧美午夜电影在线播放| 成人av小说网| a美女胸又www黄视频久久| 国产一区二区精品久久91| 日本女人一区二区三区| 亚洲3atv精品一区二区三区| 亚洲国产一区二区在线播放| 亚洲手机成人高清视频| 亚洲国产精品高清| 中文字幕av一区 二区| 中文字幕综合网| 亚洲精品国久久99热| 亚洲女与黑人做爰| 婷婷丁香久久五月婷婷| 日韩电影一区二区三区四区| 麻豆精品在线看| 久久66热偷产精品| 国产一区二区按摩在线观看| 国产精品自拍网站| 91老司机福利 在线| 在线欧美日韩国产| 日韩一区二区三区四区| 国产视频在线观看一区二区三区| 国产午夜精品理论片a级大结局| 欧美成va人片在线观看| 久久午夜老司机| 中文无字幕一区二区三区| 亚洲三级小视频| 蜜臀a∨国产成人精品| 国产99久久久精品| 欧美日韩日日骚| 久久九九久精品国产免费直播| 亚洲伦理在线免费看| 国产一区二区网址| 欧美视频一区二区| 国产日产精品一区| 蜜臀91精品一区二区三区| 成人激情综合网站| 精品对白一区国产伦| 午夜电影一区二区三区| 国产成人精品亚洲777人妖| 色婷婷综合久久久中文一区二区| 久久综合久久久久88| 美女任你摸久久| 欧美色综合影院| 亚洲天堂免费在线观看视频| 国产凹凸在线观看一区二区| 亚洲精品一区二区三区福利| 午夜欧美在线一二页| 91国产免费看| 一二三四社区欧美黄| 日本道精品一区二区三区| 国产午夜精品一区二区三区视频 | 在线播放国产精品二区一二区四区 | 欧美一区二区高清| 久久精品国产久精国产爱|