Bug 141025

Summary: Subversion plugin of kdevelop does N commits when commiting N files
Product: [Developer tools] kdevplatform Reporter: Albert Astals Cid <aacid>
Component: subversionAssignee: kdevelop-bugs-null
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Albert Astals Cid 2007-02-01 22:04:35 UTC
Version:            (using KDE KDE 3.5.5)
Installed from:    Compiled From Sources

[22:01] <adymo> i don't need kioslave to check that :) i have the code and code says we indeed do N commits for N files
[22:01] <adymo> so can we have a bug report please ;)

So here it is. KDevelop is doing N commits when comminting N files and that is bad as one loses the "atomic commits" benefit of using SVN.
Comment 1 Andreas Pakulat 2007-02-28 02:26:11 UTC
SVN commit 637874 by apaku:

Fix comitting of multiple files. 

Thanks to  dukju ahn <dukjuahn@gmail.com> for the patch.
BUG:141025


 M  +9 -8      subversion_core.cpp  


--- branches/kdevelop/3.4/vcs/subversion/subversion_core.cpp #637873:637874
@@ -222,16 +222,17 @@
 		servURL.setProtocol( "svn+" + servURL.protocol() ); //make sure it starts with "svn"
 	}
 	kdDebug(9036) << "servURL : " << servURL.prettyURL() << endl;
+	QByteArray parms;
+	QDataStream s( parms, IO_WriteOnly );
+	int cmd = 3;
+ 	s << cmd;
 	for ( QValueListConstIterator<KURL> it = list.begin(); it != list.end() ; ++it ) {
-		kdDebug(9036) << "commiting : " << (*it).prettyURL() << endl;
-		QByteArray parms;
-		QDataStream s( parms, IO_WriteOnly );
-		int cmd = 3;
-		s << cmd << *it;
-		SimpleJob * job = KIO::special(servURL, parms, true);
-		job->setWindow( m_part->mainWindow()->main() );
-		connect( job, SIGNAL( result( KIO::Job * ) ), this, SLOT( slotResult( KIO::Job * ) ) );
+		kdDebug(9036) << "adding to list: " << (*it).prettyURL() << endl;
+		s << *it;
 	}
+	SimpleJob * job = KIO::special(servURL, parms, true);
+	job->setWindow( m_part->mainWindow()->main() );
+	connect( job, SIGNAL( result( KIO::Job * ) ), this, SLOT( slotResult( KIO::Job * ) ) );
 }
 
 void subversionCore::add( const KURL::List& list ) {