The next major set of tasks to tackle are delete and update. Version control systems typically version updates to a ?le and only store the differences between the ?les. Two system command which may help with this task are diff and patch. In a version control system, versioning should be explicit and not transparent. So, you will need to develop a reasonable versioning scheme. Also, remember to ?x up the get command so that you can recover the most recent working version from the delta of each version.
The ?nal milestone for your system is to support moving ?les from one directory to another. This is a potentially dif?cult task since you must move the version history, and con?icts are likely to arise if the same ?le already exists in the target directory. Your task is to develop a graceful way to handle these con?icts.
Now it is time to show some creativity. A total of 4 marks are allocated to useful extensions which you devise and implement. Based on your research of other version control systems, what can you add to make this system more useful? The more innovative and complete your system is, the more likely you'll receive the creativity points. Con?ict resolution in version control systems is a hard problem, and many commercial systems don't do it well. Finding novel ways to handle con?icts seamlessly is an easy way to impress.