Rev 1276: Use python implementation of secs_to_cstring. in http://people.samba.org/bzr/jelmer/bzr-svn/0.4

Jelmer Vernooij jelmer at samba.org
Sun Jun 22 17:37:14 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/0.4

------------------------------------------------------------
revno: 1276
revision-id: jelmer at samba.org-20080622163713-wy6jr0thzomqyqlt
parent: jelmer at samba.org-20080622162131-kxdmjx0cw0n7mb2e
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sun 2008-06-22 18:37:13 +0200
message:
  Use python implementation of secs_to_cstring.
modified:
  commit.py                      commit.py-20060607190346-qvq128wgfubhhgm2-1
  core.c                         core.pyx-20080313210413-17k59slolpfe5kdq-1
  properties.py                  util.py-20080502170127-o220e9py99vt69s6-1
  tests/test_commit.py           test_commit.py-20060624213521-l5kcufywkh9mnilk-1
  tests/test_core.py             test_core.py-20080603032119-q91zmret1lv84ay9-1
  workingtree.py                 workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'commit.py'
--- a/commit.py	2008-06-22 03:02:06 +0000
+++ b/commit.py	2008-06-22 16:37:13 +0000
@@ -27,7 +27,7 @@
 from cStringIO import StringIO
 
 from bzrlib.plugins.svn import core, properties
-from bzrlib.plugins.svn.core import SubversionException, time_to_cstring
+from bzrlib.plugins.svn.core import SubversionException
 from bzrlib.plugins.svn.errors import ChangesRootLHSHistory, MissingPrefix, RevpropChangeFailed, ERR_FS_TXN_OUT_OF_DATE, ERR_REPOS_DISABLED_FEATURE
 from bzrlib.plugins.svn.svk import (generate_svk_feature, serialize_svk_features, 
                  parse_svk_features, SVN_PROP_SVK_MERGE)
@@ -520,7 +520,7 @@
             if properties.PROP_REVISION_AUTHOR in override_svn_revprops:
                 new_revprops[properties.PROP_REVISION_AUTHOR] = self._committer.encode("utf-8")
             if properties.PROP_REVISION_DATE in override_svn_revprops:
-                new_revprops[properties.PROP_REVISION_DATE] = time_to_cstring(1000000*self._timestamp)
+                new_revprops[properties.PROP_REVISION_DATE] = properties.time_to_cstring(1000000*self._timestamp)
             set_svn_revprops(self.repository.transport, result_revision, new_revprops)
 
         try:

=== modified file 'core.c'
--- a/core.c	2008-06-22 13:35:17 +0000
+++ b/core.c	2008-06-22 16:37:13 +0000
@@ -27,22 +27,6 @@
 
 #include "util.h"
 
-/** Convert a UNIX timestamp to a Subversion CString. */
-static PyObject *time_to_cstring(PyObject *self, PyObject *args)
-{
-	PyObject *ret;
-    apr_pool_t *pool;
-	apr_time_t when;
-	if (!PyArg_ParseTuple(args, "L", &when))
-		return NULL;
-    pool = Pool(NULL);
-	if (pool == NULL)
-		return NULL;
-    ret = PyString_FromString(svn_time_to_cstring(when, pool));
-    apr_pool_destroy(pool);
-    return ret;
-}
-
 /** Parse a Subversion time string and return a UNIX timestamp. */
 static PyObject *time_from_cstring(PyObject *self, PyObject *args)
 {
@@ -75,7 +59,6 @@
 
 static PyMethodDef core_methods[] = {
 	{ "time_from_cstring", time_from_cstring, METH_VARARGS, NULL },
-	{ "time_to_cstring", time_to_cstring, METH_VARARGS, NULL },
 	{ NULL, }
 };
 

=== modified file 'properties.py'
--- a/properties.py	2008-06-05 17:26:28 +0000
+++ b/properties.py	2008-06-22 16:37:13 +0000
@@ -21,6 +21,14 @@
             return False
     return True
 
+def time_to_cstring(timestamp):
+    import time
+    tm_usec = timestamp % 1000000
+    (tm_year, tm_mon, tm_mday, tm_hour, tm_min, 
+            tm_sec, tm_wday, tm_yday, tm_isdst) = time.gmtime(timestamp / 1000000)
+    return "%04d-%02d-%02dT%02d:%02d:%02d.%06dZ" % (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_usec)
+
+
 PROP_EXECUTABLE = 'svn:executable'
 PROP_EXECUTABLE_VALUE = '*'
 PROP_EXTERNALS = 'svn:externals'

=== modified file 'tests/test_commit.py'
--- a/tests/test_commit.py	2008-06-22 04:51:45 +0000
+++ b/tests/test_commit.py	2008-06-22 16:37:13 +0000
@@ -28,9 +28,9 @@
 from copy import copy
 import os
 
-from bzrlib.plugins.svn.core import time_to_cstring
 from bzrlib.plugins.svn.commit import set_svn_revprops, _revision_id_to_svk_feature
 from bzrlib.plugins.svn.errors import RevpropChangeFailed
+from bzrlib.plugins.svn.properties import time_to_cstring
 from bzrlib.plugins.svn.transport import SvnRaTransport
 from bzrlib.plugins.svn.tests import TestCaseWithSubversionRepository
 

=== modified file 'tests/test_core.py'
--- a/tests/test_core.py	2008-06-22 13:35:17 +0000
+++ b/tests/test_core.py	2008-06-22 16:37:13 +0000
@@ -16,7 +16,7 @@
 """Subversion core library tests."""
 
 from bzrlib.tests import TestCase
-from bzrlib.plugins.svn import core
+from bzrlib.plugins.svn import core, properties
 
 class TestCore(TestCase):
     def setUp(self):
@@ -29,5 +29,5 @@
         self.assertEquals(1225704780716938L, core.time_from_cstring("2008-11-03T09:33:00.716938Z"))
 
     def test_time_to_cstring(self):
-        self.assertEquals("2008-11-03T09:33:00.716938Z", core.time_to_cstring(1225704780716938L))
+        self.assertEquals("2008-11-03T09:33:00.716938Z", properties.time_to_cstring(1225704780716938L))
 

=== modified file 'workingtree.py'
--- a/workingtree.py	2008-06-22 08:45:53 +0000
+++ b/workingtree.py	2008-06-22 16:37:13 +0000
@@ -37,7 +37,7 @@
 from bzrlib.plugins.svn.client import Client
 from bzrlib.plugins.svn.commit import _revision_id_to_svk_feature
 from bzrlib.plugins.svn.convert import SvnConverter
-from bzrlib.plugins.svn.core import SubversionException, time_to_cstring
+from bzrlib.plugins.svn.core import SubversionException
 from bzrlib.plugins.svn.errors import LocalCommitsUnsupported, NoSvnRepositoryPresent, ERR_FS_TXN_OUT_OF_DATE, ERR_ENTRY_EXISTS, ERR_WC_PATH_NOT_FOUND, ERR_WC_NOT_DIRECTORY
 from bzrlib.plugins.svn.format import get_rich_root_format
 from bzrlib.plugins.svn.mapping import (SVN_PROP_BZR_ANCESTRY, SVN_PROP_BZR_FILEIDS, 
@@ -367,7 +367,7 @@
 
             wc.process_committed(self.abspath(path).rstrip("/"), 
                           False, revnum, 
-                          time_to_cstring(newrev.timestamp), 
+                          properties.time_to_cstring(newrev.timestamp), 
                           newrev.committer)
 
             if newrevtree.inventory[id].kind != 'directory':




More information about the bazaar-commits mailing list