Re: develop_begin_command - can't change directory
"Pendergraft, Jerry" <[email protected]>
| Newsgroups | gmane.comp.version-control.aegis.user |
|---|---|
| Message-ID | <[email protected]> |
These errors all seem to indicate the "hostcomp" directory is not present, which in a normal new aegis change it would have no reason to be. Recall that aegis changes are "sparse" and that no files or directories exist unless/until you aecp or aenf something. If there is a controlled file in your project you could define the begin_development command to include: aegis -cp hostcomp/some_file ; .... Even if you have your project set up to make your change fully populated, I am guessing that does not take place until after the develop_begin_command has been run. But one might wonder why you want to clean the .d file as you are doing, why not simply have your makefile that generates them "force" rebuilding even if they are present? ________________________________________ From: [email protected] [[email protected]] on behalf of Cal Webster [[email protected]] Sent: Friday, May 11, 2012 4:37 PM To: Aegis Mailing List Cc: Travis Clark Subject: [Aegis] develop_begin_command - can't change directory ## Aegis Version: rpm -q ------ aegis-4.24.4-rc1.i686 ------ ## Host OS: uname -r ----------------------- 2.6.32-220.7.1.el6.i686 ----------------------- cat /etc/redhat-release ----------------------- CentOS release 6.2 (Final) ----------------------- ## Synopsis: The "develop_begin_command" function throws an error when attempting to change the working directory. This appears to be a bug in Aegis. ## Problem Description: Regardless of how I construct or call the commands, "cd" can't find any directories. By comparison, the "build_command" function has no problems with this. According to the description in aepconf (5) this should work. Excerpt from aepconf man page: ------------------------------ develop_begin_command = string; This field contains a command to be executed whenever a 'aegis -Develop_Begin' command is successful. If this field is absent, nothing is done. Used by the aedb(1) command. All of the substitutions described by aesub(5) are available. Executed as: the developer. Current directory: the development directory of the change. Exit status: ignored. ------------------------------ I need to remove all *.d (auto-dependency) derived files and rebuild them as soon as development begins. Our projects are managed by segregating subsystems in subdirectories of the main project so we have to change directory to do anything. The derived auto-dependency files contain paths to the integration directory so they poison the dependency mappings. I've changed our Makefiles so the *.d files are removed at the end of aeb but they still need to be re-generated at aedb. ## Results: Variations I've tried: ==================================================== develop_begin_command = "cd hostcomp/ ; rm *.d ; make dep"; ==================================================== aedb -p av8b94.17 -c 3 ----------------------- aegis: project "av8b94.17": change 3: development directory "/home/cwebster/aegis/av8b94.17.C003" aegis: logging to "/home/cwebster/aegis/av8b94.17.C003/aegis.log" aegis: cd /home/cwebster/aegis/av8b94.17.C003 aegis: cd hostcomp/ ; rm *.d ; make dep /bin/sh: line 0: cd: hostcomp/: No such file or directory aegis: warning: command "cd hostcomp/ ; rm *.d ; make dep" exit status 1 aegis: project "av8b94.17": change 3: merging files from all baselines into working directory according to directory style aegis: project "av8b94.17": change 3: user "cwebster" has begun development ==================================================== develop_begin_command = "pwd ; cd ${Change development_directory}/hostcomp ; rm *.d ; make dep"; ==================================================== aedb -p av8b94.17 -c 4 ----------------------- aegis: project "av8b94.17": change 4: development directory "/home/cwebster/aegis/av8b94.17.C004" aegis: logging to "/home/cwebster/aegis/av8b94.17.C004/aegis.log" aegis: cd /home/cwebster/aegis/av8b94.17.C004 aegis: pwd ; cd /home/cwebster/aegis/av8b94.17.C004/hostcomp ; rm *.d ; make dep /home/cwebster/aegis/av8b94.17.C004 /bin/sh: line 0: cd: /home/cwebster/aegis/av8b94.17.C004/hostcomp: No such file or directory aegis: warning: command "pwd ; cd /home/cwebster/aegis/av8b94.17.C004/hostcomp ; rm *.d ; make dep" exit status 1 aegis: project "av8b94.17": change 4: merging files from all baselines into working directory according to directory style aegis: project "av8b94.17": change 4: user "cwebster" has begun development ----------------------- ==================================================== develop_begin_command = "/usr/local/bin/fixdeps.sh"; ==================================================== aedb -p av8b94.17 -c 5 ----------------------- aegis: project "av8b94.17": change 5: development directory "/home/cwebster/aegis/av8b94.17.C005" aegis: logging to "/home/cwebster/aegis/av8b94.17.C005/aegis.log" aegis: cd /home/cwebster/aegis/av8b94.17.C005 aegis: /usr/local/bin/fixdeps.sh /usr/local/bin/fixdeps.sh: line 2: cd: hostcomp: No such file or directory rm: cannot remove `*.d': No such file or directory make: *** No rule to make target `dep'. Stop. aegis: warning: command "/usr/local/bin/fixdeps.sh" exit status 2 aegis: project "av8b94.17": change 5: merging files from all baselines into working directory according to directory style aegis: project "av8b94.17": change 5: user "cwebster" has begun development ----------------------- ==================================================== In the last attempt I created a shell script to use instead of bare commands. /usr/local/bin/fixdeps.sh ------------------------- #!/bin/sh cd hostcomp rm *.d make dep ------------------------- ## Both of these aegis.conf entries start the same way. One works but the other doesn't. build_command = "cd hostcomp/ ; STATE=${state} make dep ; STATE=${state} make aegis_build"; develop_begin_command = "cd hostcomp/ ; rm *.d ; make dep"; Thank you! Cal Webster _______________________________________________ Aegis-users mailing list [email protected] http://lists.auug.org.au/listinfo/aegis-users This communication, including any attachments, may contain information that is proprietary, privileged, confidential or legally exempt from disclosure. If you are not a named addressee, you are hereby notified that you are not authorized to read, print, retain a copy of or disseminate any portion of this communication without the consent of the sender and that doing so may be unlawful. If you have received this communication in error, please immediately notify the sender via return e-mail and delete it from your system.