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