From a071bd04020e251c0fb65fb80f79dcfc1e80d28e Mon Sep 17 00:00:00 2001 From: Rafael Monnerat <rafael@nexedi.com> Date: Wed, 24 Feb 2010 04:01:55 +0000 Subject: [PATCH] Added support to svn checkout. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33072 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Subversion/SubversionClient.py | 5 ++++- product/ERP5Subversion/Tool/SubversionTool.py | 21 ++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/product/ERP5Subversion/SubversionClient.py b/product/ERP5Subversion/SubversionClient.py index 66f1b204f6..d25e458495 100644 --- a/product/ERP5Subversion/SubversionClient.py +++ b/product/ERP5Subversion/SubversionClient.py @@ -318,7 +318,10 @@ try: def switch(self, path, url): return self.client.switch(path=path, url=url) - + + def checkout(self, path, url): + return self.client.checkout(path=path, url=url) + def log(self, path): try: log_list = self.client.log(path) diff --git a/product/ERP5Subversion/Tool/SubversionTool.py b/product/ERP5Subversion/Tool/SubversionTool.py index af6e05f3f2..554331a333 100644 --- a/product/ERP5Subversion/Tool/SubversionTool.py +++ b/product/ERP5Subversion/Tool/SubversionTool.py @@ -516,7 +516,26 @@ class SubversionTool(BaseTool, UniqueObject, Folder): url = url[:-1] # Update from SVN client.switch(path=path, url=url) - + + security.declareProtected('Import/Export objects', 'checkout') + def checkout(self, business_template, url): + """ Checkout business configuration from SVN into + the first Preferres Subversion Working Copy. + """ + wc_list = self.getPortalObject().portal_preferences\ + .getPreferredSubversionWorkingCopyList() + if not wc_list or len(wc_list) == 0 : + raise SubversionPreferencesError, \ + 'Please set at least one Subversion Working Copy in preferences first.' + bt_name = business_template.getTitle() + wc_path = os.path.join(wc_list[0], bt_name) + path = self._getWorkingPath(wc_path) + client = self._getClient() + if url[-1] != '/' : + url += '/' + url += bt_name + client.checkout(path=path, url=url) + security.declareProtected('Import/Export objects', 'add') # path can be a list or not (relative or absolute) def add(self, path, business_template=None): -- 2.30.9