1. A method of determining whether to use Copy-On-Write (COW) or Point-In-Time-Copy (PITC) for storing multiple versions of at least a portion of a file, comprising: receiving a request to modify a portion of a file; determining, via execution of instructions by a processor, whether to perform a Point-In-Time-Copy operation, wherein determining whether to perform a Point-In -Time-Copy operation comprises determining whether performing a Point-In-Time-Copy operation would fragment the current version of the file; if it is determined to perform a Point-In-Time-Copy, performing a Point-In-Time Copy operation on the portion of the file; and if it is determined not to perform a Point-In-Time-Copy, performing a Copy-On-Write operation on the portion of the file.