(file) Return to TaskMakefile CVS log (file) (dir) Up to [Pegasus] / pegasus / mak

   1 martin 1.11 #//%LICENSE////////////////////////////////////////////////////////////////
   2 jim.wunderlich 1.1  #// 
   3 martin         1.11 #// Licensed to The Open Group (TOG) under one or more contributor license
   4                     #// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
   5                     #// this work for additional information regarding copyright ownership.
   6                     #// Each contributor licenses this file to you under the OpenPegasus Open
   7                     #// Source License; you may not use this file except in compliance with the
   8                     #// License.
   9                     #// 
  10                     #// Permission is hereby granted, free of charge, to any person obtaining a
  11                     #// copy of this software and associated documentation files (the "Software"),
  12                     #// to deal in the Software without restriction, including without limitation
  13                     #// the rights to use, copy, modify, merge, publish, distribute, sublicense,
  14                     #// and/or sell copies of the Software, and to permit persons to whom the
  15                     #// Software is furnished to do so, subject to the following conditions:
  16                     #// 
  17                     #// The above copyright notice and this permission notice shall be included
  18                     #// in all copies or substantial portions of the Software.
  19                     #// 
  20                     #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  21                     #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
  22                     #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  23                     #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  24 martin         1.11 #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  25                     #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  26                     #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  27                     #// 
  28                     #//////////////////////////////////////////////////////////////////////////
  29 jim.wunderlich 1.1  
  30                     # ============================================================================
  31                     # File Specific coding convention
  32                     # ====================================
  33                     #
  34                     # There are to levels of usage statements supported within this Makefile.
  35                     # They are usage and usage_all. These are both implemented by doing a search 
  36 jim.wunderlich 1.8  # across the file for 3 or 2 consecutive # characters.
  37 jim.wunderlich 1.1  #
  38 jim.wunderlich 1.8  # This means all comments not to be displayed as part of these usage statements 
  39                     # must be made with a single # character.
  40 jim.wunderlich 1.1  #
  41                     # ============================================================================
  42                     
  43                     ### =========================================================================
  44                     ###
  45                     ### Makefile for managing a Pegasus source task branch 
  46                     ###
  47                     ### Refer to OpenPegasus PEP108 and PEP 248 for more information about
  48                     ### OpenPegasus use of task branches and processes within OpenPegasus
  49                     ###
  50                     ### NOTE: 
  51                     ###    This is a Preliminary version for testing. 
  52                     ###    The Module is set to junk rather than pegasus
  53                     ###    This has not been tested on Windows
  54                     ###
  55                     ## Author: Jim Wunderlich (Jim_Wunderlich@prodigy.net)
  56                     ##
  57                     ### ========================================================================
  58                     ###
  59                     ### General Guidelines:
  60 jim.wunderlich 1.8  ###   Many of the rules will operate from any directory while others require
  61 jim.wunderlich 1.1  ###   them to be executed at a specific directory. The commands that require a
  62                     ###   a specific location will return an error if they are not executed at the 
  63                     ###   appropriate directory. Here are specifics:
  64                     ###   
  65                     ###     The following are directory position independent.
  66                     ###        branch_create,        branch_delete,           branch_rename
  67                     ###        branch_lists,         usage                    usage_all
  68 jim.wunderlich 1.2  ###        defaults,             branch_diff_to_root,     branch_diff_to_trunk
  69 jim.wunderlich 1.1  ###        branch_diff_unmerged_branch,
  70                     ###        branch_diff_unmerged_trunk
  71                     ###    
  72 jim.wunderlich 1.8  ###     The following should be executed from above the $(MODULE) directory.
  73 jim.wunderlich 1.1  ###     Note that some of these commands instantiate the working copy of the 
  74                     ###     branch source tree(They have a * before and after them ). 
  75                     ###        * branch_checkout  *, branch_status 
  76                     ###        * branch_merge_in  *, branch_merge_in_commit,  branch_merge_in_finish
  77                     ###        * branch_merge_out *, branch_merge_out_commit, branch_merge_out_finish
  78                     ###        * branch_migrate   *, branch_migrate_commit,   branch_migrate_finish
  79                     ###
  80 jim.wunderlich 1.8  ###     The following can be executed from anywhere within a working branch
  81 jim.wunderlich 1.1  ###     source tree.
  82                     ###        branch_commit,        branch_diff
  83                     ###
  84 jim.wunderlich 1.8  ###   These rules all depend on the user having already logged into CVS with 
  85 jim.wunderlich 1.1  ###   appropriate user permissions.
  86                     ###
  87 jim.wunderlich 1.8  ###   These rules do not set or maintain CVS defaults. All CVS defaults should 
  88                     ###   come from the user's .cvsrc file. These rules set specific options that
  89 jim.wunderlich 1.1  ###   are required for the operation to be performed.
  90                     ###
  91 jim.wunderlich 1.8  ###  Branch Management Terminology:
  92 jim.wunderlich 1.5  ###
  93 jim.wunderlich 1.8  ###   branch merge out - The act of merging changes from the trunk, that have occurred
  94 jim.wunderlich 1.5  ###                      since the branch was either created or last merged out
  95                     ###                      into the branch.
  96 jim.wunderlich 1.8  ###   branch merge in  - The act of merging changes from the branch, that have occurred
  97 jim.wunderlich 1.5  ###                      since the branch was either created or last merged in, 
  98                     ###                      into the trunk.
  99                     ###   branch migration - The act of migrating all the changes on the branch, that have
 100                     ###                      not been merged into the trunk, to another branch rooted at 
 101                     ###                      the current head of the trunk.
 102 jim.wunderlich 1.1  ###
 103                     ##  Functions:
 104                     ##       usage
 105                     ##       usage_all
 106                     ##       defaults
 107                     ##
 108                     ##       branch_list
 109                     ##       branch_status
 110                     ##       branch_create
 111                     ##       branch_rename
 112                     ##       branch_delete
 113 jim.wunderlich 1.2  ##       branch_checkout
 114                     ##       branch_commit
 115 jim.wunderlich 1.1  ##       branch_diff_to_root
 116 jim.wunderlich 1.8  ##       branch_diff_unmerged_branch
 117 jim.wunderlich 1.1  ##       branch_diff_unmerged_trunk
 118 jim.wunderlich 1.8  ##       branch_diff_to_trunk
 119 jim.wunderlich 1.1  ##       branch_merge_in
 120                     ##       branch_merge_out
 121                     ##       branch_migrate
 122                     ##       
 123                     ## ==========================================================================
 124                     ##
 125                     ## Tags created/maintained to manage the task branch by the rules within this Makefile
 126                     ##
 127 jim.wunderlich 1.7  ## The [BRANCH NAME] is expected to be the combination of a PEP number or 
 128 jim.wunderlich 1.8  ## BUG number and functionality. For example PEPXXX_ConfigChanges or 
 129                     ## BUGXXXX_ConfigChanges. The branch name should use Camel Notation and 
 130                     ## should not contain dash (-) characters.
 131                     ## Note that CVS further restricts this to not use any of the following
 132                     ## characters enclosed within []: [$ , . : ; @].
 133 jim.wunderlich 1.1  ##
 134                     ##
 135                     ## Branch and branch management tag naming convention
 136                     ##
 137 jim.wunderlich 1.8  ## TASK-[BRANCH_NAME]-[ACTION]_[DIRECTION]_[LOCATION]
 138 jim.wunderlich 1.1  ##
 139                     ## Where:
 140                     ##   TASK         - is constant to associate all tags to a TASK branch
 141                     ##   BRANCH_NAME  - is the name of the branch as described above.
 142                     ##   ACTION       - is the action or purpose of the tag. It is one of the following:
 143                     ##                  root, branch, merged_in, merged_out, merging_in or merging_out.
 144 jim.wunderlich 1.5  ##   DIRECTION    - is the direction of the ACTION relative to the LOCATION, either
 145                     ##                  to or from.
 146 jim.wunderlich 1.1  ##   LOCATION     - is the associated location of the tag. It is either on the trunk
 147                     ##                    or branch.
 148                     ##                  Note that the ACTION root does not have a DIRECTION or LOCATION 
 149                     ##                    as it is always on the trunk. This also means that task branches
 150                     ##                    do not support sub branches. 
 151                     ##                  Note that the ACTION branch does not have a DIRECTION or LOCATION
 152                     ##                    as it is the branch.
 153                     ##
 154 jim.wunderlich 1.8  ##   (1) TASK-[BRANCH NAME]-root    - tag on trunk representing the 
 155 jim.wunderlich 1.1  ##                                   root of the branch.
 156                     ##
 157 jim.wunderlich 1.8  ##   (2) TASK-[BRANCH NAME]-branch  - head of the branch
 158 jim.wunderlich 1.1  ## 
 159                     ##
 160 jim.wunderlich 1.8  ##   (3) TASK-[BRANCH NAME]-merged_out_from_trunk   - The tag on the trunk which
 161 jim.wunderlich 1.1  ##                        marks the place where the last merge out operation occurred.
 162                     ##                        It could also be said that changes on the trunk up 
 163                     ##                        to this label are contained on the branch.
 164                     ##
 165 jim.wunderlich 1.8  ##   (4) TASK-[BRANCH NAME]-merged_out_to_branch  - The tag on the branch which
 166 jim.wunderlich 1.1  ##                        marks the place where the last merge out operation occurred.
 167                     ##
 168 jim.wunderlich 1.8  ##   (5) TASK-[BRANCH NAME]-merged_in_to_trunk    - The tag on the trunk which
 169 jim.wunderlich 1.1  ##                        marks the place where the last merge in operation occurred.
 170                     ##
 171 jim.wunderlich 1.8  ##   (6) TASK-[BRANCH NAME]-merged_in_from_branch   - The tag on the branch which
 172 jim.wunderlich 1.1  ##                        marks the place where the last merge in operation occurred.
 173                     ##                        It could also be said that changes on the branch up to 
 174                     ##                        this label have been merged into the trunk.
 175                     ##
 176                     ##
 177 jim.wunderlich 1.8  ## For Example if the branch name is PEPXX_NewFunc then the following tags
 178                     ## will be in use:
 179                     ##     TASK-PEPXX_NewFunc-root
 180                     ##     TASK-PEPXX_NewFunc-branch
 181                     ##     TASK-PEPXX_NewFunc-merged_in_to_trunk
 182                     ##     TASK-PEPXX_NewFunc-merged_out_from_trunk
 183                     ##     TASK-PEPXX_NewFunc-merged_in_from_branch
 184                     ##     TASK-PEPXX_NewFunc-merged_out_to_branch
 185 jim.wunderlich 1.1  ##
 186                     ##
 187                     ## Consider the following diagram:
 188                     ##
 189 jim.wunderlich 1.8  ## NOTE: The numbers in these diagrams refer to the branch maintenance 
 190 jim.wunderlich 1.1  ##       symbols above.
 191                     ##
 192                     ##   After task branch has been created, and changes have been made on both
 193                     ##   the trunk and the branch.
 194                     ##
 195                     ##      ------------------------------------------------------HEAD
 196                     ##     /
 197                     ##    /
 198                     ##   |
 199                     ##   |
 200                     ##   X--------------------------------------------------------BRANCH (2)
 201                     ##
 202                     ##   X = 1 = 3 = 4 = 5 = 6
 203                     ##
 204                     ##
 205                     ##   After task branch has been merged out once 
 206                     ##   and more changes have been made on both the trunk and the branch.
 207                     ##
 208                     ##
 209                     ##      ----Y--------------------------------------------------HEAD
 210                     ##     /     \
 211 jim.wunderlich 1.1  ##    /       \
 212                     ##   |        _\/ 
 213                     ##   |          \
 214                     ##   X-----------Z---------------------------------------------BRANCH (2)
 215                     ##
 216                     ##   X = 1 = 5 = 6 
 217                     ##   Y = 3
 218                     ##   Z = 4
 219                     ##
 220                     ##
 221                     ##   After task branch has been merged out several times, merged in once 
 222                     ##   and more changes have been made on both the trunk and the branch.
 223                     ##
 224                     ##      ---------------------Y------------V---------------------HEAD
 225                     ##     /     \       \        \         _/
 226                     ##    /       \       \        \        /|
 227                     ##   |        _\/     _\/      _\/     /
 228                     ##   |          \       \        \    /  
 229                     ##   X----------------------------Z--U--------------------------BRANCH (2)
 230                     ##
 231                     ##   X = 1
 232 jim.wunderlich 1.1  ##   Y = 3
 233                     ##   Z = 4
 234                     ##   U = 6
 235                     ##   V = 5
 236                     ##
 237                     ##   After branch has been merged out several times, merged in several times 
 238                     ##   and more changes have been made on both the trunk and the branch.
 239                     ##
 240                     ##      -------------------------------------Y-----------V-------HEAD
 241                     ##     /     \       \        \         _/    \        _/
 242                     ##    /       \       \        \        /|     \       /|
 243                     ##   |        _\/     _\/      _\/     /       _\/    /
 244                     ##   |          \       \        \    /          \   /
 245                     ##   X--------------------------------------------Z-U-----------BRANCH (2)
 246                     ##
 247                     ##   X = 1
 248                     ##   Y = 3
 249                     ##   Z = 4
 250                     ##   U = 6
 251                     ##   V = 5
 252                     ##
 253 jim.wunderlich 1.1  ## ==========================================================================
 254                     
 255                     # ===========================================================================
 256 jim.wunderlich 1.8  # Area to specify include files
 257 jim.wunderlich 1.1  # ===========================================================================
 258                     
 259                     
 260                     
 261                     # ===========================================================================
 262                     # Area to define commands that are platform dependent.
 263                     #
 264                     # If these are already set, by a file previously included, then they will not be
 265                     # set here. In either case it will be verified that the command is on the search
 266                     # path.
 267                     #
 268                     # ===========================================================================
 269                     # pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$subst :, ,$(PATH))))
 270                     
 271                     pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
 272                     
 273                     MAKE ?= make
 274                     MAKE_FULL_PATH = $(call pathsearch, $(MAKE))
 275                     
 276                     CVS ?= cvs
 277                     CVS_FULL_PATH = $(call pathsearch,$(CVS))
 278 jim.wunderlich 1.1  
 279                     ECHO ?= echo
 280                     ECHO_FULL_PATH = $(call pathsearch,$(ECHO))
 281                     
 282 jim.wunderlich 1.8  PATCH ?= patch
 283                     PATCH_FULL_PATH = $(call pathsearch,$(PATCH))
 284                     
 285                     
 286 a.dunfey       1.10 ifeq ($(OS_TYPE),windows)
 287 jim.wunderlich 1.8  ## windows 
 288                     
 289                     GREP ?= find
 290                     USAGE_SRCH="###"
 291                     USAGE_ALL_SRCH="##"
 292                     
 293                     else 
 294                     ## not windows, assume Unix
 295                     
 296 jim.wunderlich 1.1  GREP ?= grep
 297 jim.wunderlich 1.8  USAGE_SRCH="\#\#\#"
 298                     USAGE_ALL_SRCH="\#\#"
 299                     endif
 300                     
 301 jim.wunderlich 1.1  GREP_FULL_PATH = $(call pathsearch,$(GREP))
 302                     
 303                     
 304                     
 305                     
 306                     # ===============================================================================
 307                     # Shell internal commands
 308                     # ===============================================================================
 309                     CD ?= cd
 310                     
 311                     
 312                     # ===============================================================================
 313                     # Area to set defaults 
 314                     # ===============================================================================
 315                     
 316                     
 317                     ROOT ?= $(subst \,/,$(PEGASUS_ROOT))
 318                     
 319                     FILE_PATH = $(ROOT)/mak
 320                     
 321                     FILE_NAME = TaskMakefile
 322 jim.wunderlich 1.1  
 323                     
 324                     FILE = $(FILE_PATH)/$(FILE_NAME)
 325                     
 326 jim.wunderlich 1.6  ###################################
 327 jim.wunderlich 1.8  # BNAME_INVALID_CHAR
 328                     # BNAME and NEW_BNAME invalid characters 
 329 jim.wunderlich 1.6  DASH = -
 330 jim.wunderlich 1.1  
 331                     # ===============================================================================
 332                     # The remaining defaults will be set only if they are not already set.
 333                     # ===============================================================================
 334                     
 335 jim.wunderlich 1.9  MODULE_NAME ?= pegasus
 336                     ## MODULE_NAME ?= junk      ## good for testing
 337 jim.wunderlich 1.1  
 338                     ifeq ($(MODULE_NAME),pegasus)
 339 jim.wunderlich 1.9  BFILE ?= Makefile
 340 jim.wunderlich 1.1  else
 341                     # must be junk module
 342                     BFILE ?= a.cpp
 343                     endif
 344                     
 345                     #
 346                     # diff and rdiff support different options. 
 347                     # diff supports more options than rdiff does. 
 348                     #
 349                     
 350                     DIFF_OPTIONS ?= 
 351                     
 352                     RDIFF_OPTIONS ?= 
 353                     
 354 jim.wunderlich 1.6  VALID_TAGS = $(shell $(CVS) rlog $(MODULE_NAME)/$(BFILE) | $(GREP) TASK)
 355 jim.wunderlich 1.1  
 356                     # ==================================================================================
 357                     # Rule definitions starts here
 358                     # ==================================================================================
 359                     
 360                     .PHONY: FORCE
 361                     
 362                     # =====================
 363                     # This rule must be the first in the file so if no make command is specified then 
 364                     # the usage information will be displayed.
 365                     default: usage
 366                     
 367                     # =====================
 368                     # assure that a minimum of commands exist. 
 369                     #
 370                     # Without ECHO and CVS essentially nothing can be done.
 371 jim.wunderlich 1.6  exists_minimum: exists_MAKE exists_CVS exists_ECHO exists_GREP
 372 jim.wunderlich 1.1  
 373                     # ======================
 374                     # assure that MAKE exists
 375                     #
 376                     exists_MAKE: FORCE
 377                     ifeq ($(MAKE_FULL_PATH),)
 378 jim.wunderlich 1.4  	$(error ERROR: MAKE command ($(MAKE)) not found in PATH $(PATH))
 379 jim.wunderlich 1.1  endif
 380                     
 381                     
 382                     # ======================
 383                     # assure that CVS exists
 384                     #
 385                     exists_CVS: FORCE
 386                     ifeq ($(CVS_FULL_PATH),)
 387 jim.wunderlich 1.4  	$(error ERROR: CVS command ($(CVS)) not found in PATH $(PATH))
 388 jim.wunderlich 1.1  endif
 389                     
 390                     
 391                     # ======================
 392                     # assure that PATCH exists
 393                     #
 394                     exists_PATCH: FORCE
 395                     ifeq ($(PATCH_FULL_PATH),)
 396 jim.wunderlich 1.4  	$(error ERROR: PATCH command ($(PATCH)) not found in PATH $(PATH))
 397 jim.wunderlich 1.1  endif
 398                     
 399                     # ======================
 400                     # assure that GREP exists
 401                     #
 402                     exists_GREP: FORCE
 403                     ifeq ($(GREP_FULL_PATH),)
 404 jim.wunderlich 1.4  	$(error ERROR: GREP command ($(GREP)) not found in PATH $(PATH))
 405 jim.wunderlich 1.1  endif
 406                     
 407                     # ======================
 408                     # assure that ECHO exists
 409                     #
 410                     exists_ECHO: FORCE 
 411                     ifeq ($(ECHO_FULL_PATH),)
 412 jim.wunderlich 1.4  	$(error ERROR: ECHO command ($(ECHO)) not found in PATH $(PATH))
 413 jim.wunderlich 1.1  endif
 414                     
 415                     
 416                     
 417                     # ======================
 418 jim.wunderlich 1.6  # assure that BNAME exists (is not null)
 419 jim.wunderlich 1.1  #
 420                     exists_BNAME: FORCE
 421                     ifeq ($(BNAME),)
 422 jim.wunderlich 1.6  	$(error ERROR: BNAME not set, set it on the command line )
 423                     endif
 424                     
 425 jim.wunderlich 1.8  # ======================
 426                     # assure that BNAME does not contain invalid characters
 427                     #
 428 jim.wunderlich 1.6  valid_BNAME: exists_BNAME
 429                     ifneq ($(BNAME) ,$(subst $(DASH), X ,$(BNAME)))
 430 jim.wunderlich 1.8  	@ $(error ERROR: BNAME contains invalid ($(DASH)) characters)
 431 jim.wunderlich 1.6  endif
 432                     
 433                     
 434                     # ======================
 435                     # assure that BNAME exist in cvs
 436                     #
 437                     exists_cvs_BNAME: exists_BNAME
 438 jim.wunderlich 1.8  ifneq (TASK-$(BNAME)-branch, $(findstring TASK-$(BNAME)-branch, $(VALID_TAGS)))
 439 jim.wunderlich 1.6  	@ $(error ERROR:  BNAME, $(BNAME), does not exists in cvs module $(MODULE_NAME))
 440                     endif
 441                     
 442                     
 443                     # ======================
 444                     # assure that BNAME does not exist in cvs.
 445                     #
 446                     not_exists_cvs_BNAME: exists_BNAME
 447 jim.wunderlich 1.8  ifeq (TASK-$(BNAME)-branch, $(findstring TASK-$(BNAME)-branch, $(VALID_TAGS)))
 448 jim.wunderlich 1.6  	@ $(error ERROR: BNAME, $(BNAME), exists in cvs module $(MODULE_NAME))
 449 jim.wunderlich 1.1  endif
 450                     
 451 jim.wunderlich 1.6  
 452 jim.wunderlich 1.1  # ======================
 453 jim.wunderlich 1.6  # assure that NEW_BNAME exists (is not null)
 454 jim.wunderlich 1.1  #
 455                     exists_NEW_BNAME: FORCE
 456                     ifeq ($(NEW_BNAME),)
 457 jim.wunderlich 1.6  	@ $(error ERROR: NEW_BNAME not set, set is on the command line.)
 458                     endif
 459                     
 460                     
 461                     # ======================
 462 jim.wunderlich 1.8  # assure that NEW_BNAME does not contain invalid characters
 463                     #
 464                     valid_NEW_BNAME: exists_NEW_BNAME
 465                     ifneq ($(NEW_BNAME) ,$(subst $(DASH), X ,$(NEW_BNAME)))
 466                     	@ $(error ERROR: NEW_BNAME contains invalid ($(DASH)) characters)
 467                     endif
 468                     
 469                     
 470                     # ======================
 471 jim.wunderlich 1.6  # assure that NEW_BNAME exist in cvs
 472                     #
 473                     exists_cvs_NEW_BNAME: exists_NEW_BNAME
 474 jim.wunderlich 1.8  ifneq (TASK-$(NEW_BNAME)-branch, $(findstring TASK-$(NEW_BNAME)-branch, $(VALID_TAGS)))
 475 jim.wunderlich 1.6  	@ $(error ERROR: NEW_BNAME, $(NEW_BNAME), does not exists in cvs module $(MODULE_NAME) )
 476 jim.wunderlich 1.1  endif
 477                     
 478 jim.wunderlich 1.6  
 479                     # ======================
 480                     # assure that NEW_BNAME does not exist in cvs.
 481                     #
 482                     not_exists_cvs_NEW_BNAME: exists_NEW_BNAME
 483 jim.wunderlich 1.8  ifeq (TASK-$(NEW_BNAME)-branch, $(findstring TASK-$(NEW_BNAME)-branch, $(VALID_TAGS)))
 484 jim.wunderlich 1.6  	@ $(error ERROR: NEW_BNAME, $(NEW_BNAME), exists in cvs module $(MODULE_NAME) )
 485                     endif
 486 jim.wunderlich 1.1  
 487                     
 488                     ## =====================
 489                     ##
 490                     ### Function: usage - displays usage information
 491                     ##  Usage:    usage
 492                     ##
 493                     usage: exists_GREP
 494 jim.wunderlich 1.8  	@ $(GREP) "$(USAGE_SRCH)" $(FILE)
 495 jim.wunderlich 1.1  
 496                     ## =====================
 497                     ##
 498                     ### Function: usage_all - displays usage information
 499                     ##  Usage:    usage_all
 500                     ##
 501                     usage_all: exists_GREP
 502 jim.wunderlich 1.8  	@ $(GREP) "$(USAGE_ALL_SRCH)" $(FILE)
 503 jim.wunderlich 1.1  
 504                     ## =====================
 505                     ##
 506                     ### Function: defaults - displays default settings
 507                     ##  Usage:    defaults
 508                     ##
 509                     defaults: exists_minimum
 510                     	@ $(ECHO) =======================================================================
 511                     	@ $(ECHO) 
 512                     	@ $(ECHO) "CVS defaults should be set within the .cvsrc file."
 513                     	@ $(ECHO)
 514                     	@ $(ECHO) --------------------------
 515                     	@ $(ECHO) "Default External Commands used within this Makefile"
 516                     	@ $(ECHO)
 517                     	@ $(ECHO) "CVS                = $(CVS)"
 518                     	@ $(ECHO) "CVS_FULL_PATH      = $(CVS_FULL_PATH)"
 519                     	@ $(ECHO)
 520                     	@ $(ECHO) "PATCH              = $(PATCH)"
 521                     	@ $(ECHO) "PATCH_FULL_PATH    = $(PATCH_FULL_PATH)"
 522                     	@ $(ECHO)
 523                     	@ $(ECHO) "GREP               = $(GREP)"
 524 jim.wunderlich 1.1  	@ $(ECHO) "GREP_FULL_PATH     = $(GREP_FULL_PATH)"
 525                     	@ $(ECHO)
 526                     	@ $(ECHO) "ECHO               = $(ECHO)"
 527                     	@ $(ECHO) "ECHO_FULL_PATH     = $(ECHO_FULL_PATH)"
 528                     	@ $(ECHO)
 529                     	@ $(ECHO) --------------------------
 530                     	@ $(ECHO) "Defaults used within this Makefile."
 531                     	@ $(ECHO)
 532                     	@ $(ECHO) "FILE_PATH          = $(FILE_PATH)"
 533                     	@ $(ECHO) "FILE_NAME          = $(FILE_NAME)"
 534                     	@ $(ECHO)
 535                     	@ $(ECHO) --------------------------
 536                     	@ $(ECHO) "Defaults used within this Makefile that can be overridden from the"
 537                     	@ $(ECHO) " command line."
 538                     	@ $(ECHO) 
 539                     	@ $(ECHO) "MODULE_NAME        = $(MODULE_NAME)"
 540                     	@ $(ECHO) "BFILE              = $(BFILE)"
 541                     	@ $(ECHO)
 542                     	@ $(ECHO) "DIFF_OPTIONS       = $(DIFF_OPTIONS)"
 543                     	@ $(ECHO) "RDIFF_OPTIONS      = $(RDIFF_OPTIONS)"
 544                     	@ $(ECHO)
 545 jim.wunderlich 1.1  	@ $(ECHO) "For example"
 546 jim.wunderlich 1.8  	@ $(ECHO) " $(MAKE) -f $(FILE_NAME) branch_checkout BNAME=PEPX_Func MODULE=module"
 547 jim.wunderlich 1.1  	@ $(ECHO)
 548                     	@ $(ECHO) =======================================================================
 549                     
 550                     ## =====================
 551                     ##
 552                     ### Function: branch_list - List branches and other symbolic links
 553                     ##  Usage:    branch_list [BFILE=(FILE NAME)]
 554                     ##
 555                     ##  Note:     A log is performed on a chosen file, such as the env_var.status
 556                     ##            file since it has been in the trunk for a while, having most 
 557                     ##            symbolic variables assigned to it, and very few revisions. 
 558                     ##
 559                     branch_list: exists_minimum
 560                     	-$(CVS) rlog $(MODULE_NAME)/$(BFILE) | $(GREP) TASK
 561                     
 562                     
 563                     # =====================
 564                     ##
 565                     ### Function: branch_status - Show "branch" status
 566                     ##  Usage:    branch_status [BFILE=(FILE NAME)]
 567                     ##
 568 jim.wunderlich 1.1  ##  Note:     Must be executed from the directory above $(MODULE_NAME), 
 569                     ##            the top of the trunk.   
 570                     ##
 571                     ##  Note:     A log is performed on a chosen file, such as the env_var.status
 572                     ##            file since it has been in the trunk for a while, having most 
 573                     ##            symbolic variables assigned to it, and very few revisions. 
 574                     ##
 575                     branch_status: exists_minimum
 576                     	$(CD) $(MODULE_NAME)
 577                     	$(CVS) status $(MODULE_NAME)/$(BFILE)
 578                     
 579                     
 580                     
 581                     ## =====================
 582                     ##
 583                     ### Function: branch_create - Creates branch and the tags to manage it.
 584                     ##  Usage:    branch_create BNAME=(BRANCH NAME)
 585                     ##
 586                     ##
 587                     ##  Process:
 588                     ##       Create "root" tag on main branch
 589 jim.wunderlich 1.1  ##       Create "branch" using the "root" tag 
 590                     ##       Create a "merged_in_to_trunk" tag for later use in the merge in. 
 591                     ##       Create a "merged_out_from_trunk" tag for later use in the merge out. 
 592                     ##       Create a "merged_in_from_branch" tag for later use in the merge in.
 593                     ##       Create a "merged_out_to_branch" tag for later use in the merge out.
 594                     ##
 595                     ##
 596 jim.wunderlich 1.6  branch_create: exists_minimum valid_BNAME not_exists_cvs_BNAME
 597 jim.wunderlich 1.8  	$(CVS) rtag -f TASK-$(BNAME)-root $(MODULE_NAME)
 598                     	$(CVS) rtag -b -r TASK-$(BNAME)-root TASK-$(BNAME)-branch $(MODULE_NAME)
 599                     	$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME)
 600                     	$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME)
 601                     	$(CVS) rtag -r TASK-$(BNAME)-branch TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME)
 602                     	$(CVS) rtag -r TASK-$(BNAME)-branch TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME)
 603 jim.wunderlich 1.1  
 604                     
 605                     ## =====================
 606                     ##
 607                     ### Function: branch_rename - Renames existing branch and all the tags to manage it.
 608                     ##  Usage:    branch_rename BNAME=(OLD NAME) NEW_BNAME=(NEW NAME)
 609                     ##
 610                     ##
 611                     ##  Process:
 612 jim.wunderlich 1.8  ##       Rename TASK-[BNAME]-root to TASK-[NEW_BNAME]-root
 613                     ##       Rename TASK-[BNAME]-branch to TASK-[NEW_BNAME]-branch
 614                     ##       Rename TASK-[BNAME]-merged_in_to_trunk
 615                     ##           to TASK-[NEW_BNAME]-merged_in_to_trunk
 616                     ##       Rename TASK-[BNAME]-merged_out_from_trunk
 617                     ##           to TASK-[NEW_BNAME]-merged_out_from_trunk
 618                     ##       Rename TASK-[BNAME]-merged_in_from_branch
 619                     ##           to TASK-[NEW_BNAME]-merged_in_from_branch
 620                     ##       Rename TASK-[BNAME]-merged_out_to_branch
 621                     ##           to TASK-[NEW_BNAME]-merged_out_to_branch
 622                     ##	 Delete Branch TASK-[BNAME]
 623 jim.wunderlich 1.1  ##    
 624 jim.wunderlich 1.6  branch_rename: exists_minimum exists_cvs_BNAME not_exists_cvs_NEW_BNAME valid_NEW_BNAME
 625 jim.wunderlich 1.4  ifeq ($(BNAME),$(NEW_BNAME))
 626                     	$(error ERROR: BNAME=NEW_BNAME=($(BNAME)), They must be different.)
 627                     endif
 628 jim.wunderlich 1.8  	$(CVS) rtag -r TASK-$(BNAME)-root TASK-$(NEW_BNAME)-root $(MODULE_NAME)
 629                     	$(CVS) rtag -b -r TASK-$(BNAME)-branch TASK-$(NEW_BNAME)-branch $(MODULE_NAME)
 630                     	$(CVS) rtag -r TASK-$(BNAME)-merged_in_to_trunk TASK-$(NEW_BNAME)-merged_in_to_trunk $(MODULE_NAME)
 631                     	$(CVS) rtag -r TASK-$(BNAME)-merged_out_from_trunk TASK-$(NEW_BNAME)-merged_out_from_trunk $(MODULE_NAME)
 632                     	$(CVS) rtag -r TASK-$(BNAME)-merged_in_from_branch TASK-$(NEW_BNAME)-merged_in_from_branch $(MODULE_NAME)
 633                     	$(CVS) rtag -r TASK-$(BNAME)-merged_out_to_branch TASK-$(NEW_BNAME)-merged_out_to_branch $(MODULE_NAME)
 634 jim.wunderlich 1.1  	$(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME)
 635                     
 636                     
 637                     ## =====================
 638                     ##
 639                     ### Function: branch_delete - Delete the named branch and its management tags.
 640                     ##  Usage:    branch_delete BNAME=(BRANCH NAME)
 641                     ##
 642                     ##    Process:
 643                     ##       Delete "root" tag
 644                     ##       Delete the "merged_in_to_trunk" tag. 
 645                     ##       Delete the "merged_out_from_trunk" tag. 
 646                     ##       Delete the "merged_in_from_branch" tag.
 647                     ##       Delete the "merged_out_to_branch" tag.
 648                     ##       Delete the "merging_in_to_trunk" tag. 
 649                     ##       Delete the "merging_out_from_trunk" tag. 
 650                     ##       Delete the "merging_in_from_branch" tag.
 651                     ##       Delete the "merging_out_to_branch" tag.
 652                     ##       Delete the branch
 653                     ##    
 654                     ##
 655 jim.wunderlich 1.6  branch_delete: exists_minimum exists_cvs_BNAME
 656 jim.wunderlich 1.8  	$(CVS) rtag -d TASK-$(BNAME)-root $(MODULE_NAME)
 657                     	$(CVS) rtag -d TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME)
 658                     	$(CVS) rtag -d TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME)
 659                     	$(CVS) rtag -d TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME)
 660                     	$(CVS) rtag -d TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME)
 661                     	$(CVS) rtag -d TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME)
 662                     	$(CVS) rtag -d TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME)
 663                     	$(CVS) rtag -d TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME) 
 664                     	$(CVS) rtag -d TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME) 
 665                     	$(CVS) rtag -B -d TASK-$(BNAME)-branch $(MODULE_NAME)
 666 jim.wunderlich 1.1  
 667                     ## =====================
 668                     ##
 669                     ### Function: branch_checkout - checks out the head of the branch trunk
 670                     ##  Aliases:  branch_co
 671                     ##  Usage:    branch_checkout BNAME=(BRANCH NAME)
 672                     ##  Note:     Must be executed from the directory where the top pegasus 
 673                     ##            directory shall be placed. 
 674                     ##
 675 jim.wunderlich 1.6  branch_co branch_checkout: exists_minimum exists_cvs_BNAME
 676 jim.wunderlich 1.8  	$(CVS) checkout -r TASK-$(BNAME)-branch $(MODULE_NAME)
 677 jim.wunderlich 1.1  
 678                     
 679                     ## =====================
 680                     ##
 681                     ### Function: branch_commit - checks into the head of the branch trunk
 682                     ##  Aliases:  branch_ci
 683                     ##  Usage:    branch_ci BNAME=(BRANCH NAME) 
 684                     ##  Note:     Must be executed from within a directory of a working trunk 
 685                     ##
 686                     branch_ci branch_commit: exists_minimum
 687                     	$(CVS) commit $(MODULE_NAME)
 688                     
 689                     
 690                     ## =====================
 691                     ##
 692                     ### Function: branch_diff - diffs current working tree to the head of the
 693                     ###                         branch tree
 694                     ##  Usage:    branch_diff [DIFF_OPTIONS=(OPTIONS)]
 695                     ##  Note:     Must be executed from within a directory of a working tree  
 696                     ##
 697                     branch_diff: exists_minimum
 698 jim.wunderlich 1.1  	$(CVS) diff $(DIFF_OPTIONS) $(MODULE_NAME) 
 699                     
 700                     ## =====================
 701                     ##
 702                     ### Function: branch_diff_to_root - diffs branch to its root
 703                     ##  Usage:    branch_diff_to_root BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)]
 704                     ##
 705 jim.wunderlich 1.6  branch_diff_to_root: exists_minimum exists_cvs_BNAME
 706 jim.wunderlich 1.8  	$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-root -r TASK-$(BNAME)-branch $(MODULE_NAME)
 707 jim.wunderlich 1.1  
 708                     ## =====================
 709                     ##
 710                     ### Function: branch_diff_to_trunk - diffs branch head to the head of the trunk
 711                     ##  Usage:    branch_diff_to_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)]
 712                     ##
 713 jim.wunderlich 1.6  branch_diff_to_trunk: exists_minimum exists_cvs_BNAME
 714 jim.wunderlich 1.8  	$(CVS) rdiff $(RDIFF_OPTIONS) -r TASK-$(BNAME)-branch $(MODULE_NAME)
 715 jim.wunderlich 1.1  
 716                     ## =====================
 717                     ##
 718                     ### Function: branch_diff_unmerged_branch - shows all changes on the 
 719                     ###                                  branch since the last merge in.
 720                     ##  Usage:    branch_diff_unmerged_branch BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)]
 721                     ##
 722 jim.wunderlich 1.6  branch_diff_unmerged_branch: exists_minimum exists_cvs_BNAME
 723 jim.wunderlich 1.8  	$(CVS) rdiff  $(RDIFF_OPTIONS) -r TASK-$(BNAME)-merged_in_from_branch -r TASK-$(BNAME)-branch $(MODULE_NAME)
 724 jim.wunderlich 1.1  
 725                     
 726                     ## =====================
 727                     ##
 728                     ### Function: branch_diff_unmerged_trunk - shows all changes on the 
 729                     ###                                  trunk since the last merge out
 730                     ##  Usage:    branch_diff_unmerged_trunk BNAME=(BRANCH NAME) [RDIFF_OPTIONS=(OPTIONS)]
 731                     ##
 732 jim.wunderlich 1.6  branch_diff_unmerged_trunk: exists_minimum exists_cvs_BNAME
 733 jim.wunderlich 1.8  	$(CVS) rdiff  $(RDIFF_OPTIONS) -r TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME)
 734 jim.wunderlich 1.1  
 735                     
 736                     ## =====================
 737                     ##
 738                     ### Function: branch_merge_in - starts the two part process to merge 
 739                     ###                             the changes in the branch into the trunk. 
 740                     ##  Usage:    branch_merge_in BNAME=(BRANCH NAME)
 741                     ##
 742                     ##  Note:     Must be executed from the directory where the top pegasus 
 743                     ##            directory shall be placed when the checkout is performed 
 744                     ##            to instantiate the working copy of the trunk within which 
 745 jim.wunderlich 1.3  ##            the merge will be performed.
 746                     ##
 747                     ##  Note:     You can start this process over prior to the commit by 
 748                     ##            removing the working copy of the tree and starting over with
 749                     ##            the branch_merge_in command.
 750 jim.wunderlich 1.1  ##
 751                     ##  Process:
 752                     ##
 753                     ##   branch_merge_in BNAME=(BRANCH NAME) 
 754                     ##     - Tag main trunk with the merging_in_to_trunk tag.
 755                     ##     - Tag branch with the merging_in_from_branch tag.
 756                     ##     - Checkout the trunk head into a working copy of the trunk.
 757                     ##          NOTE: The merging_in tag is not used because that 
 758                     ##                would result in a sticky tag that will preclude the 
 759                     ##                subsequent commit of the merged files. The 
 760                     ##                merging_in tag is created because if any other commits
 761                     ##                occur while the merge is in process they will be detected 
 762                     ##                and merged on the subsequent merge_in. It is safer to 
 763                     ##                do this than to risk the chance of missing a commit.
 764                     ##     - Use update to merge in the branch changes since last the merge_in.
 765                     ##     - Manually resolve any conflicts in the working copy of the trunk.
 766                     ##
 767                     ##   branch_merge_in_commit BNAME=(BRANCH NAME)
 768 jim.wunderlich 1.3  ##     - Check in merged changes from the working copy of the trunk in.
 769                     ##     - executes branch_merge_in_finish  
 770                     ##
 771                     ##   If you chose to do a manual checkin then execute branch_merge_in_finish
 772 jim.wunderlich 1.1  ##  
 773                     ##   branch_merge_in_finish BNAME=(BRANCH NAME)
 774                     ##     - Move the merged_in_to_trunk tag to the merging_in_to_trunk tag
 775                     ##     - Move the merged_in_from_branch tag to 
 776                     ##           the merging_in_from_branch tag
 777 jim.wunderlich 1.8  ##     - Delete the  TASK-$(BNAME)-merging_in_to_trunk tag
 778                     ##     - Delete the  TASK-$(BNAME)-merging_in_from_branch tag
 779 jim.wunderlich 1.1  ##        
 780                     ##
 781 jim.wunderlich 1.6  branch_merge_in: exists_minimum exists_cvs_BNAME
 782 jim.wunderlich 1.8  	$(CVS) rtag -F TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME)
 783                     	$(CVS) rtag -F -r TASK-$(BNAME)-branch TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME)
 784 jim.wunderlich 1.1  	$(CVS) checkout -P $(MODULE_NAME)
 785                     	$(CD) $(MODULE_NAME)
 786 jim.wunderlich 1.8  	$(CVS) update -P -d -j TASK-$(BNAME)-merged_in_from_branch -j TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME)
 787 jim.wunderlich 1.1  	@ $(ECHO)
 788                     	@ $(ECHO) Differences from branch now merged into 
 789                     	@ $(ECHO) the local working copy of the trunk.
 790                     	@ $(ECHO)
 791                     	@ $(ECHO) Now manually:
 792                     	@ $(ECHO)   1. Resolve any merge conflicts.
 793                     	@ $(ECHO)   2. Review differences to assure commit integrity. 
 794 jim.wunderlich 1.4  	@ $(ECHO)      That is do not check in unintended white space changes,
 795 jim.wunderlich 1.1  	@ $(ECHO)      test or debug code.
 796 jim.wunderlich 1.8  	@ $(ECHO)   3. Check for added files and directories and do a cvs add 
 797                     	@ $(ECHO)      command for them.
 798                     	@ $(ECHO)   4  Check for removed files and directories and do a 
 799                     	@ $(ECHO)      cvs remove command for them.
 800 jim.wunderlich 1.1  	@ $(ECHO)
 801                     	@ $(ECHO) Then check in the files. Either manually or by using 
 802                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_in_ci BNAME=$(BNAME)"
 803                     	@ $(ECHO) within the $(MODULE_NAME) directory.
 804                     	@ $(ECHO)
 805                     	@ $(ECHO) If you chose to do a manual commit then after the commit 
 806                     	@ $(ECHO) is complete then do a:
 807                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_in_finish BNAME=$(BNAME)"
 808                     	@ $(ECHO) within the $(MODULE_NAME) directory to reset the appropriate
 809                     	@ $(ECHO) branch management tags.
 810                     	@ $(ECHO)
 811 jim.wunderlich 1.3  	@ $(ECHO) You can start this process over prior to the commit by removing
 812                     	@ $(ECHO) the working copy of the tree and then start over with
 813                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_in BNAME=$(BNAME)" 
 814                     	@ $(ECHO)
 815 jim.wunderlich 1.1  	@ $(ECHO)
 816                     
 817                     
 818 jim.wunderlich 1.6  branch_merge_in_ci branch_merge_in_commit: exists_minimum exists_cvs_BNAME
 819 jim.wunderlich 1.1  	$(CD) $(MODULE_NAME)
 820                     	$(CVS) commit
 821                     	@ $(ECHO) 
 822                     	@ $(ECHO) Check in of merged files from branch into trunk complete.
 823                     	@ $(ECHO)
 824                     	$(MAKE) -f $(FILE) branch_merge_in_finish BNAME=$(BNAME)
 825                     
 826                     
 827 jim.wunderlich 1.6  branch_merge_in_finish: exists_minimum exists_cvs_BNAME
 828 jim.wunderlich 1.8  	$(CVS) rtag -F -r TASK-$(BNAME)-merging_in_to_trunk TASK-$(BNAME)-merged_in_to_trunk $(MODULE_NAME)
 829                     	$(CVS) rtag -F -r TASK-$(BNAME)-merging_in_from_branch TASK-$(BNAME)-merged_in_from_branch $(MODULE_NAME)
 830                     	$(CVS) rtag -d TASK-$(BNAME)-merging_in_to_trunk $(MODULE_NAME)
 831                     	$(CVS) rtag -d TASK-$(BNAME)-merging_in_from_branch $(MODULE_NAME)
 832 jim.wunderlich 1.1  	@ $(ECHO) 
 833                     	@ $(ECHO) Branch Management tags have now been updated to reflect the new branch status.
 834                     	@ $(ECHO)
 835                     
 836                     
 837                     
 838                     ## =====================
 839                     ###
 840                     ### Function: branch_merge_out - starts the two part process to merge 
 841                     ###                             the changes in the trunk into the branch. 
 842                     ##  Usage:    branch_merge_out BNAME=(BRANCH NAME)
 843                     ##
 844                     ##  Note:     Must be executed from the directory where the top pegasus 
 845                     ##            directory shall be placed when the checkout is performed 
 846                     ##            to instantiate the working copy of the trunk within which 
 847                     ##            the merge will be performed 
 848                     ##
 849 jim.wunderlich 1.3  ##  Note:     You can start this process over prior to the commit by 
 850                     ##            removing the working copy of the tree and starting over with
 851                     ##            the branch_merge_out command.
 852                     ##
 853 jim.wunderlich 1.1  ##  Process:
 854                     ##
 855                     ##   branch_merge_out BNAME=(BRANCH NAME)
 856                     ##     - Tag main trunk with the merging_out_from_trunk tag.
 857                     ##     - Tag branch with the merging_out_to_branch tag.
 858                     ##     - Checkout the trunk head into a working copy of the trunk.
 859                     ##          NOTE: The merging_out tag is not used because that 
 860                     ##                would result in a Sticky tag that will preclude the 
 861                     ##                subsequent commit of the merged files. The 
 862 jim.wunderlich 1.8  ##                merging_out tag is created because if any other commits
 863 jim.wunderlich 1.1  ##                occur while the merge is in process they will be detected 
 864                     ##                and merged on the subsequent merge_out. It is safer to 
 865                     ##                do this than to risk the chance of missing a commit.
 866                     ##     - Use update to merge in the trunk changes since last the merge_out.
 867 jim.wunderlich 1.3  ##     - Manually resolve any conflicts in the working copy of the branch.
 868 jim.wunderlich 1.1  ##
 869                     ##   branch_merge_out_commit BNAME=(BRANCH NAME)    
 870 jim.wunderlich 1.3  ##     - Check in merged changes from the working copy of the branch in.
 871                     ##     - executes branch_merge_out_finish  
 872                     ##
 873                     ##   If you chose to do a manual checkin then execute branch_merge_out_finish
 874 jim.wunderlich 1.1  ##
 875                     ##   branch_merge_out_finish BNAME=(BRANCH NAME)
 876                     ##     - Move the merged_out_from_trunk tag to the merging_out_from_trunk tag
 877                     ##     - Move the merged_out_to_branch tag to
 878                     ##           the merging_out_to_branch tag
 879 jim.wunderlich 1.8  ##     - Delete the  TASK-$(BNAME)-merging_out_from_trunk tag
 880                     ##     - Delete the  TASK-$(BNAME)-merging_out_to_branch tag
 881 jim.wunderlich 1.1  ##
 882                     ##
 883 jim.wunderlich 1.6  branch_merge_out: exists_minimum exists_cvs_BNAME
 884 jim.wunderlich 1.8  	$(CVS) rtag -F TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME)
 885                     	$(CVS) rtag -F -r TASK-$(BNAME)-branch TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME)
 886                     	$(CVS) checkout -P -r TASK-$(BNAME)-branch $(MODULE_NAME)
 887 jim.wunderlich 1.1  	$(CD) $(MODULE_NAME)
 888 jim.wunderlich 1.8  	$(CVS) update -P -d -j TASK-$(BNAME)-merged_out_from_trunk -j TASK-$(BNAME)-merging_out_from_trunk
 889 jim.wunderlich 1.1  	@ $(ECHO)
 890                     	@ $(ECHO) Differences from trunk now merged into 
 891                     	@ $(ECHO) the local working copy of the branch.
 892                     	@ $(ECHO)
 893                     	@ $(ECHO) Now manually:
 894                     	@ $(ECHO)   1. Resolve any merge conflicts.
 895                     	@ $(ECHO)   2. Check for added files and directories and do a cvs add 
 896                     	@ $(ECHO)      command for them. 
 897 jim.wunderlich 1.8  	@ $(ECHO)   3  Check for removed files and directories and do a 
 898                     	@ $(ECHO)      cvs remove command for them.
 899 jim.wunderlich 1.1  	@ $(ECHO)
 900                     	@ $(ECHO) Then check in the files. Either manually or by using
 901                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_out_ci BNAME=$(BNAME)"
 902                     	@ $(ECHO) within the $(MODULE_NAME) directory.
 903                     	@ $(ECHO)
 904                     	@ $(ECHO) If you chose to do a manual commit then after the commit 
 905                     	@ $(ECHO) is complete do a:
 906                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_out_finish BNAME=$(BNAME)"
 907                     	@ $(ECHO) within the $(MODULE_NAME) directory to reset the appropriate
 908                     	@ $(ECHO) branch management tags.
 909                     	@ $(ECHO)
 910 jim.wunderlich 1.3  	@ $(ECHO) You can start this process over prior to the commit by removing
 911                     	@ $(ECHO) the working copy of the tree and then start over with
 912                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_merge_out BNAME=$(BNAME)" 
 913                     	@ $(ECHO)
 914 jim.wunderlich 1.1  	@ $(ECHO)
 915                     
 916 jim.wunderlich 1.6  branch_merge_out_ci branch_merge_out_commit: exists_minimum exists_cvs_BNAME
 917 jim.wunderlich 1.1  	$(CD) $(MODULE_NAME)
 918                     	$(CVS) commit
 919                     	@ $(ECHO) 
 920                     	@ $(ECHO) Check in of merged files from trunk into branch is complete.
 921                     	@ $(ECHO)
 922                     	$(MAKE) -f $(FILE) branch_merge_out_finish BNAME=$(BNAME)
 923                     
 924 jim.wunderlich 1.6  branch_merge_out_finish: exists_minimum exists_cvs_BNAME
 925 jim.wunderlich 1.8  	$(CVS) rtag -F -r TASK-$(BNAME)-merging_out_from_trunk TASK-$(BNAME)-merged_out_from_trunk $(MODULE_NAME)
 926                     	$(CVS) rtag -F -r TASK-$(BNAME)-merging_out_to_branch TASK-$(BNAME)-merged_out_to_branch $(MODULE_NAME)
 927                     	$(CVS) rtag -d TASK-$(BNAME)-merging_out_from_trunk $(MODULE_NAME)
 928                     	$(CVS) rtag -d TASK-$(BNAME)-merging_out_to_branch $(MODULE_NAME)
 929 jim.wunderlich 1.1  	@ $(ECHO) 
 930                     	@ $(ECHO) Branch Management tags have now been updated to reflect the new branch status.
 931                     	@ $(ECHO)
 932                     
 933                     
 934                     
 935                     
 936                     ## =====================
 937                     ###
 938                     ### Function: branch_migrate - starts the process to migrate the 
 939                     ###                                    branch to the HEAD of the trunk. 
 940                     ###                            
 941                     ##  Usage:    branch_migrate BNAME=(BRANCH NAME)
 942                     ## 
 943                     ##  Note:     Must be executed from the directory where the top pegasus 
 944                     ##            directory shall be placed when the checkout is performed 
 945                     ##            to instantiate the working copy of the trunk within which 
 946 jim.wunderlich 1.3  ##            the merge will be performed.
 947                     ##
 948                     ##  Note:     You can start this process over prior to the commit by 
 949                     ##            removing the working copy of the tree and doing a 
 950                     ##            "branch_delete (BNAME)_new" and then starting over with
 951                     ##            the branch_migrate command.
 952 jim.wunderlich 1.1  ##
 953                     ##  Process:
 954                     ##
 955                     ##   branch_migrate BNAME=(BRANCH NAME)
 956                     ##     - get diffs of unmerged_changes_branch into a local patch_diff file.
 957                     ##     - create the new branch to migrate to.
 958                     ##     - Checkout the new branch
 959                     ##     - Apply the patch_diff file to the working trunk
 960                     ##     - Manually resolve any merge conflicts in the working trunk.
 961                     ##
 962                     ##   branch_migrate_commit BNAME=(BRANCH NAME)
 963                     ##     - Commit the changes into the new branch
 964                     ##
 965                     ##  EITHER
 966                     ##   branch_migrate_finish BNAME=(BRANCH NAME)
 967                     ##     - Remove the old branch.
 968                     ##     - Rename all branch tags
 969                     ##
 970                     ##  OR
 971                     ##   branch_rename BNAME=(BRANCH_NAME)_new  NEW_BNAME=(BRANCH NAME)_X
 972                     ##
 973 jim.wunderlich 1.1  ##
 974 jim.wunderlich 1.6  branch_migrate: exists_minimum exists_cvs_BNAME
 975 jim.wunderlich 1.1  	$(MAKE) -f $(FILE) branch_diff_unmerged_branch BNAME=$(BNAME) 1>branch_migrate_diffs
 976                     	$(MAKE) -f $(FILE) branch_create BNAME=$(BNAME)_new
 977 jim.wunderlich 1.8  	$(CVS) checkout -P -r TASK-$(BNAME)_new-branch $(MODULE_NAME)
 978 jim.wunderlich 1.1  	$(PATCH) -b -p0 --global-reject-file=global-reject-patch-file < branch_migrate_diffs
 979                     	@ $(ECHO)
 980                     	@ $(ECHO)
 981                     	@ $(ECHO) Differences from previous branch are now merged into 
 982                     	@ $(ECHO) the local working copy of the new branch.
 983                     	@ $(ECHO)
 984                     	@ $(ECHO) Now manually:
 985                     	@ $(ECHO)   1. Resolve any merge conflicts. 
 986                     	@ $(ECHO)      Check the global-patch-reject file in this directory.
 987                     	@ $(ECHO)      If it does not exist then there were no patch errors.
 988                     	@ $(ECHO)   2. Check for added files and directories and do a cvs add 
 989                     	@ $(ECHO)      command for them prior to the commit.. 
 990                     	@ $(ECHO)
 991                     	@ $(ECHO) Then check in the files. Either manually or by using 
 992                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_migrate_ci BNAME=$(BNAME)"
 993                     	@ $(ECHO) within the $(MODULE_NAME) directory.
 994                     	@ $(ECHO)
 995 jim.wunderlich 1.3  	@ $(ECHO) After the commit is complete do either one of the following
 996 jim.wunderlich 1.8  	@ $(ECHO) dependent on whether you want the previous branch deleted or saved.
 997 jim.wunderlich 1.3  	@ $(ECHO)
 998                     	@ $(ECHO) This will delete the previous branch and move the branch management.
 999                     	@ $(ECHO)
1000                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_migrate_finish BNAME=$(BNAME)"
1001 jim.wunderlich 1.1  	@ $(ECHO) within the $(MODULE_NAME) directory to reset the appropriate
1002                     	@ $(ECHO) branch management tags.
1003                     	@ $(ECHO)
1004 jim.wunderlich 1.3  	@ $(ECHO) This will rename the branch just migrated to keeping the old branch.
1005                     	@ $(ECHO)
1006                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_rename BNAME=$(BNAME)_new NEW_BNAME=$(BNAME)_(VER)" 
1007                     	@ $(ECHO) 
1008                     	@ $(ECHO) You can start this process over prior to the commit by removing
1009                     	@ $(ECHO) the working copy of the tree and then deleting the new branch this
1010                     	@ $(ECHO) process created with
1011 jim.wunderlich 1.1  	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_delete BNAME=$(BNAME)_new"
1012 jim.wunderlich 1.3  	@ $(ECHO) and then start over with
1013                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_migrate BNAME=$(BNAME)" 
1014                     	@ $(ECHO) 
1015 jim.wunderlich 1.1  	@ $(ECHO)
1016                     
1017 jim.wunderlich 1.6  branch_migrate_ci branch_migrate_commit: exists_minimum exists_cvs_BNAME
1018 jim.wunderlich 1.1  	$(CD) $(MODULE_NAME)
1019                     	$(CVS) commit
1020                     	@ $(ECHO) 
1021                     	@ $(ECHO) Check in of merged files from previous branch into 
1022                     	@ $(ECHO) new branch is complete.
1023                     	@ $(ECHO)
1024                     	$(CD) ..
1025                     	$(MAKE) -f $(FILE) branch_diff_to_root BNAME=$(BNAME) > diff_to_root_$(BNAME)
1026                     	$(MAKE) -f $(FILE) branch_diff_to_root BNAME=$(BNAME)_new > diff_to_root_$(BNAME)_new
1027                     	@ $(ECHO) Do a 
1028                     	@ $(ECHO) "  diff diff_to_root_$(BNAME) diff_to_root_$(BNAME)_new"
1029 jim.wunderlich 1.8  	@ $(ECHO) to verify TASK-$(BNAME)_new has all the changes.
1030 jim.wunderlich 1.1  	@ $(ECHO)
1031                     	@ $(ECHO) Then do a
1032                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_migrate_finish BNAME=$(BNAME)"
1033 jim.wunderlich 1.8  	@ $(ECHO) which will remove TASK-$(BNAME), the old branch, and then rename TASK-$(BNAME)_new to TASK-$(BNAME)
1034 jim.wunderlich 1.1  	@ $(ECHO) Alternatively you can keep the old branch around for a while and just 
1035                     	@ $(ECHO) rename the new branch by doing a 
1036                     	@ $(ECHO) "  $(MAKE) -f $(FILE_NAME) branch_rename BNAME=$(BNAME)_new NEW_BNAME=($BNAME)_X"
1037                     	@ $(ECHO) where X is something you chose to identify the new branch.
1038                     
1039                     
1040 jim.wunderlich 1.6  branch_migrate_finish: exists_minimum exists_cvs_BNAME
1041 jim.wunderlich 1.1  	$(MAKE) -f $(FILE) branch_delete BNAME=$(BNAME)
1042                     	$(MAKE) -f $(FILE) branch_rename BNAME=$(BNAME)_new NEW_BNAME=$(BNAME)
1043                     	@ $(ECHO) 
1044                     	@ $(ECHO) Branch Management tags have now been updated to reflect the new branch status.
1045                     	@ $(ECHO)
1046                     
1047                     
1048                     
1049                     

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2