--- {{ $Header: L:\\\\model\\jin\\RCS\\jriversn.jps 40.16 1998/12/17 10:57:14 wstallar Exp $ --- {{ -----------------------------------------------------------------------+ --- File: $Workfile: jrphvman.sql $ --- Author: $Author: wstallar $ --- Date: $Date: 1998/12/17 10:57:14 $ --- Version: $Revision: 40.16 $ --- Status: $State: Exp $ --- Locked_by: $Locker: $ --- Project: The Oracle Repository --- Description: Install version_manager package. --- Notes: --- RealAuth: Patrick Lorrimer --- IncepDate: 17 Sept 1997 --- Copyright: (c) Oracle Corporation 1997. All Rights Reserved. --- Tagline: -- Repository: Managing *all* your data -- --- --------------------------------------------------------------------------+ --- Log of Changes from Source Control System --- --------------------------------------------------------------------------+ --- $Log: jriversn.jps $ --- Revision 40.16 1998/12/17 10:57:14 wstallar --- o Renamed methods (in line with Amy's guidelines): --- revoke_check_out() -> undo_checkout() --- lock_check_out() -> lock_checkout() --- unlock_check_out() -> unlock_checkout() --- get_original_of_check_out() -> get_original_of_checkout() --- 775696 BRANCH LABELS APPEAR TO BE FORCED TO UPPERCASE --- 778725 JR_VERSION.GET_BRANCH_ID() SHOULD USE UPPER(BRANCH_NAME) --- 780651 REQUIRE TO KNOW IF A CHECKOUT EXISTS FOR A SPECIFIC IN CONTEXT VERSION --- 781576 CHANGES OVERWRITTEN WHEN 2 USERS CHECK-IN AT SAME TIME --- --rem Revision 40.15 1998/12/11 17:02:47 wstallar --rem Removed obsolete global variable 'update_workarea'. --rem --rem Revision 40.14 1998/11/26 11:22:14 wstallar --rem Added methods lock_check_out() and unlock_check_out(). --rem --rem Revision 40.13 1998/11/11 11:50:29 wstallar --rem ER 762589 : Can now specify notes on check-out. --rem Also, made new_verison function private, and modified it to allow check_out --rem to use it as a helper method. --rem --rem Revision 40.12 1998/10/19 16:10:33 wstallar --rem Added delete branch method. --rem --rem Revision 40.11 1998/10/12 10:28:07 wstallar --rem Removed ampersands from comments. --rem --rem Revision 40.10 1998/10/12 10:17:52 wstallar --rem Modified is_checked_in for autobranching --rem Added wrappers for functions returning BOOLEANs. --rem --rem Revision 40.9 1998/09/18 15:23:09 wstallar --rem Added check_in_changes() to check-in then check-out maintaining any lock. --rem --rem Revision 40.8 1998/09/17 10:24:28 wstallar --rem Changes for 404A. --rem Support automatic branching in workarea context. --rem Fixed revoke-checkout. --rem --- Revision 40.7 1998/09/03 12:46:35 wstallar --- Added error messages and provided wrapper for is_checked_in. --- --- Revision 40.6 1998/08/06 13:52:55 plorrime --- put back check_in_sub. It allows dense branching. --- --- Revision 40.5 1998/08/06 13:37:00 plorrime --- http://des2000.uk.oracle.com:8002/repos/specinfo/netdoc/version/release.htm#06_08_1998 --- --- Revision 40.4 1998/07/30 11:01:29 plorrime --- Added code for edge_sequence. --- Fixed spelling --- --- Revision 40.3 1998/07/23 10:50:44 plorrime --- see http://des2000.uk.oracle.com:8002/repos/specinfo/netdoc/version/release.htm --- Got rid of check_in(). Replaced with check_in_at_tip and check_in_branch --- Got rid of check_out_file() unnecessarty "optimization" --- Added optional vlabel to branch,merege and both check_in_... commands --- Added revoke_check_out() --- mk_brach() --- 14 other util methods. See WEB Doc. --- --- Revision 40.2 1998/05/27 13:08:23 eharding --- Moved reference JR_* PL/SQL from ClearCase --- --- --- Rev 1.1 14 Jan 1998 18:09:32 kmchorto --- Restructuring: Checkpoint for Jon & DavidD --- --- Rev 1.0 12 Jan 1998 20:37:12 kmchorto --- Checkpoint for Schema Cutover --- prompt Package Header: jr_version create or replace package jr_version is ---- public versioning methods --Is_merge_needed should be called prior to performing any check-in operation --other than check_in_branch. It will return TRUE if the checked-out node is --not checked out from the tip, and the check-in will result in a check-in --at the tip. If check_in_at_tip is to be called directly, then i_at_tip --should be set to TRUE. The value of i_tip_ivid returned by this method --should be passed to the check-in method to ensure that the situation --has not changed whilst the the merge was being performed. function is_merge_needed(i_irid in number ,i_ivid in number ,i_tip_ivid out number ,i_common_ivid out number ,i_at_tip in boolean default FALSE) return boolean; -- jr_version.CONTAINER_CHECKIN_REQD() -- Call before performing a checkin to determine if the objects container -- must also be checked in to make the object visible to other users. -- Returns TRUE if: -- o Object being checked in for first time -- o AND there are no checked-in container versions which own this object -- o AND object is not a root container or a configuration function is_container_checkin_reqd(i_ivid in number) return boolean; --jr_version.GET_NEXT_VLABEL() --Function returns the next version label in the autogenerated --sequence for the specified object version. --CI_ACTION specifies, for checked out elems whether the --checkin will be to TIP or onto a BRANCH. --If left null, the autobranch policy for the current workarea --will be used to determine the likely checkin action. function get_next_vlabel(i_irid in number ,i_ivid in number ,ci_action in varchar2 default NULL) return varchar2; function check_in(i_irid number ,i_ivid number ,i_notes varchar2 ,i_vlabel varchar2 ,i_tip_ivid number default NULL) return number; function check_in_changes(i_irid number ,i_ivid number ,i_notes varchar2 ,i_vlabel varchar2 ,i_tip_ivid number default NULL) return number; function check_in_at_tip (i_irid number ,i_ivid number ,i_notes varchar2 ,i_vlabel varchar2 ,i_tip_ivid number default NULL) return number; function check_in_changes_at_tip(i_irid number ,i_ivid number ,i_notes varchar2 ,i_vlabel varchar2 ,i_tip_ivid number default NULL) return number; function check_in_branch(i_irid number ,i_ivid number ,i_branch_id number ,i_notes varchar2 ,i_vlabel varchar2) return number; function check_in_changes_on_branch(i_irid number ,i_ivid number ,i_branch_id number ,i_notes varchar2 ,i_vlabel varchar2) return number ; function check_out (i_irid number ,i_ivid number ,i_lock boolean ,i_notes varchar2 default NULL ,i_vlabel varchar2 default NULL ,i_version_dependencies boolean default TRUE) return number; function branch (i_irid number ,i_ivid number ,i_branch_id number ,i_notes varchar2 ,i_vlabel varchar2 ,i_version_dependencies boolean default TRUE) return number; function merge (i_irid number ,i_ivid1 number ,i_ivid2 number ,i_notes varchar2 ,i_vlabel varchar2 ,i_do_check_in boolean default TRUE) return number; function mk_branch (i_name varchar2,i_notes varchar2) return number; function create_branch_label(i_name varchar2,i_notes varchar2) return number;--Wrappers mk_branch function get_common_ancestor(obj_irid in number ,merge_from_ivid number ,merge_to_ivid number) return number; procedure change_branch_label(i_branch_id in number, i_new_name in varchar2); procedure change_branch_label_notes(i_branch_id in number, i_new_notes in varchar2); procedure delete_branch(i_branch_id in number); procedure delete_branch_label(i_branch_id in number);--Wrappers delete_branch procedure undo_checkout(i_irid number, i_ivid number); procedure lock_checkout(i_irid number, i_ivid number); procedure unlock_checkout(i_irid number, i_ivid number); ---- ---- public util methods function has_changed(i_ivid1 in number,i_ivid2 in number := NULL) return boolean; function get_vlabel(i_irid number , i_ivid number ) return varchar2; function get_notes(i_irid number, i_ivid number) return varchar2; function get_root (i_irid in number) return number; function get_tip_on_current_branch (i_irid in number, i_ivid in number) return number; function is_latest(i_ivid in number) return boolean; function get_predecessor(i_ivid number) return number; function get_current_branch_id (i_irid number , i_ivid number ) return number; function is_checked_in (i_irid number , i_ivid number ) return boolean; function is_checked_out (i_irid number , i_ivid number ) return boolean; function never_checked_in(i_irid number ) return boolean; function get_branch_id( i_branch_name varchar2) return number; function get_branch_name( i_branch_id number) return varchar2; function get_branch_label(i_branch_id number) return varchar2;--Wrappers get_branch_name function valid_branch_id( i_branch_id number ) return boolean; function is_already_on_branch(i_irid number,i_branch_id number ) return boolean; function is_branch_locked(i_irid number,i_branch_id number) return boolean; function is_locked(i_irid number,i_ivid number) return boolean; function get_lock_holder(i_ivid number) return varchar2; PRAGMA RESTRICT_REFERENCES(get_lock_holder, WNPS, WNDS); function get_lock_holder(i_irid number,i_branch_id number) return varchar2; function get_locking_version(i_ivid number) return number; PRAGMA RESTRICT_REFERENCES(get_locking_version, WNPS, WNDS); function get_locking_version(i_irid number,i_branch_id number) return number; function is_any_version_checked_out(i_irid number) return boolean; function get_checkout(i_ivid number) return number; function is_checked_out_on_branch(i_irid number,i_branch_id number) return boolean; procedure strict_lock_policy (i_enable boolean); function get_strict_lock_policy return boolean; procedure autobranch_policy (i_enable boolean); function get_autobranch_policy return boolean; function get_number_of_branches (i_irid number , i_ivid number ) return number; function get_original_of_checkout(i_irid number ,i_ivid number ) return number; function branch_has_merged(i_irid number,i_branch_id number) return boolean; ---- ---- Wrappers for functions returning BOOLEAN ---- (for JDBC and OCI) function merge_needed(i_irid in number,i_ivid in number,i_tip_ivid out number,i_common_ivid out number,i_at_tip in number default 0)return number; function has_version_changed(i_ivid1 in number,i_ivid2 in number:=NULL) return number; function container_checkin_reqd(i_ivid in number) return number; function autobranch_policy return number; function strict_lock_policy return number; function already_on_branch(i_irid number,i_branch_id number ) return number; function is_latest_version(i_ivid in number) return number; function checked_out_on_branch(i_irid number,i_branch_id number) return number; function checked_out_in_workarea(i_irid number) return number; function any_version_checked_out(i_irid number) return number; function branch_locked(i_irid number,i_branch_id number) return number; function locked(i_irid number,i_ivid number) return number; function never_been_checked_in(i_irid number ) return number; function is_version_checked_in (i_irid number, i_ivid number) return number; function is_version_checked_out(i_irid number, i_ivid number) return number; function has_branch_merged(i_irid number,i_branch_id number) return number; PRAGMA RESTRICT_REFERENCES(has_version_changed, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(is_locked, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(locked, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_lock_holder, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_locking_version, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(has_changed, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_current_branch_id, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_predecessor, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_branch_name, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_branch_label,WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(container_checkin_reqd, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(is_container_checkin_reqd, WNPS, WNDS); PRAGMA RESTRICT_REFERENCES(get_common_ancestor, WNPS, WNDS); NOT_CHECKED_OUT exception; CHECK_IN_ERROR exception; CHECK_OUT_ERROR exception; REVOKE_ERROR exception; BRANCH_ERROR exception; MERGE_ERROR exception; MERGE_REQUIRED exception; end ; / --- --- ---------------------------------------------------------------------------+ --- }} End of file $Workfile: jrphvman.sql $ $$Header_is_done --- ---------------------------------------------------------------------------+