{"thread":{"id":"299","subject":"keyword expansion","startedAt":"2005-04-25T00:23:43Z","lastAt":"2005-04-26T00:34:59Z","messageCount":5,"participants":["Thomas Glanzmann","tony.luck@intel.com","Geert Bosch","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"1564","messageId":"20050425002343.GF10806@cip.informatik.uni-erlangen.de","threadId":"299","inReplyTo":null,"subject":"keyword expansion","fromName":"Thomas Glanzmann","fromEmail":"sithglan@stud.uni-erlangen.de","sentAt":"2005-04-25T00:23:43Z","receivedAt":"2005-04-25T00:23:43Z","isPatch":false,"sender":{"key":"sithglan@stud.uni-erlangen.de","avatar":null},"body":"Hello,\nI am aware that keyword expansion is at the moment at the very bottom of\nthe todo list. However I need it. Has someone something ready to use? I\nam looking for the following informations:\n\n\t- Time stamp of the last modification of a file\n\t- last Committer/Author of the file\n\nWhat I want is a script which runs after an export that checks for\nkeywords in files and expands them using informations extracted out of\nthe tree.  I would be gratefull for any pointers/shell snippsets.\n\nI just migrated my mutt vendor tracking tree to git and it works quiet\nwell. Thanks for all the effort!\n\nGreetings,\n\tThomas\n"},{"id":"1632","messageId":"200504251756.j3PHuSh01362@unix-os.sc.intel.com","threadId":"299","inReplyTo":"20050425002343.GF10806@cip.informatik.uni-erlangen.de","subject":"mod-times (was: keyword expansion)","fromName":"","fromEmail":"tony.luck@intel.com","sentAt":"2005-04-25T17:56:28Z","receivedAt":"2005-04-25T17:56:28Z","isPatch":false,"sender":{"key":"tony.luck@intel.com","avatar":"https://avatars.githubusercontent.com/u/5446021?v=4"},"body":"> I am aware that keyword expansion is at the moment at the very bottom of\n> the todo list. However I need it. Has someone something ready to use? I\n> am looking for the following informations:\n> \n> \t- Time stamp of the last modification of a file\n\nOne way to do this would be to rip on some of the core fundamentals of GIT\nand store the time that an object was created inside the object. E.g.\n\n   blob size secs-since-1970 ...\n\nThen \"read-tree\" could fill this into the cache, and checkout-cache could\nset the mod-time on the file when it creates it, which would mean that you\ncould see the timestamp for a file simply by using \"ls -l file\".\n\nI think we'd need some other justifications before this would stand any\nhope of getting in though, since it makes such a huge incompatible change\nto the basic GIT format :-)  Maybe queue the idea for GIT2.0?\n\n-Tony\n"},{"id":"1634","messageId":"20050425181011.GA14076@cip.informatik.uni-erlangen.de","threadId":"299","inReplyTo":"200504251756.j3PHuSh01362@unix-os.sc.intel.com","subject":"Re: mod-times (was: keyword expansion)","fromName":"Thomas Glanzmann","fromEmail":"sithglan@stud.uni-erlangen.de","sentAt":"2005-04-25T18:10:11Z","receivedAt":"2005-04-25T18:10:11Z","isPatch":false,"sender":{"key":"sithglan@stud.uni-erlangen.de","avatar":null},"body":"Hi,\n\n\n> > \t- Time stamp of the last modification of a file\n\n> One way to do this would be to rip on some of the core fundamentals of GIT\n> and store the time that an object was created inside the object. E.g.\n\nI think I have nearly something finished. Using rev-tree, cat-file and\nls-tree -r written in perl.\n\n>    blob size secs-since-1970 ...\n\nI dislike the idea because of reasons Torvalds has already mentioned\nwhen talking about file renames and cvs annotate. And it also would fit\nonly this special case.\n\nHaving a 'git export' with real timestamps would be fun, but when I\nthink it over I don't really need it. And if I need it it would be a\nmatter of 20 minutes. :-)\n\n\tThomas\n"},{"id":"1635","messageId":"3741014dfd79fce50999dc19d7029c40@adacore.com","threadId":"299","inReplyTo":"200504251756.j3PHuSh01362@unix-os.sc.intel.com","subject":"Re: mod-times (was: keyword expansion)","fromName":"Geert Bosch","fromEmail":"bosch@adacore.com","sentAt":"2005-04-25T18:13:43Z","receivedAt":"2005-04-25T18:13:43Z","isPatch":false,"sender":{"key":"bosch@adacore.com","avatar":null},"body":"\nOn Apr 25, 2005, at 13:56, tony.luck@intel.com wrote:\n>> \t- Time stamp of the last modification of a file\n>\n> One way to do this would be to rip on some of the core fundamentals of \n> GIT\n> and store the time that an object was created inside the object. E.g.\n>\n>    blob size secs-since-1970 ...\n>\n> Then \"read-tree\" could fill this into the cache, and checkout-cache \n> could\n> set the mod-time on the file when it creates it, which would mean that \n> you\n> could see the timestamp for a file simply by using \"ls -l file\".\n\nOf course this negates the idea of content-based storage, since you\nwant two copies of the same content with different time-stamps to share\nthe same blob.\n\n   -Geert\n\n"},{"id":"1680","messageId":"Pine.LNX.4.58.0504251732410.18901@ppc970.osdl.org","threadId":"299","inReplyTo":"200504251756.j3PHuSh01362@unix-os.sc.intel.com","subject":"Re: mod-times (was: keyword expansion)","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-04-26T00:34:59Z","receivedAt":"2005-04-26T00:34:59Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Mon, 25 Apr 2005 tony.luck@intel.com wrote:\n> \n> One way to do this would be to rip on some of the core fundamentals of GIT\n> and store the time that an object was created inside the object. E.g.\n> \n>    blob size secs-since-1970 ...\n\nYou really don't want that.\n\nThe thing is, somebody doing a \"touch\" on a file should _not_ cause that \ntree to be committed as a new tree.\n\nTrying to save mtime in a git archive is about a million times worse than \nsaving the whole \"mode\" information, and there we already ended up cutting \nit down to just one bit, exactly because it was horrible not to.\n\nSo this is not about git formats, this is about it just not being \npractical to do. Git simply isn't a good thing to store mtime in.\n\n\t\t\tLinus\n"}]}