[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slide-dev
Subject:    [PATCH] Working revisions
From:       "Paul Emms" <paul.emms () calleo ! com>
Date:       2001-05-22 8:31:45
[Download RAW message or body]

Here are two patches that allow access to working revisions on the main
branch.
Is branch version numbering implemented correctly yet ? I am assuming you
want
something along the lines of CVS so that version numbers are unique across
all
branches: in that case each node would have an even number of dot separated
digits e.g
1.2.2.1 for a branch off version 1.2

Paul

***********************************************************************
Calleo UK Limited          Phone   +44 207 645 9400
Paul Emms                  Direct  +44 207 264 2061
Information Analyst        Fax     +44 207 264 2064
Suite 881, Lloyd's
One Lime Street            E-Mail  paul.emms@calleo.com
London                     www.calleo.com
EC3M 7HA
***********************************************************************
Privileged/Confidential Information may be contained in this message.  If
you are not the addressee indicated in this message (or responsible for
delivery of the message to such person), you may not copy or deliver this
message to anyone. In such case, you should destroy this message and kindly
notify the sender by reply email. Please advise immediately if you or your
employer does not consent to Internet email for messages of this kind.
Opinions, conclusions and other information in this message that do not
relate to the official business of my firm shall be understood as neither
given nor endorsed by it.





["JDBCDescriptorsStore.patch.txt" (text/plain)]

Index: JDBCDescriptorsStore.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v
retrieving revision 1.16
diff -w -u -a -r1.16 JDBCDescriptorsStore.java
--- JDBCDescriptorsStore.java	2001/05/20 22:00:53	1.16
+++ JDBCDescriptorsStore.java	2001/05/21 15:05:29
@@ -1238,7 +1238,11 @@
             res = statement.executeQuery();
             
             while(res.next()) {
-                // TODO : Parse each working revision definition
+                workingRevisions
+                	.put(new NodeRevisionNumber
+                 			(res.getString(WORKINGREVISION_BASEREVISION)),
+                 		 new NodeRevisionNumber
+                    		(res.getString(WORKINGREVISION_NUMBER)));
             }
             
             closeStatement(statement);
@@ -1335,7 +1339,19 @@
             closeStatement(statement);
             
             // Creating records in working revisions table
-            // ... TODO (working revisions are not used for now)
+
+            // For now, only the working revision from the main branch is stored
+            if (revisionDescriptors.getWorkingRevision() != null) {
+                statement = connection.prepareStatement(
+            		"insert into workingrevision values(?,?,?)");
+        		statement.setString(1, uri.toString());
+        		statement.setString(2,
+            		revisionDescriptors.getInitialRevision().toString());
+        		statement.setString(3,
+            		revisionDescriptors.getWorkingRevision().toString());
+                statement.execute();
+                statement.close();
+            }
             
             // Creating records in latest revisions table
             

["NodeRevisionDescriptors.patch.txt" (text/plain)]

Index: NodeRevisionDescriptors.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/share/org/apache/slide/content/NodeRevisionDescriptors.java,v
retrieving revision 1.5
diff -w -u -a -r1.5 NodeRevisionDescriptors.java
--- NodeRevisionDescriptors.java	2001/02/15 12:16:25	1.5
+++ NodeRevisionDescriptors.java	2001/05/21 15:43:18
@@ -101,6 +101,7 @@
         this.branches = new Hashtable();
         this.workingRevisions = new Hashtable();
         this.useVersioning = false;
+        setWorkingRevision(initialRevision);
     }
     
     
@@ -112,6 +113,7 @@
         this.branches = new Hashtable();
         this.workingRevisions = new Hashtable();
         this.useVersioning = isVersioned;
+        setWorkingRevision(initialRevision);
     }
     
     
@@ -236,8 +238,43 @@
         }
     }
     
+    /**
+     * Get working revision from the main branch.
+     */
+    public NodeRevisionNumber getWorkingRevision() {
+        return getWorkingRevision(initialRevision);
+    }
+
+    /**
+     * Get working revision from a branch with a given base revision number.
+     */
+    public NodeRevisionNumber getWorkingRevision(NodeRevisionNumber baseRevisionNumber) {
+        Object number = null;
+        number = this.workingRevisions.get(baseRevisionNumber);
+        if (number != null) {
+            return (NodeRevisionNumber) number;
+        } else {
+            return null;
+        }
+    }
     
     /**
+     * Working revision mutator.
+     */
+    public void setWorkingRevision(NodeRevisionNumber number) {
+        this.workingRevisions.put(initialRevision, number);
+    }
+
+
+    /**
+     * Working revision mutator.
+     */
+    public void setWorkingRevision(NodeRevisionNumber baseRevisionNumber, NodeRevisionNumber number) {
+        this.workingRevisions.put(baseRevisionNumber, number);
+    }
+
+
+    /**
      * Latest revision mutator.
      */
     void setLatestRevision(NodeRevisionNumber number) {
@@ -348,7 +385,17 @@
         NodeRevisionDescriptors result = null;
         try {
             result = (NodeRevisionDescriptors) super.clone();
-            // TODO : No cloning of the working revisions list for now
+
+            // Clone workingRevisions hash
+            Hashtable workingRevisionsClone = new Hashtable();
+            Enumeration workingRevisionsList = this.workingRevisions.keys();
+            while (workingRevisionsList.hasMoreElements()) {
+                Object key = workingRevisionsList.nextElement();
+                NodeRevisionNumber value = (NodeRevisionNumber) this.workingRevisions.get(key);
+                workingRevisionsClone.put(key, value);
+            }
+            result.workingRevisions = workingRevisionsClone;
+
             // Cloning branches
             Hashtable branchesClone = new Hashtable();
             Enumeration branchesList = this.branches.keys();



Knowledge by Experience


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic