From 5acee802e0558c68438c1fccd610a554e90a4a5b Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 8 Apr 2007 15:25:21 +0000 Subject: [PATCH] versioning bug fix: always use the master's name as base name for a new version git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1677 fd906abe-77d9-0310-91a1-e0d9ade77398 --- versioning/README.txt | 11 +++++++++-- versioning/versionable.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/versioning/README.txt b/versioning/README.txt index 01c7514..63b9a5d 100644 --- a/versioning/README.txt +++ b/versioning/README.txt @@ -90,6 +90,13 @@ a major version change, the lower levels are reset to 1: >>> getName(d001v2_1) u'd001_2.1.txt' +The name of the new version is always derived from the name of the master +even if we create a new version from another one: + + >>> d001v2_2 = IVersionable(d001v1_2).createVersion() + >>> getName(d001v2_2) + u'd001_2.2.txt' + Providing the Correct Version ============================= @@ -105,10 +112,10 @@ The default version is always the released or - if this is not available - the current version (i.e. the version created most recently): >>> IVersionable(getVersion(d001, TestRequest())).versionId - '2.1' + '2.2' >>> IVersionable(getVersion(d001v1_2, TestRequest())).versionId - '2.1' + '2.2' >>> d002 = resources['d002.txt'] >>> IVersionable(getVersion(d002, TestRequest())).versionId diff --git a/versioning/versionable.py b/versioning/versionable.py index c498284..f186b40 100644 --- a/versioning/versionable.py +++ b/versioning/versionable.py @@ -135,7 +135,7 @@ class VersionableResource(object): versionableObj.setVersioningAttribute('comment', comment) # generate name for new object, register in parent versionId = versionableObj.versionId - name = self.generateName(getName(context), + name = self.generateName(getName(self.master), extensions.get(context.contentType, ''), versionId) getParent(context)[name] = obj