[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.2/kdesdk/kioslave/svn
From: Mickael Marchand <marchand () kde ! org>
Date: 2009-02-05 19:03:43
Message-ID: 1233860623.552341.16298.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 921832 by marchand:
backport kio_svn fixes from trunk
M +24 -1 ksvnd/ksvnd.cpp
M +60 -42 svn.cpp
M +2 -0 svnhelper/kio_svn_helper.cpp
M +1 -1 svnhelper/subversion.desktop
--- branches/KDE/4.2/kdesdk/kioslave/svn/ksvnd/ksvnd.cpp #921831:921832
@@ -117,12 +117,29 @@
bool KSvnd::isFileInSvnEntries ( const QString &filename, const QString &entfile ) {
QFile file( entfile );
+ bool potential = false;
if ( file.open( QIODevice::ReadOnly ) ) {
QTextStream stream( &file );
QString line;
while ( !stream.atEnd() ) {
line = stream.readLine().simplified();
- if ( line == "name=\""+ filename + "\"" ) {
+
+ if ( potential == true ) {
+ // Check that filename is really a file or dir
+ if ( line == "dir" || line == "file" ) {
+ file.close();
+ return true;
+ } else {
+ // Reset potential to false
+ potential=false;
+ }
+ }
+
+ if ( line == filename ) {
+ // Assume we're using SVN >= 1.4
+ potential=true;
+ } else if ( line == "name=\""+ filename + "\"" ) {
+ // We could still be using SVN <= 1.3 (XML format)
file.close();
return true;
}
@@ -270,6 +287,12 @@
if ( !(listStatus & SomeAreInParentsEntries) &&
!(listStatus & SomeAreExternalToParent) &&
!(listStatus & SomeHaveSvn)) {
+ if ( (listStatus & AllParentsHaveSvn) ) {
+ // These files can only be added to SVN
+ result << "Add";
+ result << "_SEPARATOR_";
+ }
+
if( list.size() == 1 && listStatus & SomeAreFolders) {
result << "Checkout";
result << "Export";
--- branches/KDE/4.2/kdesdk/kioslave/svn/svn.cpp #921831:921832
@@ -286,7 +286,7 @@
svn_pool_destroy (subpool);
}
-void kio_svnProtocol::stat(const KUrl & url){
+void kio_svnProtocol::stat(const KUrl & url) {
kDebug(7128) << "kio_svn::stat(const KUrl& url) : " << url.url();
void *ra_baton, *session;
@@ -327,12 +327,16 @@
svn_error_t *err = svn_ra_init_ra_libs(&ra_baton,subpool);
if ( err ) {
kDebug(7128) << "init RA libs failed : " << err->message;
+ error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy( subpool );
return;
}
//find RA libs
err = svn_ra_get_ra_library(&ra_lib,ra_baton,svn_path_canonicalize( \
target.toUtf8(), subpool ),subpool); if ( err ) {
kDebug(7128) << "RA get libs failed : " << err->message;
+ error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy( subpool );
return;
}
kDebug(7128) << "RA init completed";
@@ -354,6 +358,8 @@
err = ra_lib->open(&session,svn_path_canonicalize( target.toUtf8(), subpool \
),cbtable,callbackbt,ctx->config,subpool); if ( err ) {
kDebug(7128)<< "Open session " << err->message;
+ error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy( subpool );
return;
}
kDebug(7128) << "Session opened to " << target;
@@ -362,13 +368,19 @@
err = ra_lib->get_latest_revnum(session,&rev.value.number,subpool);
if ( err ) {
kDebug(7128)<< "Latest RevNum " << err->message;
+ error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy( subpool );
return;
}
kDebug(7128) << "Got rev " << rev.value.number;
}
//get it
- ra_lib->check_path(session,"",rev.value.number,&kind,subpool);
+ err = ra_lib->check_path(session,"",rev.value.number,&kind,subpool);
+ if ( err ) {
+ error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy( subpool );
+ }
kDebug(7128) << "Checked Path";
UDSEntry entry;
switch ( kind ) {
@@ -532,11 +544,10 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_copy(&commit_info, srcsvn.toUtf8(), &rev, \
destsvn.toUtf8(), ctx, subpool);
- if ( err ) {
+ if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
- }
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -560,11 +571,10 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_mkdir(&commit_info,targets,ctx,subpool);
- if ( err ) {
+ if ( err )
error( KIO::ERR_COULD_NOT_MKDIR, err->message );
- }
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -583,11 +593,10 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_mkdir(&commit_info,targets,ctx,subpool);
- if ( err ) {
+ if ( err )
error( KIO::ERR_COULD_NOT_MKDIR, err->message );
- }
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -606,11 +615,10 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_delete(&commit_info,targets,false/*force remove \
locally modified files in wc*/,ctx,subpool);
- if ( err ) {
+ if ( err )
error( KIO::ERR_CANNOT_DELETE, err->message );
- }
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -652,11 +660,10 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_move(&commit_info, srcsvn.toUtf8(), &rev, \
destsvn.toUtf8(), false/*force remove locally modified files in wc*/, \
ctx, subpool);
- if ( err ) {
+ if ( err )
error( KIO::ERR_CANNOT_RENAME, err->message );
- }
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -931,8 +938,11 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_diff (options, path1, &revision1, path2, &revision2, \
recurse, false, true, outfile, NULL, ctx, subpool);
- if ( err )
+ if ( err ) {
error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy (subpool);
+ return;
+ }
//read the content of the outfile now
QStringList tmp;
apr_file_close(outfile);
@@ -979,8 +989,8 @@
svn_error_t *err = svn_client_switch (NULL/*result revision*/, path, url, &rev, \
recurse, ctx, subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -995,12 +1005,17 @@
svn_opt_revision_t rev = createRevision( revnumber, revkind, subpool );
+// apr_array_header_t *targets = apr_array_make(subpool, 1, sizeof(const char *));
+// const char *_target = apr_pstrdup( subpool, svn_path_canonicalize( \
target.toUtf8() , subpool ) ); +// (*(( const char ** )apr_array_push(( \
apr_array_header_t* )targets)) ) = _target; +
initNotifier(false, false, false, subpool);
svn_error_t *err = svn_client_update (NULL, svn_path_canonicalize( target.toUtf8(), \
subpool ), &rev, true, ctx, subpool); +// svn_error_t *err = svn_client_update2 \
(NULL, targets, &rev, true, false, ctx, subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1027,8 +1042,8 @@
svn_error_t *err = \
svn_client_import(&commit_info,path,url,nonrecursive,ctx,subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1051,8 +1066,8 @@
svn_error_t *err = svn_client_checkout (NULL/* rev actually checkedout */, \
svn_path_canonicalize( target.toUtf8(), subpool ), svn_path_canonicalize ( \
dpath.toUtf8(), subpool ), &rev, true, ctx, subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1074,8 +1089,11 @@
initNotifier(false, false, false, subpool);
svn_error_t *err = \
svn_client_commit(&commit_info,targets,nonrecursive,ctx,subpool);
- if ( err )
+ if ( err ) {
error( KIO::ERR_SLAVE_DEFINED, err->message );
+ svn_pool_destroy (subpool);
+ return;
+ }
if ( commit_info ) {
for ( QList<KUrl>::const_iterator it = wc.begin(); it != wc.end() ; ++it ) {
@@ -1116,8 +1134,8 @@
svn_error_t *err = svn_client_add(svn_path_canonicalize( nurl.path().toUtf8(), \
subpool ),nonrecursive,ctx,subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1142,8 +1160,8 @@
if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1166,8 +1184,8 @@
svn_error_t *err = svn_client_revert(targets,nonrecursive,ctx,subpool);
if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1188,8 +1206,8 @@
svn_error_t *err = svn_client_status(&result_rev, svn_path_canonicalize( \
nurl.path().toUtf8(), subpool ), &rev, kio_svnProtocol::status, this, fullRecurse, \
getAll, checkRepos, no_ignore, ctx, subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
@@ -1554,8 +1572,8 @@
svn_error_t *err = svn_client_resolved(svn_path_canonicalize( nurl.path().toUtf8(), \
subpool ), recurse,ctx,subpool); if ( err )
error( KIO::ERR_SLAVE_DEFINED, err->message );
-
- finished();
+ else
+ finished();
svn_pool_destroy (subpool);
}
--- branches/KDE/4.2/kdesdk/kioslave/svn/svnhelper/kio_svn_helper.cpp #921831:921832
@@ -251,6 +251,8 @@
KIO::SimpleJob * job = KIO::special(servURL, parms);
connect( job, SIGNAL( result( KJob * ) ), this, SLOT( slotResult( KJob * ) ) );
KIO::NetAccess::synchronousRun( job, 0 );
+ } else if (args->isSet("R")) {
+ kDebug(7128) << "rename/move TODO " << list;
} else if (args->isSet("C")) {
kDebug(7128) << "checkout " << list;
SubversionCheckoutDialog d;
--- branches/KDE/4.2/kdesdk/kioslave/svn/svnhelper/subversion.desktop #921831:921832
@@ -259,7 +259,7 @@
Name[zh_CN]=重命名...
Name[zh_TW]=重新命名...
Icon=edit-rename
-Exec=kio_svn_helper -r %U
+Exec=kio_svn_helper -R %U
Comment=Rename a file locally and in the repository. Use this rather than adding \
and deleting to rename a file. Comment[ca]=Reanomena un fitxer localment i en el \
repositori. Use-ho en comptes d'afegir i eliminar per a reanomenar un fitxer. \
Comment[cs]=Přejmenovat soubor lokálně a v repository. Použijte raději než \
přidání a smazání souboru k docílení jeho přejmenování.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic