1 Task
Your task is to develop a small program while maintaining your development history with Apache Subversion (svn
Please make sure to use direct repository access (file://) in all svn commands when addressing the repository.
Please perform the following steps (don’t forget to copy your OS/svn/compile/doxygen commands to your text file):
S1) Create a new directory called 123456. Within this directory, create three directories named “mysvn”, “mycode” and “mybranch”.
S2) Within the mysvn directory create an empty svn repository called “myapp” for
your svn project (don’t forget that you do not modify files in the repository directly - always use svn commands to interact with the repository).
S3) Make sure to import (empty) sub-directories “trunk”, “tags” and “branches” into
your repository.
S4) Change to directory mycode and checkout the (empty) trunk folder from your repository.
S5) In the checked out trunk directory create files “myapp.c”, “myfunctions.c”, “myfunctions.h” and “Makefile” with the following content:
myfuncions.c contains a simple function that receives a name as parameter
and simply prints ”Hello name” to the screen (where name is replaced
with the passed parameter).
myfunctions.h contains an include guard and a declaration for the function defined in myfunctions.c.
myapp.c #includes myfunctions.h and contains a main() function that prompts the user for a name and calls the function in myfunction.c with the entered name.
Makefile contains a makefile for your application (I will use this to compile your program!). Make sure to use separate compilation - each source file should have a target that creates a coresponding object file. Also provide a target that links these object files into the final executable program. Invoking make without a target should create the executable program and also run the program. Do not use implicit rules!
Use svn to add these files to your repository (do not commit yet).
S6) Add doxygen comments to your code, create a doxygen configuration file (Doxyfile) for HTML output and create your doxygen documentation (do not add the created documentation to your repository).
S7) Add a target called “html” to your makefile that generates the HTML documentation. Make sure that invoking make without a target will now also create the HTML documentation (in addition to compiling and running the program). Use make to generate the HTML documentation.
S8) Compile and test your program - if it is working correctly, commit your code to
your repository using log message “first program working”.
S9) Modify your function in myfunctions.c: Change the output to ”Hello name my name is myName”, where myName is your name. Compile and test your
application - if it is working correctly, commit your code to your repository using
log message “second program working”.
S10) Create a tag for your solution in the repository’s tag folder - use name “release1- 0” for your tag.
S11) Create a branch of your program in the repository’s branches folder and name this branch “newdevelopment”.
S12) Go to the mybranch directory and check out your newly created branch
“newdevelopment”.
S13) Add a function double printFractions(int max) to the branch’s file myfunctions.c and add a corresponding declaration to myfunctions.h. This function uses a for- loop to print fractions 1/i for i from 1 to max (both inclusive) and also their corresponding floating point value (i.e. first two lines will be “1/1 = 1” and “1/2
= 0.5”). Further, this function returns the sum of all created floating point values. Add a function call to this function to main in myapp.c. Compile and test your branch - if everything is working, commit your changes to your branch (please make sure you did not modify the previous function in any way) using log message “initial branch version”.
S14) Comment your new function for doxygen and create the updated html documentation.
S15) Change back to the mycode directory and change the output of the “hello” function to ”Hello name my name is myName - nice to meet you”. Compile and
test your application - if it is working correctly, commit your code to your
repository using log message “update number 1 to trunk”.
S16) Change back to the mybranch folder and make sure to bring your branch in sync with the last modifications to the trunk - i.e. merge your trunk into your branch. If you encounter a conflict (you shouldn’t), try to resolve it but make sure that the modifications from the trunk will get into your branch.
S17) Compile and test your branch - if it is working correctly, commit your code to your repository using log message “branch in sync with update number 1 to trunk”.
S18) Create a tag for your branch in the repository’s tag folder - use name “branch1- 0” for your tag.
S19) Add a new function to your branch’s myfunctions.c file that recieves a name as parameter and prints “Goodbye name - it was nice to meet you”. Don’t forget
to declare this function in the header file. Add a function call to this function to main in myapp.c. Compile and test your branch - if everything is working, commit your changes to your branch using log message “updated branch version”.
S20) Comment your new function for doxygen and create the updated html documentation.
S21) Change back to the mycode folder and make sure your trunk is up-to-date. S22)
Reintegrate your branch into your trunk.
S23) Compile and test your trunk. If everything is working commit with log message
“trunk updated to branch”.
S24) Remove the now useless branch from the repository.
S25) Create a tag for your trunk in the repository’s tag folder - use name “release2-0”
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of