{"thread":{"id":"32428","subject":"Installation Plan","startedAt":"2012-12-21T14:43:53Z","lastAt":"2012-12-28T13:54:24Z","messageCount":3,"participants":["Dennis Putnam","Andrew Ardill","Enrico Weigelt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"205335","messageId":"50D475A9.9020407@bellsouth.net","threadId":"32428","inReplyTo":null,"subject":"Installation Plan","fromName":"Dennis Putnam","fromEmail":"dap1@bellsouth.net","sentAt":"2012-12-21T14:43:53Z","receivedAt":"2012-12-21T14:43:53Z","isPatch":false,"sender":{"key":"dap1@bellsouth.net","avatar":null},"body":"After re-reading the git documentation and with Andrew's input I have\nchanged my thinking on how to set  this up and want a central\nrepository. If I understand correctly, I am doing builds while I am\ndeveloping new code so I need to clone my repository for Eclipse (I'm\nassuming the git plugin supports all this). Before I go to the trouble\nof setting it up please correct where my thinking is flawed or where I\nmay run into gotchas.\n\n1) Install git on Linux.\n2) Copy existing Eclipse project to a new directory to become the\ncentral repository.\n3) git init in that new directory (I think I then do a git add and git\ncommit).\n4) Modify build scripts to build from that directory (I am guessing I\nneed to git ignore the javac generated binary directory).\n5) Install git plugin on Windows version of Eclipse. (Do I need git on\nWindows or is the plugin sufficient?)\n6) Configure plugin for remote git, if necessary?\n7) Clone new repository for development and testing on Windows. (Do I\nneed the shared drive any more?)\n8) When a new version is ready for release, push commit to remote\nrepository after which builds will use new code (I'm assuming the file\ncopies happen automagically).\n\nAm I over simplifying things? I also think that this will open the door\nfor collaborators in the event I need them with no changes to the way I\nwork. I should note that builds are done on demand so is there a way to\ndetect when a push is occurring and have the build script wait for\ncompletion and I suppose vise-versa? Thanks.\n\n"},{"id":"205381","messageId":"CAH5451nurRwHUmhUg5g=3xNXRXGpJmAVBx2KXobdJ1Mt9YQdaA@mail.gmail.com","threadId":"32428","inReplyTo":"50D475A9.9020407@bellsouth.net","subject":"Re: Installation Plan","fromName":"Andrew Ardill","fromEmail":"andrew.ardill@gmail.com","sentAt":"2012-12-21T22:48:03Z","receivedAt":"2012-12-21T22:48:03Z","isPatch":false,"sender":{"key":"andrew.ardill@gmail.com","avatar":"https://gravatar.com/avatar/da14cb7c091dd44dc6c63a4d3361b149acaf25226dc78eb4131a17b93d9b0993?d=mp&s=160"},"body":"hi Dennis,\n\nIn general your plan looks good. Note that you don't actually need the\nEclipse plugin at all, it just makes it possible to do git operations\nwhile in your IDE. Most people will, even if they have the plugin,\nstill use the full client as it provides a lot more power and\nflexibility. Use whatever you need to, and extend your toolset when\nrequired.\n\nAlso, the leap from central repository on Linux to a clone on Windows\nneeds a little more thought. Will you set up a git server? Access the\ncentral repository over ssh? A shared drive? Many people use a web\nservice (such as Bitbucket or GitHub) for this purpose as it becomes\neasier to manage. You can then have a clone on the Linux box as well\nas the Windows box.\n\nOn 22 December 2012 01:43, Dennis Putnam <dap1@bellsouth.net> wrote:\n> Am I over simplifying things? I also think that this will open the door\n> for collaborators in the event I need them with no changes to the way I\n> work. I should note that builds are done on demand so is there a way to\n> detect when a push is occurring and have the build script wait for\n> completion and I suppose vise-versa?\n\nYou want to look into the different hooks available, most notable the\npost-receive hook. There are also build servers that can monitor a\nrepository and build whenever it sees a new commit (Jenkins and Bamboo\nare two I know of).\n\nRegards,\n\nAndrew Ardill\n"},{"id":"205587","messageId":"2dbfdf9e-9a4c-40f2-9661-a62a938911a2@zcs","threadId":"32428","inReplyTo":"50D475A9.9020407@bellsouth.net","subject":"Re: Installation Plan","fromName":"Enrico Weigelt","fromEmail":"enrico.weigelt@vnc.biz","sentAt":"2012-12-28T13:54:24Z","receivedAt":"2012-12-28T13:54:24Z","isPatch":false,"sender":{"key":"enrico.weigelt@vnc.biz","avatar":"https://gravatar.com/avatar/15479654ea5be5109582e0713a8ab4bb258846099c516dd320dc686ef70a8a3e?d=mp&s=160"},"body":"\n> 7) Clone new repository for development and testing on Windows. (Do I\n> need the shared drive any more?)\n\nNot necessarily, depending on how to connect your local repo to the\nremote one (your central repo). I'd suggest using ssh protocol: in this\ncase your windows box will connect to the linux box via ssh and do all\noperations via ssh - no network filesystem required.\n\n> 8) When a new version is ready for release, push commit to remote\n> repository after which builds will use new code (I'm assuming the\n> file copies happen automagically).\n\nYes, see post-update hook (on the central repo side).\nIt is executed right after objects have been transfered and refs updated.\n(IOW: when your changes made finally it into the cental repo).\nNote that the 'git push' operation will wait until that hook is finished.\nSo, if the build takes a while, you most likely want to do it asychronously.\nA nice way is letting the hook just add the new refs to some queue\n(you can even use git refs for that) and have another process (in a loop\nor via cron) polling for new queue entries and run the build.\n\n\ncu\n-- \nMit freundlichen Grüßen / Kind regards \n\nEnrico Weigelt \nVNC - Virtual Network Consult GmbH \nHead Of Development \n\nPariser Platz 4a, D-10117 Berlin\nTel.: +49 (30) 3464615-20\nMobile: +49 (151) 27565287\nFax: +49 (30) 3464615-59\n\nenrico.weigelt@vnc.biz; www.vnc.de \n"}]}