yes, it will tell you that it thinks you are copying a file, however that information is not actually recorded, but recalculated each time you read the log, therefore if the algorithm to detect copies is changed later, that change will apply to copies made in the past.
Hm, that sounds like a performance problem. You mean that each time one logs or annotates, it checks each add of the file against each other file in the tree to see if it might be a copy operation?
Also, I'm not entirely comfortable with the though that the history of an already committed file might spontanously change later.
right, i don't think you can do anything. but i think this whole case is rather unusual, can you construct an example where a problem would arise if the wrong copy is picked?
If it picks a file which just happens to have a few line which match, then those lines may have been written by a different person, at a different time, for a different purpose than the lines which were actually copied. That means that if you use blame to find the original author and ask him about the purpose, you'll get an incorrect answer. A line of code is not just a sequence of characters. It has an underlying purpose, within a context. Finding similarities without regarding context can be used to compress the repository, but not to infer parentship.