version 1.3, 2006/03/09 18:33:18
|
version 1.7, 2006/03/13 17:40:20
|
|
|
### come from the users's .cvsrc file. These rules set specific options that | ### come from the users's .cvsrc file. These rules set specific options that |
### are required for the operation to be performed. | ### are required for the operation to be performed. |
### | ### |
|
### Branch Management Terminolgy: |
|
### |
|
### branch merge out - The act of merging changes from the trunk, that have occured |
|
### since the branch was either created or last merged out |
|
### into the branch. |
|
### branch merge in - The act of merging changes from the branch, that have occured |
|
### since the branch was either created or last merged in, |
|
### into the trunk. |
|
### branch migration - The act of migrating all the changes on the branch, that have |
|
### not been merged into the trunk, to another branch rooted at |
|
### the current head of the trunk. |
### | ### |
## Functions: | ## Functions: |
## usage | ## usage |
|
|
## | ## |
## Tags created/maintained to manage the task branch by the rules within this Makefile | ## Tags created/maintained to manage the task branch by the rules within this Makefile |
## | ## |
## The [BRANCH NAME] is expected to be PEP number like PEP_XXX or |
## The [BRANCH NAME] is expected to be the combination of a PEP number or |
## BUG number like BUG_XXXX and functionality based like like |
## BUG number and functionality. For example PEPXXXConfigChanges or |
## PEP_XXX_Config_Changes or BUG_XXXX_Config_changes. |
## BUGXXXXConfigChanges. The branch name should use Camel Notation and |
|
## should not contain underline (_) or dash (-) charecters. |
|
## Note that CVS further restircts this to not use any of the following |
|
## charecters enclosed within []: [$ , . : ; @]. |
## | ## |
## | ## |
## Branch and branch management tag naming convention | ## Branch and branch management tag naming convention |
## | ## |
## TASK-[BRANCH_NAME]-[ACTION]_[DIRECTION]_[LOCATION] |
## TASK_[BRANCH_NAME]-[ACTION]_[DIRECTION]_[LOCATION] |
## | ## |
## Where: | ## Where: |
## TASK - is constant to associate all tags to a TASK branch | ## TASK - is constant to associate all tags to a TASK branch |
## BRANCH_NAME - is the name of the branch as described above. | ## BRANCH_NAME - is the name of the branch as described above. |
## ACTION - is the action or purpose of the tag. It is one of the following: | ## ACTION - is the action or purpose of the tag. It is one of the following: |
## root, branch, merged_in, merged_out, merging_in or merging_out. | ## root, branch, merged_in, merged_out, merging_in or merging_out. |
## DIRECTION - is the direction of the ACTION relative to the LOCATION. |
## DIRECTION - is the direction of the ACTION relative to the LOCATION, either |
|
## to or from. |
## LOCATION - is the associated location of the tag. It is either on the trunk | ## LOCATION - is the associated location of the tag. It is either on the trunk |
## or branch. | ## or branch. |
## Note that the ACTION root does not have a DIRECTION or LOCATION | ## Note that the ACTION root does not have a DIRECTION or LOCATION |
|
|
## Note that the ACTION branch does not have a DIRECTION or LOCATION | ## Note that the ACTION branch does not have a DIRECTION or LOCATION |
## as it is the branch. | ## as it is the branch. |
## | ## |
## (1) TASK-[BRANCH NAME]-root - tag on trunk representing the |
## (1) TASK_[BRANCH NAME]-root - tag on trunk representing the |
## root of the branch. | ## root of the branch. |
## | ## |
## (2) TASK-[BRANCH NAME]-branch - head of the branch |
## (2) TASK_[BRANCH NAME]-branch - head of the branch |
## | ## |
## | ## |
## (3) TASK-[BRANCH NAME]-merged_out_from_trunk - The tag on the trunk which |
## (3) TASK_[BRANCH NAME]-merged_out_from_trunk - The tag on the trunk which |
## marks the place where the last merge out operation occurred. | ## marks the place where the last merge out operation occurred. |
## It could also be said that changes on the trunk up | ## It could also be said that changes on the trunk up |
## to this label are contained on the branch. | ## to this label are contained on the branch. |
## | ## |
## (4) TASK-[BRANCH NAME]-merged_out_to_branch - The tag on the branch which |
## (4) TASK_[BRANCH NAME]-merged_out_to_branch - The tag on the branch which |
## marks the place where the last merge out operation occurred. | ## marks the place where the last merge out operation occurred. |
## | ## |
## (5) TASK-[BRANCH NAME]-merged_in_to_trunk - The tag on the trunk which |
## (5) TASK_[BRANCH NAME]-merged_in_to_trunk - The tag on the trunk which |
## marks the place where the last merge in operation occurred. | ## marks the place where the last merge in operation occurred. |
## | ## |
## (6) TASK-[BRANCH NAME]-merged_in_from_branch - The tag on the branch which |
## (6) TASK_[BRANCH NAME]-merged_in_from_branch - The tag on the branch which |
## marks the place where the last merge in operation occurred. | ## marks the place where the last merge in operation occurred. |
## It could also be said that changes on the branch up to | ## It could also be said that changes on the branch up to |
## this label have been merged into the trunk. | ## this label have been merged into the trunk. |
## | ## |
## | ## |
## For Example if the branch name is PEPXX_FUNC then the following tags will |
## For Example if the branch name is PEPXXNewFunc then the following tags will |
## be in use: | ## be in use: |
## TASK-PEPXX_FUNC-root |
## TASK_PEPXXNewFunc-root |
## TASK-PEPXX_FUNC-branch |
## TASK_PEPXXNewFunc-branch |
## TASK-PEPXX_FUNC-merged_in_to_trunk |
## TASK_PEPXXNewFunc-merged_in_to_trunk |
## TASK-PEPXX_FUNC-merged_out_from_trunk |
## TASK_PEPXXNewFunc-merged_out_from_trunk |
## TASK-PEPXX_FUNC-merged_in_from_branch |
## TASK_PEPXXNewFunc-merged_in_from_branch |
## TASK-PEPXX_FUNC-merged_out_to_branch |
## TASK_PEPXXNewFunc-merged_out_to_branch |
## | ## |
## | ## |
## Consider the following diagram: | ## Consider the following diagram: |
|
|
PATCH_FULL_PATH = $(call pathsearch,$(PATCH)) | PATCH_FULL_PATH = $(call pathsearch,$(PATCH)) |
| |
| |
|
|
|
|
# =============================================================================== | # =============================================================================== |
# Shell internal commands | # Shell internal commands |
# =============================================================================== | # =============================================================================== |
|
|
| |
FILE = $(FILE_PATH)/$(FILE_NAME) | FILE = $(FILE_PATH)/$(FILE_NAME) |
| |
|
################################### |
|
# BNAME_INVAID_CHAR |
|
# BNAME and NEW_BNAME invalid charecters |
|
DASH = - |
|
UNDERLINE = _ |
| |
# =============================================================================== | # =============================================================================== |
# The remaining defaults will be set only if they are not already set. | # The remaining defaults will be set only if they are not already set. |
|
|
| |
RDIFF_OPTIONS ?= | RDIFF_OPTIONS ?= |
| |
|
VALID_TAGS = $(shell $(CVS) rlog $(MODULE_NAME)/$(BFILE) | $(GREP) TASK) |
| |
# ================================================================================== | # ================================================================================== |
# Rule definitions starts here | # Rule definitions starts here |
|
|
# assure that a minimum of commands exist. | # assure that a minimum of commands exist. |
# | # |
# Without ECHO and CVS essentially nothing can be done. | # Without ECHO and CVS essentially nothing can be done. |
exists_minimum: exists_MAKE exists_CVS exists_ECHO |
exists_minimum: exists_MAKE exists_CVS exists_ECHO exists_GREP |
| |
# ====================== | # ====================== |
# assure that MAKE exists | # assure that MAKE exists |
# | # |
exists_MAKE: FORCE | exists_MAKE: FORCE |
ifeq ($(MAKE_FULL_PATH),) | ifeq ($(MAKE_FULL_PATH),) |
$(error MAKE command ($(MAKE)) not found in PATH $(PATH)) |
$(error ERROR: MAKE command ($(MAKE)) not found in PATH $(PATH)) |
endif | endif |
| |
| |
|
|
# | # |
exists_CVS: FORCE | exists_CVS: FORCE |
ifeq ($(CVS_FULL_PATH),) | ifeq ($(CVS_FULL_PATH),) |
$(error CVS command ($(CVS)) not found in PATH $(PATH)) |
$(error ERROR: CVS command ($(CVS)) not found in PATH $(PATH)) |
endif | endif |
| |
| |
|
|
# | # |
exists_PATCH: FORCE | exists_PATCH: FORCE |
ifeq ($(PATCH_FULL_PATH),) | ifeq ($(PATCH_FULL_PATH),) |
$(error PATCH command ($(PATCH)) not found in PATH $(PATH)) |
$(error ERROR: PATCH command ($(PATCH)) not found in PATH $(PATH)) |
endif | endif |
| |
# ====================== | # ====================== |
|
|
# | # |
exists_GREP: FORCE | exists_GREP: FORCE |
ifeq ($(GREP_FULL_PATH),) | ifeq ($(GREP_FULL_PATH),) |
$(error GREP command ($(GREP)) not found in PATH $(PATH)) |
$(error ERROR: GREP command ($(GREP)) not found in PATH $(PATH)) |
endif | endif |
| |
# ====================== | # ====================== |
|
|
# | # |
exists_ECHO: FORCE | exists_ECHO: FORCE |
ifeq ($(ECHO_FULL_PATH),) | ifeq ($(ECHO_FULL_PATH),) |
$(error ECHO command ($(ECHO)) not found in PATH $(PATH)) |
$(error ERROR: ECHO command ($(ECHO)) not found in PATH $(PATH)) |
endif | endif |
| |
| |
| |
# ====================== | # ====================== |
# assure that BNAME exists |
# assure that BNAME exists (is not null) |
# | # |
exists_BNAME: FORCE | exists_BNAME: FORCE |
ifeq ($(BNAME),) | ifeq ($(BNAME),) |
@ $(ECHO) |
$(error ERROR: BNAME not set, set it on the command line ) |
@ $(ECHO) " BNAME not set, set is on the command line. " |
|
@ $(ECHO) " IE: $(MAKE) -f $(FILE_NAME) [command] BNAME=PEPX_Y " |
|
@ $(ECHO) |
|
@ $(MAKE) -f $(FILE) parm_error PARM_MSG="BNAME not set" |
|
endif | endif |
| |
|
|
|
valid_BNAME: exists_BNAME |
|
ifneq ($(BNAME) ,$(subst $(DASH), X ,$(BNAME))) |
|
@ $(error ERROR: BNAME contains invalid ($(DASH)) charecters) |
|
endif |
|
ifneq ($(BNAME) ,$(subst $(UNDERLINE), X ,$(BNAME))) |
|
@ $(error ERROR: BNAME contains invalid ($(UNDERLINE)) charecters) |
|
endif |
|
|
|
|
|
|
|
valid_NEW_BNAME: exists_NEW_BNAME |
|
ifneq ($(NEW_BNAME) ,$(subst $(DASH), X ,$(NEW_BNAME))) |
|
@ $(error ERROR: NEW_BNAME contains invalid ($(DASH)) charecters) |
|
endif |
|
ifneq ($(NEW_BNAME) ,$(subst $(UNDERLINE), X ,$(NEW_BNAME))) |
|
@ $(error ERROR: NEW_BNAME contains invalid ($(UNDERLINE)) charecters) |
|
endif |
|
|
|
|
# ====================== | # ====================== |
# assure that NEW_BNAME exists |
# assure that BNAME exist in cvs |
|
# |
|
exists_cvs_BNAME: exists_BNAME |
|
ifneq (TASK_$(BNAME)-branch, $(findstring TASK_$(BNAME)-branch, $(VALID_TAGS))) |
|
@ $(error ERROR: BNAME, $(BNAME), does not exists in cvs module $(MODULE_NAME)) |
|
endif |
|
|
|
|
|
|
|
|
|
# ====================== |
|
# assure that BNAME does not exist in cvs. |
|
# |
|
not_exists_cvs_BNAME: exists_BNAME |
|
ifeq (TASK_$(BNAME)-branch, $(findstring TASK_$(BNAME)-branch, $(VALID_TAGS))) |
|
@ $(error ERROR: BNAME, $(BNAME), exists in cvs module $(MODULE_NAME)) |
|
endif |
|
|
|
|
|
# ====================== |
|
# assure that NEW_BNAME exists (is not null) |
# | # |
exists_NEW_BNAME: FORCE | exists_NEW_BNAME: FORCE |
ifeq ($(NEW_BNAME),) | ifeq ($(NEW_BNAME),) |
@ $(ECHO) |
@ $(error ERROR: NEW_BNAME not set, set is on the command line.) |
@ $(ECHO) " NEW_BNAME not set, set is on the command line. " |
endif |
@ $(ECHO) " IE: $(MAKE) -f $(FILE_NAME) [command] NEW_BNAME=PEPX_Y " |
|
@ $(ECHO) |
|
@ $(MAKE) -f $(FILE) parm_error PARM_MSG="NEW_BNAME not set" |
# ====================== |
|
# assure that NEW_BNAME exist in cvs |
|
# |
|
exists_cvs_NEW_BNAME: exists_NEW_BNAME |
|
ifneq (TASK_$(NEW_BNAME)-branch, $(findstring TASK_$(NEW_BNAME)-branch, $(VALID_TAGS))) |
|
@ $(error ERROR: NEW_BNAME, $(NEW_BNAME), does not exists in cvs module $(MODULE_NAME) ) |
endif | endif |
| |
parm_error: FORCE |
|
$(error $(PARM_MSG)) |
|
|
|
|
# ====================== |
|
# assure that NEW_BNAME does not exist in cvs. |
|
# |
|
not_exists_cvs_NEW_BNAME: exists_NEW_BNAME |
|
ifeq (TASK_$(NEW_BNAME)-branch, $(findstring TASK_$(NEW_BNAME)-branch, $(VALID_TAGS))) |
|
@ $(error ERROR: NEW_BNAME, $(NEW_BNAME), exists in cvs module $(MODULE_NAME) ) |
|
endif |
| |
| |
| |
|
|
@ $(ECHO) "RDIFF_OPTIONS = $(RDIFF_OPTIONS)" | @ $(ECHO) "RDIFF_OPTIONS = $(RDIFF_OPTIONS)" |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) "For example" | @ $(ECHO) "For example" |
@ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_checkout BNAME=PEPX_Y MODULE=module" |
@ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_checkout BNAME=PEPXFunc MODULE=module" |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) ======================================================================= | @ $(ECHO) ======================================================================= |
| |
|
|
## Create a "merged_out_to_branch" tag for later use in the merge out. | ## Create a "merged_out_to_branch" tag for later use in the merge out. |
## | ## |
## | ## |
branch_create: exists_minimum exists_BNAME |
branch_create: exists_minimum valid_BNAME not_exists_cvs_BNAME |
$(CVS) rtag -f TASK-$(BNAME)-root $(MODULE_NAME) |
$(CVS) rtag -f TASK_$(BNAME)-root $(MODULE_NAME) |
$(CVS) rtag -b -r TASK-$(BNAME)-root TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rtag -b -r TASK_$(BNAME)-root TASK_$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-root TASK_$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-root TASK_$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-branch TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-branch TASK_$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-branch TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-branch TASK_$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
| |
| |
## ===================== | ## ===================== |
|
|
## | ## |
## | ## |
## Process: | ## Process: |
## Rename TASK-[BNAME]-root to TASK-[NEW_BNAME]-root |
## Rename TASK_[BNAME]-root to TASK_[NEW_BNAME]-root |
## Rename TASK-[BNAME]-branch to TASK-[NEW_BNAME]-branch |
## Rename TASK_[BNAME]-branch to TASK_[NEW_BNAME]-branch |
## Rename TASK-[BNAME]-merged_in_to_trunk |
## Rename TASK_[BNAME]-merged_in_to_trunk |
## to TASK-[NEW_BNAME]-merged_in_to_trunk |
## to TASK_[NEW_BNAME]-merged_in_to_trunk |
## Rename TASK-[BNAME]-merged_out_from_trunk |
## Rename TASK_[BNAME]-merged_out_from_trunk |
## to TASK-[NEW_BNAME]-merged_out_from_trunk |
## to TASK_[NEW_BNAME]-merged_out_from_trunk |
## Rename TASK-[BNAME]-merged_in_from_branch |
## Rename TASK_[BNAME]-merged_in_from_branch |
## to TASK-[NEW_BNAME]-merged_in_from_branch |
## to TASK_[NEW_BNAME]-merged_in_from_branch |
## Rename TASK-[BNAME]-merged_out_to_branch |
## Rename TASK_[BNAME]-merged_out_to_branch |
## to TASK-[NEW_BNAME]-merged_out_to_branch |
## to TASK_[NEW_BNAME]-merged_out_to_branch |
## Delete Branch TASK-[BNAME] |
## Delete Branch TASK_[BNAME] |
## |
## |
branch_rename: exists_minimum exists_BNAME exists_NEW_BNAME |
branch_rename: exists_minimum exists_cvs_BNAME not_exists_cvs_NEW_BNAME valid_NEW_BNAME |
$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(NEW_BNAME)-root $(MODULE_NAME) |
ifeq ($(BNAME),$(NEW_BNAME)) |
$(CVS) rtag -b -r TASK-$(BNAME)-branch TASK-$(NEW_BNAME)-branch $(MODULE_NAME) |
$(error ERROR: BNAME=NEW_BNAME=($(BNAME)), They must be different.) |
$(CVS) rtag -r TASK-$(BNAME)-merged_in_to_trunk TASK-$(NEW_BNAME)-merged_in_to_trunk $(MODULE_NAME) |
endif |
$(CVS) rtag -r TASK-$(BNAME)-merged_out_from_trunk TASK-$(NEW_BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-root TASK_$(NEW_BNAME)-root $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-merged_in_from_branch TASK-$(NEW_BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -b -r TASK_$(BNAME)-branch TASK_$(NEW_BNAME)-branch $(MODULE_NAME) |
$(CVS) rtag -r TASK-$(BNAME)-merged_out_to_branch TASK-$(NEW_BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -r TASK_$(BNAME)-merged_in_to_trunk TASK_$(NEW_BNAME)-merged_in_to_trunk $(MODULE_NAME) |
|
$(CVS) rtag -r TASK_$(BNAME)-merged_out_from_trunk TASK_$(NEW_BNAME)-merged_out_from_trunk $(MODULE_NAME) |
|
$(CVS) rtag -r TASK_$(BNAME)-merged_in_from_branch TASK_$(NEW_BNAME)-merged_in_from_branch $(MODULE_NAME) |
|
$(CVS) rtag -r TASK_$(BNAME)-merged_out_to_branch TASK_$(NEW_BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME) | $(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME) |
| |
| |
|
|
## Delete the branch | ## Delete the branch |
## | ## |
## | ## |
branch_delete: exists_minimum exists_BNAME |
branch_delete: exists_minimum exists_cvs_BNAME |
$(CVS) rtag -d TASK-$(BNAME)-root $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-root $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -B -d TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rtag -B -d TASK_$(BNAME)-branch $(MODULE_NAME) |
| |
## ===================== | ## ===================== |
## | ## |
|
|
## Note: Must be executed from the directory where the top pegasus | ## Note: Must be executed from the directory where the top pegasus |
## directory shall be placed. | ## directory shall be placed. |
## | ## |
branch_co branch_checkout: exists_minimum |
branch_co branch_checkout: exists_minimum exists_cvs_BNAME |
$(CVS) checkout -r TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) checkout -r TASK_$(BNAME)-branch $(MODULE_NAME) |
| |
| |
## ===================== | ## ===================== |
|
|
### Function: branch_diff_to_root - diffs branch to its root | ### Function: branch_diff_to_root - diffs branch to its root |
## Usage: branch_diff_to_root BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] | ## Usage: branch_diff_to_root BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] |
## | ## |
branch_diff_to_root: exists_minimum exists_BNAME |
branch_diff_to_root: exists_minimum exists_cvs_BNAME |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-root -r TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK_$(BNAME)-root -r TASK_$(BNAME)-branch $(MODULE_NAME) |
| |
## ===================== | ## ===================== |
## | ## |
### Function: branch_diff_to_trunk - diffs branch head to the head of the trunk | ### Function: branch_diff_to_trunk - diffs branch head to the head of the trunk |
## Usage: branch_diff_to_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] | ## Usage: branch_diff_to_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] |
## | ## |
branch_diff_to_trunk: exists_minimum exists_BNAME |
branch_diff_to_trunk: exists_minimum exists_cvs_BNAME |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK_$(BNAME)-branch $(MODULE_NAME) |
| |
## ===================== | ## ===================== |
## | ## |
|
|
### branch since the last merge in. | ### branch since the last merge in. |
## Usage: branch_diff_unmerged_branch BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] | ## Usage: branch_diff_unmerged_branch BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] |
## | ## |
branch_diff_unmerged_branch: exists_minimum exists_BNAME |
branch_diff_unmerged_branch: exists_minimum exists_cvs_BNAME |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-merged_in_from_branch -r TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK_$(BNAME)-merged_in_from_branch -r TASK_$(BNAME)-branch $(MODULE_NAME) |
| |
| |
## ===================== | ## ===================== |
|
|
### trunk since the last merge out | ### trunk since the last merge out |
## Usage: branch_diff_unmerged_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] | ## Usage: branch_diff_unmerged_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)] |
## | ## |
branch_diff_unmerged_trunk: exists_minimum exists_BNAME |
branch_diff_unmerged_trunk: exists_minimum exists_cvs_BNAME |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK_$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
| |
| |
## ===================== | ## ===================== |
|
|
## - Move the merged_in_to_trunk tag to the merging_in_to_trunk tag | ## - Move the merged_in_to_trunk tag to the merging_in_to_trunk tag |
## - Move the merged_in_from_branch tag to | ## - Move the merged_in_from_branch tag to |
## the merging_in_from_branch tag | ## the merging_in_from_branch tag |
## - Delete the TASK-$(BNAME)-merging_in_to_trunk tag |
## - Delete the TASK_$(BNAME)-merging_in_to_trunk tag |
## - Delete the TASK-$(BNAME)-merging_in_from_branch tag |
## - Delete the TASK_$(BNAME)-merging_in_from_branch tag |
## | ## |
## | ## |
branch_merge_in: exists_minimum exists_BNAME |
branch_merge_in: exists_minimum exists_cvs_BNAME |
$(CVS) rtag -F TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -F TASK_$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK-$(BNAME)-branch TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-branch TASK_$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) checkout -P $(MODULE_NAME) | $(CVS) checkout -P $(MODULE_NAME) |
$(CD) $(MODULE_NAME) | $(CD) $(MODULE_NAME) |
$(CVS) update -P -d -j TASK-$(BNAME)-merged_in_from_branch -j TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) update -P -d -j TASK_$(BNAME)-merged_in_from_branch -j TASK_$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) Differences from branch now merged into | @ $(ECHO) Differences from branch now merged into |
@ $(ECHO) the local working copy of the trunk. | @ $(ECHO) the local working copy of the trunk. |
|
|
@ $(ECHO) Now manually: | @ $(ECHO) Now manually: |
@ $(ECHO) 1. Resolve any merge conflicts. | @ $(ECHO) 1. Resolve any merge conflicts. |
@ $(ECHO) 2. Review differences to assure commit integrity. | @ $(ECHO) 2. Review differences to assure commit integrity. |
@ $(ECHO) That is don't check in unintended white space changes |
@ $(ECHO) That is do not check in unintended white space changes, |
@ $(ECHO) test or debug code. | @ $(ECHO) test or debug code. |
@ $(ECHO) 3. Check for aded files and directories and do a cvs add | @ $(ECHO) 3. Check for aded files and directories and do a cvs add |
@ $(ECHO) command for them. | @ $(ECHO) command for them. |
|
|
@ $(ECHO) | @ $(ECHO) |
| |
| |
branch_merge_in_ci branch_merge_in_commit: exists_minimum exists_BNAME |
branch_merge_in_ci branch_merge_in_commit: exists_minimum exists_cvs_BNAME |
$(CD) $(MODULE_NAME) | $(CD) $(MODULE_NAME) |
$(CVS) commit | $(CVS) commit |
@ $(ECHO) | @ $(ECHO) |
|
|
$(MAKE) -f $(FILE) branch_merge_in_finish BNAME=$(BNAME) | $(MAKE) -f $(FILE) branch_merge_in_finish BNAME=$(BNAME) |
| |
| |
branch_merge_in_finish: exists_minimum exists_BNAME |
branch_merge_in_finish: exists_minimum exists_cvs_BNAME |
$(CVS) rtag -F -r TASK-$(BNAME)-merging_in_to_trunk TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-merging_in_to_trunk TASK_$(BNAME)-merged_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK-$(BNAME)-merging_in_from_branch TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-merging_in_from_branch TASK_$(BNAME)-merged_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_in_to_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_in_from_branch $(MODULE_NAME) |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) Branch Management tags have now been updated to reflect the new branch status. | @ $(ECHO) Branch Management tags have now been updated to reflect the new branch status. |
@ $(ECHO) | @ $(ECHO) |
|
|
## - Move the merged_out_from_trunk tag to the merging_out_from_trunk tag | ## - Move the merged_out_from_trunk tag to the merging_out_from_trunk tag |
## - Move the merged_out_to_branch tag to | ## - Move the merged_out_to_branch tag to |
## the merging_out_to_branch tag | ## the merging_out_to_branch tag |
## - Delete the TASK-$(BNAME)-merging_out_from_trunk tag |
## - Delete the TASK_$(BNAME)-merging_out_from_trunk tag |
## - Delete the TASK-$(BNAME)-merging_out_to_branch tag |
## - Delete the TASK_$(BNAME)-merging_out_to_branch tag |
## | ## |
## | ## |
branch_merge_out: exists_minimum exists_BNAME |
branch_merge_out: exists_minimum exists_cvs_BNAME |
$(CVS) rtag -F TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -F TASK_$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK-$(BNAME)-branch TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-branch TASK_$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
$(CVS) checkout -P -r TASK-$(BNAME)-branch $(MODULE_NAME) |
$(CVS) checkout -P -r TASK_$(BNAME)-branch $(MODULE_NAME) |
$(CD) $(MODULE_NAME) | $(CD) $(MODULE_NAME) |
$(CVS) update -d -j TASK-$(BNAME)-merged_out_from_trunk -j TASK-$(BNAME)-merging_out_from_trunk |
$(CVS) update -d -j TASK_$(BNAME)-merged_out_from_trunk -j TASK_$(BNAME)-merging_out_from_trunk |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) Differences from trunk now merged into | @ $(ECHO) Differences from trunk now merged into |
@ $(ECHO) the local working copy of the branch. | @ $(ECHO) the local working copy of the branch. |
|
|
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) | @ $(ECHO) |
| |
branch_merge_out_ci branch_merge_out_commit: exists_minimum exists_BNAME |
branch_merge_out_ci branch_merge_out_commit: exists_minimum exists_cvs_BNAME |
$(CD) $(MODULE_NAME) | $(CD) $(MODULE_NAME) |
$(CVS) commit | $(CVS) commit |
@ $(ECHO) | @ $(ECHO) |
|
|
@ $(ECHO) | @ $(ECHO) |
$(MAKE) -f $(FILE) branch_merge_out_finish BNAME=$(BNAME) | $(MAKE) -f $(FILE) branch_merge_out_finish BNAME=$(BNAME) |
| |
branch_merge_out_finish: exists_minimum exists_BNAME |
branch_merge_out_finish: exists_minimum exists_cvs_BNAME |
$(CVS) rtag -F -r TASK-$(BNAME)-merging_out_from_trunk TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-merging_out_from_trunk TASK_$(BNAME)-merged_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -F -r TASK-$(BNAME)-merging_out_to_branch TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -F -r TASK_$(BNAME)-merging_out_to_branch TASK_$(BNAME)-merged_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_out_from_trunk $(MODULE_NAME) |
$(CVS) rtag -d TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
$(CVS) rtag -d TASK_$(BNAME)-merging_out_to_branch $(MODULE_NAME) |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) Branch Management tags have now been updated to reflect the new branch status. | @ $(ECHO) Branch Management tags have now been updated to reflect the new branch status. |
@ $(ECHO) | @ $(ECHO) |
|
|
## branch_rename BNAME=(BRANCH_NAME)_new NEW_BNAME=(BRANCH NAME)_X | ## branch_rename BNAME=(BRANCH_NAME)_new NEW_BNAME=(BRANCH NAME)_X |
## | ## |
## | ## |
branch_migrate: exists_minimum exists_BNAME |
branch_migrate: exists_minimum exists_cvs_BNAME |
$(MAKE) -f $(FILE) branch_diff_unmerged_branch BNAME=$(BNAME) 1>branch_migrate_diffs | $(MAKE) -f $(FILE) branch_diff_unmerged_branch BNAME=$(BNAME) 1>branch_migrate_diffs |
$(MAKE) -f $(FILE) branch_create BNAME=$(BNAME)_new | $(MAKE) -f $(FILE) branch_create BNAME=$(BNAME)_new |
$(CVS) checkout -P -r TASK-$(BNAME)_new-branch $(MODULE_NAME) |
$(CVS) checkout -P -r TASK_$(BNAME)_new-branch $(MODULE_NAME) |
$(PATCH) -b -p0 --global-reject-file=global-reject-patch-file < branch_migrate_diffs | $(PATCH) -b -p0 --global-reject-file=global-reject-patch-file < branch_migrate_diffs |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) | @ $(ECHO) |
|
|
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) | @ $(ECHO) |
| |
branch_migrate_ci branch_migrate_commit: exists_minimum exists_BNAME |
branch_migrate_ci branch_migrate_commit: exists_minimum exists_cvs_BNAME |
$(CD) $(MODULE_NAME) | $(CD) $(MODULE_NAME) |
$(CVS) commit | $(CVS) commit |
@ $(ECHO) | @ $(ECHO) |
|
|
$(MAKE) -f $(FILE) branch_diff_to_root BNAME=$(BNAME)_new > diff_to_root_$(BNAME)_new | $(MAKE) -f $(FILE) branch_diff_to_root BNAME=$(BNAME)_new > diff_to_root_$(BNAME)_new |
@ $(ECHO) Do a | @ $(ECHO) Do a |
@ $(ECHO) " diff diff_to_root_$(BNAME) diff_to_root_$(BNAME)_new" | @ $(ECHO) " diff diff_to_root_$(BNAME) diff_to_root_$(BNAME)_new" |
@ $(ECHO) to verify TASK-$(BNAME)_new has all the changes. |
@ $(ECHO) to verify TASK_$(BNAME)_new has all the changes. |
@ $(ECHO) | @ $(ECHO) |
@ $(ECHO) Then do a | @ $(ECHO) Then do a |
@ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_migrate_finish BNAME=$(BNAME)" | @ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_migrate_finish BNAME=$(BNAME)" |
@ $(ECHO) which will remove TASK-$(BNAME), the old branch, and then rename TASK-$(BNAME)_new to TASK-$(BNAME) |
@ $(ECHO) which will remove TASK_$(BNAME), the old branch, and then rename TASK_$(BNAME)_new to TASK_$(BNAME) |
@ $(ECHO) Alternatively you can keep the old branch around for a while and just | @ $(ECHO) Alternatively you can keep the old branch around for a while and just |
@ $(ECHO) rename the new branch by doing a | @ $(ECHO) rename the new branch by doing a |
@ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_rename BNAME=$(BNAME)_new NEW_BNAME=($BNAME)_X" | @ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_rename BNAME=$(BNAME)_new NEW_BNAME=($BNAME)_X" |
@ $(ECHO) where X is something you chose to identify the new branch. | @ $(ECHO) where X is something you chose to identify the new branch. |
| |
| |
branch_migrate_finish: exists_minimum exists_BNAME |
branch_migrate_finish: exists_minimum exists_cvs_BNAME |
$(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME) | $(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME) |
$(MAKE) -f $(FILE) branch_rename BNAME=$(BNAME)_new NEW_BNAME=$(BNAME) | $(MAKE) -f $(FILE) branch_rename BNAME=$(BNAME)_new NEW_BNAME=$(BNAME) |
@ $(ECHO) | @ $(ECHO) |