A computer-implemented method in a client computing system for synchronizing content of a file with a distinct and separate server computing system using a local data content index, the method comprising: when content of the file is modified or created, dividing the file into one or more portions; determining which of the one or more portions of the file correspond to data content deemed to be already present on the server computing system by performing an index lookup into the local data content index and without querying the server computing system to find out what data content is already present on the server computing system, the local data content index residing on the client computing system and indexing the data content of a plurality of files (103, 205) of the client computing system; generating a patch comprising one or more segments that correspond to the determined one or more portions of the file, each segment either containing data content or a reference to data content in another file, the segment containing data content when the corresponding portion of the file is determined to correspond to data content not deemed to be already present on the server computing system, the segment containing a reference to data content when the corresponding portion of the file is determined to correspond to data content deemed to be already present on the server computing system; and forwarding the generated patch and causing a new file to be generated on the server computing system from the patch in conjunction with data content already present on the server computing system, thereby synchronizing the content of the file without forwarding the entire data content of the file from the client computing system to the server computing system. when content of the file is modified or created, dividing the file into one or more portions; determining which of the one or more portions of the file correspond to data content deemed to be already present on the server computing system by performing an index lookup into the local data content index and without querying the server computing system to find out what data content is already present on the server computing system, the local data content index residing on the client computing system and indexing the data content of a plurality of files (103, 205) of the client computing system; generating a patch comprising one or more segments that correspond to the determined one or more portions of the file, each segment either containing data content or a reference to data content in another file, the segment containing data content when the corresponding portion of the file is determined to correspond to data content not deemed to be already present on the server computing system, the segment containing a reference to data content when the corresponding portion of the file is determined to correspond to data content deemed to be already present on the server computing system; and forwarding the generated patch and causing a new file to be generated on the server computing system from the patch in conjunction with data content already present on the server computing system, thereby synchronizing the content of the file without forwarding the entire data content of the file from the client computing system to the server computing system.