File indexing completed on 2024-05-12 05:44:36

0001 /***************************************************************************
0002  *   Copyright (C) 2005-2009 by Rajko Albrecht  ral@alwins-world.de        *
0003  *   https://kde.org/applications/development/org.kde.kdesvn               *
0004  *                                                                         *
0005  * This program is free software; you can redistribute it and/or           *
0006  * modify it under the terms of the GNU Lesser General Public              *
0007  * License as published by the Free Software Foundation; either            *
0008  * version 2.1 of the License, or (at your option) any later version.      *
0009  *                                                                         *
0010  * This program is distributed in the hope that it will be useful,         *
0011  * but WITHOUT ANY WARRANTY; without even the implied warranty of          *
0012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
0013  * Lesser General Public License for more details.                         *
0014  *                                                                         *
0015  * You should have received a copy of the GNU Lesser General Public        *
0016  * License along with this program (in the file LGPL.txt); if not,         *
0017  * write to the Free Software Foundation, Inc., 51 Franklin St,            *
0018  * Fifth Floor, Boston, MA  02110-1301  USA                                *
0019  *                                                                         *
0020  * This software consists of voluntary contributions made by many          *
0021  * individuals.  For exact contribution history, see the revision          *
0022  * history and logs, available at https://commits.kde.org/kdesvn.          *
0023  ***************************************************************************/
0024 #include "svnqt/client.h"
0025 #include "svnqt/client_parameter.h"
0026 #include "svnqt/repoparameter.h"
0027 #include "svnqt/repository.h"
0028 #include "svnqt/repositorylistener.h"
0029 #include "svnqt/targets.h"
0030 #include "svnqt/tests/testconfig.h"
0031 
0032 #include "testlistener.h"
0033 
0034 #include <iostream>
0035 #include <qstringlist.h>
0036 #include <unistd.h>
0037 
0038 class Listener : public svn::repository::RepositoryListener
0039 {
0040 public:
0041     Listener()
0042     {
0043     }
0044     virtual ~Listener()
0045     {
0046     }
0047     virtual void sendWarning(const QString &msg)
0048     {
0049         std::cout << msg.toLatin1().data() << std::endl;
0050     }
0051     virtual void sendError(const QString &msg)
0052     {
0053         std::cout << msg.toLatin1().data() << std::endl;
0054     }
0055     virtual bool isCanceld()
0056     {
0057         return false;
0058     }
0059 };
0060 
0061 int main(int, char **)
0062 {
0063     QString p = TESTREPOPATH;
0064     Listener ls;
0065     svn::repository::Repository rp(&ls);
0066     try {
0067         rp.CreateOpen(svn::repository::CreateRepoParameter().path(p).fstype("fsfs"));
0068     } catch (const svn::ClientException &e) {
0069         QString ex = e.msg();
0070         std::cout << ex.toUtf8().data() << std::endl;
0071         return -1;
0072     }
0073 
0074     svn::ClientP m_Svnclient = svn::Client::getobject(svn::ContextP());
0075     TestListener tl;
0076     svn::ContextP m_CurrentContext(new svn::Context);
0077     m_CurrentContext->setListener(&tl);
0078     p = "file://" + p;
0079 
0080     m_Svnclient->setContext(m_CurrentContext);
0081     svn::Paths s;
0082     s.append(svn::Path(p + QLatin1String("/trunk")));
0083     s.append(svn::Path(p + QLatin1String("/branches")));
0084     s.append(svn::Path(p + QLatin1String("/tags")));
0085     svn::CheckoutParameter cparams;
0086     cparams.moduleName(p).destination(QString::fromLatin1(TESTCOPATH)).revision(svn::Revision::HEAD).peg(svn::Revision::HEAD).depth(svn::DepthInfinity);
0087 
0088     try {
0089         m_Svnclient->mkdir(svn::Targets(s), "Test mkdir");
0090         m_Svnclient->checkout(cparams);
0091     } catch (const svn::ClientException &e) {
0092         QString ex = e.msg();
0093         std::cout << ex.toUtf8().data() << std::endl;
0094         return -1;
0095     }
0096     return 0;
0097 }