CMPS 105 Spring 2005 Due Wednesday, 5/4/05, at midnight Implement a local (i.e. non-networked) version of rsync, that synchronizes two file hierarchies specified on the command line. > mysync dir1 dir2 mysync should compare all of the files in dir1 and dir2 and, for each pair of files, if one version has changed, would replace the older one with the newer one. Each time a replacement is made, print out all relevant information such as dates, sizes, etc. Your program does not have to support all of the command line options specified in the rsync man page, but may support any that you think make sense for your implementation. Make your solution as efficient as you can. Questions/discussion: 1. Discuss ways that the performance of your program could be improved, regardless of whether or not you have implemented them. 2. Discuss how you could modify your solution to efficiently recognize and deal with a situation where a directory was copied, and then both copies of a file were modified after the split. 3. Discuss what would have to be done to network your solution. 4. Discuss what performance impact networking would have on your solution, and how to mitigate that impact. 5. Discuss how you could change the program to allow it to work automatically every time a portable computer (e.g. my laptop) is connected to the network? Be sure to consider the performance implications of this modification, and discuss how they might be addressed.