{"thread":{"id":"43427","subject":"cache for copy/rename detection","startedAt":"2006-11-26T12:59:31Z","lastAt":"2006-11-26T12:59:31Z","messageCount":1,"participants":["Nguyen Thai Ngoc Duy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"294740","messageId":"fcaeb9bf0611260459t7afa68eerf4dc66d7eb7fdcc1@mail.gmail.com","threadId":"43427","inReplyTo":null,"subject":"cache for copy/rename detection","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2006-11-26T12:59:31Z","receivedAt":"2006-11-26T12:59:31Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"I thought about this lately. git's expensive copy/rename detection can\nbe run once and the results are kept somewhere in .git. Copy/rename\ndetection depends on tree objects and git detection algorithm. Tree\nobjects are immutable and git algorithm change rate is low IMO. So\ncache invalidation is unlikely to happen.\n\nAnother thing I want to do with this cache is ability to manually\ninject some hints to git. For example, I remove a file. Several\ncommits later, I revive that file in another place. I know that two\nfiles are the same but can't tell git (and I don't think Git will\ndetect this pattern). With this cache, I can tell git this file is a\ncopy of that file.\n\nWhat do you think?\n-- \n"}]}