Bug 36355 - Multiple branches cannot be made from a single version.
Summary: Multiple branches cannot be made from a single version.
Status: NEW
Alias: None
Product: Slide
Classification: Unclassified
Component: Versioning (show other bugs)
Version: 2.1
Hardware: PC Windows 2000
: P2 normal with 2 votes (vote)
Target Milestone: ---
Assignee: Slide Developer List
URL:
Keywords: RFC
Depends on:
Blocks:
 
Reported: 2005-08-25 12:42 UTC by Anthony Marendy
Modified: 2005-09-07 21:51 UTC (History)
0 users



Attachments
Two line change to pass through successors when creating a branch. (5.68 KB, patch)
2005-09-08 05:43 UTC, Anthony Marendy
Details | Diff
Adds functionality for multiple branch points from a single revision. (4.02 KB, patch)
2005-09-08 05:47 UTC, Anthony Marendy
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anthony Marendy 2005-08-25 12:42:26 UTC
SLIDE doesn't seem to support creating more than one branch for a particular 
version of a resource.

In the following example, I set the version back to 1.1, and do a check-out and 
a check-in to create a 1.1.1.
I then set the version back to 1.1 again, and retry a check-out and a check-
in.  This time it fails.


Create the file and some version history (auto-version-control is set to true 
for me)
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ put boot.ini
Uploading  'C:\boot.ini' to '/slide-tm/files/EasyDoc/GI/boot.ini' succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkout boot.ini
checking out '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkin boot.ini
checking in '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkout boot.ini
checking out '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkin boot.ini
checking in '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.


Have a look at the version tree
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ report boot.ini
Getting version-tree Report of '/slide-tm/files/EasyDoc/GI/boot.ini':
/slide-tm/history/30/1.2
/slide-tm/history/30/1.1
/slide-tm/history/30/1.0

Set the version back to 1.1
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ update boot.ini /slide-
tm/history/30/1.1
Updateing resource /slide-tm/files/EasyDoc/GI/boot.ini: succeeded.

Do a check-out and a check-in.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkout boot.ini
checking out '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkin boot.ini
checking in '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.

Have a look at the version tree.  This time, have a version 1.1.1 as expected.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ report boot.ini
Getting version-tree Report of '/slide-tm/files/EasyDoc/GI/boot.ini':
/slide-tm/history/30/1.1.1
/slide-tm/history/30/1.2
/slide-tm/history/30/1.1
/slide-tm/history/30/1.0

Set the version back to 1.1
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ update boot.ini /slide-
tm/history/30/1.1
Updateing resource /slide-tm/files/EasyDoc/GI/boot.ini: succeeded.

Do a check-out and a check-in.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkout boot.ini
checking out '/slide-tm/files/EasyDoc/GI/boot.ini': succeeded.
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $ checkin boot.ini
checking in '/slide-tm/files/EasyDoc/GI/boot.ini': failed.
Internal Server Error (500)
[MILK:/slide-tm/files/EasyDoc/GI/] C:\ $
Comment 1 Anthony Marendy 2005-09-08 05:43:12 UTC
Created attachment 16335 [details]
Two line change to pass through successors when creating a branch.

In order to work out the correct branch number (e.g. 1.1.<BRANCH_NUMBER>.1),
need to pass in the list of successors for the branch point.
Comment 2 Anthony Marendy 2005-09-08 05:47:45 UTC
Created attachment 16336 [details]
Adds functionality for multiple branch points from a single revision.

The number of components in a revision is now always a multiple of two (a la
CVS revision numbers).	The odd positions indicate the branch number.

e.g. if you 1.1 and 1.2 the first time you check out 1.1 you will get 1.1.1.1.

The second time you check out 1.1 you will get 1.1.2.1.

Added a number of methods to support this => getBranchLevel() and
getBranchNumber().

Also moved some repeated initialisation code into a single private method,
initBaseRevision().
Comment 3 Anthony Marendy 2005-09-08 05:51:59 UTC
The number of components in a revision is now always a multiple of two (a la 
CVS revision numbers).  The odd positions indicate the branch number.

e.g. if you 1.1 and 1.2 the first time you check out 1.1 you will get 1.1.1.1.

The second time you check out 1.1 you will get 1.1.2.1.

Added a number of methods to the NodeRevisionNumber class to support this => 
getBranchLevel() and getBranchNumber().