3 ms·
That's nonsense. Sync has always meant merging semantic changes in state between two or more devices. If I buy an app on my desktop and take 4 photos on my pho
by shalmanese 12y ago
That's nonsense.
Sync has always meant merging semantic changes in state between two or more devices. If I buy an app on my desktop and take 4 photos on my phone, when I sync the two devices, I expect the new app on my phone and 4 new photos in my iPhoto.
As version control has taught us, merging changesets can lead to a menagerie of pathological cases and there's no universally correct automatic merging tool. iTunes in the grandfather's case, chose to merge incorrectly and lose data.
- lutusp 12y ago> That's nonsense. You either need to read more carefully, or you do not understand what "sync" means. Please do not add to public confusion about this. 1. Synchronization means making two directory trees identical -- same files, same count, no more, no less. 2. If tree B (destination) has more files than tree A (source), sync deletes files from B so it agrees with A. 3. If tree B has fewer files than A, files are added to B so it agrees with A. 4. If tree B has the same number of files, but different contents or dates, the sync program replaces them with files from tree A. 5. THEREFORE, ERGO, the operator MUST say which is the source, and which is the destination. For the life of me I can't understand why people find this so confusing. > Sync has always meant merging semantic changes in state between two or more devices. YES, as clearly explained above. And that means if the user chooses the wrong source, for example a device with no music tracks, then the program will dutifully erase all the music tracks from the destination device. > iTunes in the grandfather's case, chose to merge incorrectly and lose data. Yes, but that outcome resulted, not from an error in iTunes, but from the user misidentifying the source device, and that, in turn, resulted from his not understanding sync, a misunderstanding that he revealed in his post by attempting to rely on an incorrect dictionary definition of the word. EDIT: consider this hypothetical example. 1. Directory tree A has 9 files. 2. Directory tree B has 10 files. 3. In your description, the user doesn't have to say which is the source -- no user intervention is required. 4. If so, without user intervention, how does the sync program know what to do? Does it add a file to tree A, or delete a file from tree B? Think before answering. EDIT: Readers, do not downvote posts simply because you're confused. Ignorance is not a justification to cast a downvote.
- mandalar12 12y ago> Sync has always meant merging semantic changes in state between two or more devices. That is a definition of file synchronization [1]. Usually the aim of "syncing" is to input two directories and the outcome is that the contents of both directories are the same. What you are describing below point 1. is an algorithm to achieve this goal. The algorithm you describe needs a source and destination folder and this may be Apple's algorithm and implementation (I have no idea) but this is by no means the only way to do so (see two-way file synchronization [1]). [1] https://en.wikipedia.org/wiki/File_synchronization https://en.wikipedia.org/wiki/File_synchronization
- lutusp 12y agoYour post is attached to mine, but it quotes and discusses a point made in its parent.
- mandalar12 12y agoThe quote is not yours but I discussed your post.
- lutusp 12y agoIn that case, there are two strategies for synchronizing file systems -- either: 1. The operator tells the program what to do. -- or -- 2. The program gets it wrong at least some of the time. In the case of contact list synchronization, like Google Contacts, the system assumes that the device the operator is editing at the moment is the source, and acts accordingly. Notice that a positive determination is made as to what the source and destination are, based on the operator's activity and its timing. In all other cases where two directory trees are synchronized, are made to have the same content, and in which files may be deleted as well as added, the operator has to tell the program which is the source and which is the destination. End, full stop.
- mandalar12 12y ago