[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