{"thread":{"id":"22309","subject":"git equivalent to clearcase wink-in","startedAt":"2010-01-20T20:20:37Z","lastAt":"2010-01-21T07:46:21Z","messageCount":7,"participants":["Richard Assal","Jamie Wellnitz","Mike Hommey","Robin Rosenberg","Sverre Rabbelier","Johan Herland","Matthieu Moy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"132212","messageId":"810256.84037.qm@web45111.mail.sp1.yahoo.com","threadId":"22309","inReplyTo":null,"subject":"git equivalent to clearcase wink-in","fromName":"Richard Assal","fromEmail":"richard_assal@yahoo.com","sentAt":"2010-01-20T20:20:37Z","receivedAt":"2010-01-20T20:20:37Z","isPatch":false,"sender":{"key":"richard_assal@yahoo.com","avatar":null},"body":"To whom it may concer,\n\nI have been playing with git recently, and I like it very much.  I was wondering if you can tell me if git has something that is equivalent to clearcase wink-in functionality.  The reason I ask, if it takes 1 hour to build my repository, then every clone of my repository will also take one hour to build at the remote location.  In clearcase you can wink in objects that have already been built.  time to wink in could just be minutes rather than waiting a full hour for all the binaries to build.\n\nCan you help me out here?  I would like to know if git has something similar.\n\nRichard.\n\n\n      \n"},{"id":"132225","messageId":"7938b46a1001201305j499e05bg2654d634d7b26d76@mail.gmail.com","threadId":"22309","inReplyTo":"810256.84037.qm@web45111.mail.sp1.yahoo.com","subject":"Re: git equivalent to clearcase wink-in","fromName":"Jamie Wellnitz","fromEmail":"jwellnitz@gmail.com","sentAt":"2010-01-20T21:05:46Z","receivedAt":"2010-01-20T21:05:46Z","isPatch":false,"sender":{"key":"jwellnitz@gmail.com","avatar":null},"body":"Would something like ccache (compiler cache) help you out?  It's not\nthe same as wink-in (which, as I understand it, copies an already\nbuilt object file from someone else who has built it).  Instead each\nuser has their own cache, so everyone has to pay the expensive build\nprice at least once.\n\nIt also only works for C/C++, I think.\n\n-- Jamie\n\nOn Wed, Jan 20, 2010 at 3:20 PM, Richard Assal <richard_assal@yahoo.com> wrote:\n> To whom it may concer,\n>\n> I have been playing with git recently, and I like it very much.  I was wondering if you can tell me if git has something that is equivalent to clearcase wink-in functionality.  The reason I ask, if it takes 1 hour to build my repository, then every clone of my repository will also take one hour to build at the remote location.  In clearcase you can wink in objects that have already been built.  time to wink in could just be minutes rather than waiting a full hour for all the binaries to build.\n>\n> Can you help me out here?  I would like to know if git has something similar.\n>\n> Richard.\n>\n>\n>\n>\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n>\n"},{"id":"132227","messageId":"20100120211251.GA26274@glandium.org","threadId":"22309","inReplyTo":"7938b46a1001201305j499e05bg2654d634d7b26d76@mail.gmail.com","subject":"Re: git equivalent to clearcase wink-in","fromName":"Mike Hommey","fromEmail":"mh@glandium.org","sentAt":"2010-01-20T21:12:51Z","receivedAt":"2010-01-20T21:12:51Z","isPatch":false,"sender":{"key":"mh@glandium.org","avatar":"https://avatars.githubusercontent.com/u/1038527?v=4"},"body":"On Wed, Jan 20, 2010 at 04:05:46PM -0500, Jamie Wellnitz wrote:\n> Would something like ccache (compiler cache) help you out?  It's not\n> the same as wink-in (which, as I understand it, copies an already\n> built object file from someone else who has built it).  Instead each\n> user has their own cache, so everyone has to pay the expensive build\n> price at least once.\n\nSurely the ccache directory could be shared on nfs or some other network\nfilesystem. Or object file could be checked in, which is imho ugly, but\nshould work (better to do that on a separate branch)\n\nMike\n"},{"id":"132228","messageId":"201001202224.47747.robin.rosenberg@dewire.com","threadId":"22309","inReplyTo":"7938b46a1001201305j499e05bg2654d634d7b26d76@mail.gmail.com","subject":"Re: git equivalent to clearcase wink-in","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2010-01-20T21:24:47Z","receivedAt":"2010-01-20T21:24:47Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"onsdagen den 20 januari 2010 22.05.46 skrev  Jamie Wellnitz:\n> Would something like ccache (compiler cache) help you out?  It's not\n> the same as wink-in (which, as I understand it, copies an already\n> built object file from someone else who has built it).  Instead each\n> user has their own cache, so everyone has to pay the expensive build\n> price at least once.\n> \n> It also only works for C/C++, I think.\n\nJudging from the documentation you can share the cache with others.\n\n-- robin\n"},{"id":"132240","messageId":"fabb9a1e1001201434n1036253ds1120c2abc0d3728e@mail.gmail.com","threadId":"22309","inReplyTo":"20100120211251.GA26274@glandium.org","subject":"Re: git equivalent to clearcase wink-in","fromName":"Sverre Rabbelier","fromEmail":"srabbelier@gmail.com","sentAt":"2010-01-20T22:34:18Z","receivedAt":"2010-01-20T22:34:18Z","isPatch":false,"sender":{"key":"srabbelier@gmail.com","avatar":"https://avatars.githubusercontent.com/u/3098?v=4"},"body":"Heya,\n\nOn Wed, Jan 20, 2010 at 22:12, Mike Hommey <mh@glandium.org> wrote:\n> Surely the ccache directory could be shared on nfs or some other network\n> filesystem. Or object file could be checked in, which is imho ugly, but\n> should work (better to do that on a separate branch)\n\nHa! It could even be stored as a note on the tree object? The whole\nnotes business seems to be nearing a usable stage. Or maybe notes are\ntext-only, mhhh. Johan?\n\n-- \nCheers,\n\nSverre Rabbelier\n"},{"id":"132258","messageId":"201001210251.24948.johan@herland.net","threadId":"22309","inReplyTo":"fabb9a1e1001201434n1036253ds1120c2abc0d3728e@mail.gmail.com","subject":"Re: git equivalent to clearcase wink-in","fromName":"Johan Herland","fromEmail":"johan@herland.net","sentAt":"2010-01-21T01:51:24Z","receivedAt":"2010-01-21T01:51:24Z","isPatch":false,"sender":{"key":"johan@herland.net","avatar":"https://avatars.githubusercontent.com/u/547031?v=4"},"body":"On Wednesday 20 January 2010, Sverre Rabbelier wrote:\n> On Wed, Jan 20, 2010 at 22:12, Mike Hommey <mh@glandium.org> wrote:\n> > Surely the ccache directory could be shared on nfs or some other\n> > network filesystem. Or object file could be checked in, which is imho\n> > ugly, but should work (better to do that on a separate branch)\n> \n> Ha! It could even be stored as a note on the tree object? The whole\n> notes business seems to be nearing a usable stage. Or maybe notes are\n> text-only, mhhh. Johan?\n\nIn principle you could (ab)use the notes structure for this purpose. There \nis nothing inherently text-only about notes. I would certainly suggest to \ncreate a custom notes ref for this purpose, so that these object caches are \nnot mixed up with other notes (and are also not displayed by git log).\n\nI'm also not sure the putting the note on the tree object is the right \ngranularity. You could imagine putting a .o-file as a note on the \ncorresponding .c-file _blob_, but that would only work if the .o-file \ndepended solely on the .c file (i.e. it would only work for preprocessed \nsource, or .c-files without any #includes), so that is probably not viable.\n\nThe problem with putting the object cache on the tree object, is that it \nwould only be useful for those building the exact same tree as the one where \nthe cache was made. Even though ccache can handle changed files just fine, \nyou would not be able to leverage it, since the cache would be hidden under \na different tree object.\n\n\nHere's is an even more extreme idea: AFAIK, ccache works by hashing a \npreprocessed source file, and mapping the hash value to the resulting object \nfile. A later lookup of the same preprocessed source file will yield the \nobject file without having to go through that pesky compilation.\n\nNow, what if that hash function happened to be SHA1, and the mapping \nhappened to be the Git object database? In other words you could create a \nnotes tree where the keys are SHA1s from preprocessed source files, and the \nnote objects are the corresponding object files. As long as you don't call \ngc_notes() on this notes tree, it doesn't really matter that your SHA1 keys \ndo not really exist as objects in the Git repo. The notes code can happily \nmap any arbitrary SHA1 sum to a note object; it's only in gc_notes() that we \nactually care whether that SHA1 identifies an existing Git object.\n\n\nOh, and BTW, I consider the notes feature to be ready for prime time once \nthe patch series currently in 'pu' is fully merged.\n\n\nHave fun! :)\n\n...Johan\n\n-- \nJohan Herland, <johan@herland.net>\nwww.herland.net\n"},{"id":"132277","messageId":"vpqiqavgasy.fsf@bauges.imag.fr","threadId":"22309","inReplyTo":"20100120211251.GA26274@glandium.org","subject":"Re: git equivalent to clearcase wink-in","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2010-01-21T07:46:21Z","receivedAt":"2010-01-21T07:46:21Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Mike Hommey <mh@glandium.org> writes:\n\n> On Wed, Jan 20, 2010 at 04:05:46PM -0500, Jamie Wellnitz wrote:\n>> Would something like ccache (compiler cache) help you out?  It's not\n>> the same as wink-in (which, as I understand it, copies an already\n>> built object file from someone else who has built it).  Instead each\n>> user has their own cache, so everyone has to pay the expensive build\n>> price at least once.\n>\n> Surely the ccache directory could be shared on nfs or some other network\n> filesystem.\n\nThere's a section \"SHARING A CACHE\" here:\nhttp://ccache.samba.org/ccache-man.html\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"}]}