[commit] r1586 - trunk/GME/XmlBackEnd/SVNCode
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Tue Oct 4 18:03:16 CDT 2011
Author: ksmyth
Date: Tue Oct 4 18:03:16 2011
New Revision: 1586
Log:
Cache svn context, since recreating it rereads the user config and does other slow things
Modified:
trunk/GME/XmlBackEnd/SVNCode/Client.cpp
trunk/GME/XmlBackEnd/SVNCode/Client.h
Modified: trunk/GME/XmlBackEnd/SVNCode/Client.cpp
==============================================================================
--- trunk/GME/XmlBackEnd/SVNCode/Client.cpp Tue Oct 4 14:49:32 2011 (r1585)
+++ trunk/GME/XmlBackEnd/SVNCode/Client.cpp Tue Oct 4 18:03:16 2011 (r1586)
@@ -46,6 +46,8 @@
setPrompt( Prompter::makePrompter( new GPromptImpl()));
// we set this:
notification2( new ClientUtil::NotifyHelp());
+ m_ctx = NULL;
+ m_ctxPool = std::auto_ptr<Pool>(new Pool());
}
Client::~Client(void)
@@ -619,6 +621,17 @@
svn_client_ctx_t * Client::getContext(const char *p_strMessage, apr_pool_t *pool)
{
+ if (m_ctx == NULL)
+ {
+ m_ctx = createContext(NULL, m_ctxPool->pool());
+ }
+ m_commitMessage = p_strMessage ? p_strMessage : "Empty";
+ ((ClientUtil::CommitHelp::LogMsgBaton*)m_ctx->log_msg_baton2)->m_message = m_commitMessage.c_str();
+ return m_ctx;
+}
+
+svn_client_ctx_t * Client::createContext(const char *p_strMessage, apr_pool_t *pool)
+{
svn_auth_baton_t *ab;
svn_client_ctx_t *ctx;
svn_error_t *err = NULL;
Modified: trunk/GME/XmlBackEnd/SVNCode/Client.h
==============================================================================
--- trunk/GME/XmlBackEnd/SVNCode/Client.h Tue Oct 4 14:49:32 2011 (r1585)
+++ trunk/GME/XmlBackEnd/SVNCode/Client.h Tue Oct 4 18:03:16 2011 (r1586)
@@ -27,6 +27,7 @@
#include "svn_client.h"
#include "Prompter.h"
#include "ClientUtil.h"
+#include "Pool.h"
// class mimicing subversion/bindings/java/javahl/native/svnclient.cpp
class CommitMessage;
@@ -74,6 +75,10 @@
long sub_mkdir( Targets& targets, const char * p_msg);
long sub_mkdir2( Targets& targets, const char * p_msg);
+ std::auto_ptr<Pool> m_ctxPool;
+ svn_client_ctx_t* m_ctx;
+ std::string m_commitMessage;
+ svn_client_ctx_t * createContext(const char *p_message, apr_pool_t *pool);
svn_client_ctx_t * getContext(const char *p_message, apr_pool_t *pool);
//void * getCommitMessageBaton(const char *message);
More information about the gme-commit
mailing list