{"thread":{"id":"23930","subject":"cvs update vs. git pull","startedAt":"2010-05-28T09:21:12Z","lastAt":"2010-05-28T15:58:24Z","messageCount":6,"participants":["René Moser","Andreas Ericsson","Tor Arntsen","Matthieu Moy","Ævar Arnfjörð Bjarmason","Robin Rosenberg"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"142489","messageId":"d876ae6b75ab8d9debe5b97f84a4386a.squirrel@resmo.ch","threadId":"23930","inReplyTo":null,"subject":"cvs update vs. git pull","fromName":"René Moser","fromEmail":"mail@renemoser.net","sentAt":"2010-05-28T09:21:12Z","receivedAt":"2010-05-28T09:21:12Z","isPatch":false,"sender":{"key":"mail@renemoser.net","avatar":"https://gravatar.com/avatar/2fbac7046ab3ea02e62594662f05bf5b7612b3053d9c8aaae8873942380819e4?d=mp&s=160"},"body":"Hi\n\nI use git since a while for my own projects (how surprise).\n\nThe company I work for still uses a CVS(nt), and this sucks, time to\nchanged that. We have a use case we often have problems with. If git would\nsolve this problem, I would really have a good arg for the managers.\n\nThe codebase managed by CVS is quite huge and therefore we have daily and\nnightly builds.\n\nOne problem we have is, that if there is a commit to cvs while the cvs\nupdate of the build job is running (and this takes 20 minutes), then we\nget some inconsistence, the build will fail.\n\nSo the question is, if we would use git, this inconsistence would not be\npossible because the git pull will get the state of the sha1. Right?\n\nThanks in advance for your clearification.\n\nRegards\nRené\n"},{"id":"142490","messageId":"4BFF8E56.7050805@op5.se","threadId":"23930","inReplyTo":"d876ae6b75ab8d9debe5b97f84a4386a.squirrel@resmo.ch","subject":"Re: cvs update vs. git pull","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2010-05-28T09:35:18Z","receivedAt":"2010-05-28T09:35:18Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"On 05/28/2010 11:21 AM, René Moser wrote:\n> Hi\n> \n> I use git since a while for my own projects (how surprise).\n> \n> The company I work for still uses a CVS(nt), and this sucks, time to\n> changed that. We have a use case we often have problems with. If git would\n> solve this problem, I would really have a good arg for the managers.\n> \n> The codebase managed by CVS is quite huge and therefore we have daily and\n> nightly builds.\n> \n> One problem we have is, that if there is a commit to cvs while the cvs\n> update of the build job is running (and this takes 20 minutes), then we\n> get some inconsistence, the build will fail.\n> \n> So the question is, if we would use git, this inconsistence would not be\n> possible because the git pull will get the state of the sha1. Right?\n> \n\nRight.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n\nConsidering the successes of the wars on alcohol, poverty, drugs and\nterror, I think we should give some serious thought to declaring war\non peace.\n"},{"id":"142491","messageId":"AANLkTinw1rlvcdHB8kEbpt-kK5Bjzf1aLGPhlPwDz6GC@mail.gmail.com","threadId":"23930","inReplyTo":"d876ae6b75ab8d9debe5b97f84a4386a.squirrel@resmo.ch","subject":"Re: cvs update vs. git pull","fromName":"Tor Arntsen","fromEmail":"tor@spacetec.no","sentAt":"2010-05-28T09:46:12Z","receivedAt":"2010-05-28T09:46:12Z","isPatch":false,"sender":{"key":"tor@spacetec.no","avatar":null},"body":"On Fri, May 28, 2010 at 11:21, René Moser <mail@renemoser.net> wrote:\n> Hi\n>\n> I use git since a while for my own projects (how surprise).\n>\n> The company I work for still uses a CVS(nt), and this sucks, time to\n> changed that. We have a use case we often have problems with. If git would\n> solve this problem, I would really have a good arg for the managers.\n>\n> The codebase managed by CVS is quite huge and therefore we have daily and\n> nightly builds.\n\nSo do we, where I work.\n\n> One problem we have is, that if there is a commit to cvs while the cvs\n> update of the build job is running (and this takes 20 minutes), then we\n> get some inconsistence, the build will fail.\n\nYes. That's how it works with CVS. We try to work around that problem\nby using automatic tags ('nightly'-something) set individually on each\nmodule, common for the whole repo, and then we 'cvs export' by tag\ninstead of cvs update. This works reasonably well (and is reproducible\ndue to the tag), but is not anywhere as fast as git would be.\n\n> So the question is, if we would use git, this inconsistence would not be\n> possible because the git pull will get the state of the sha1. Right?\n\nGit commits are atomic, so you won't see that inconsistency problem\nwith git. So, Right.\n\n\n-Tor\n"},{"id":"142492","messageId":"vpqhblss65x.fsf@bauges.imag.fr","threadId":"23930","inReplyTo":"d876ae6b75ab8d9debe5b97f84a4386a.squirrel@resmo.ch","subject":"Re: cvs update vs. git pull","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2010-05-28T09:54:18Z","receivedAt":"2010-05-28T09:54:18Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"René Moser <mail@renemoser.net> writes:\n\n> One problem we have is, that if there is a commit to cvs while the cvs\n> update of the build job is running (and this takes 20 minutes), then we\n> get some inconsistence, the build will fail.\n\nGit will also bring a big performance improvement here. The duration\nof the \"git pull\" will be mostly O(number of modifications since last\npull), not O(total number of files).\n\n> So the question is, if we would use git, this inconsistence would not be\n> possible because the git pull will get the state of the sha1. Right?\n\nActually, if you use almost anything but CVS (i.e. even SVN can do\nthat), you will get \"atomic commits\", i.e. a commit touching multiple\nfiles is either seen as completed or not seen at all.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"142497","messageId":"AANLkTikPWfNhL1HxYQdtdPeJpHxrm5qDkkwbXFM6MAV2@mail.gmail.com","threadId":"23930","inReplyTo":"vpqhblss65x.fsf@bauges.imag.fr","subject":"Re: cvs update vs. git pull","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-05-28T13:07:00Z","receivedAt":"2010-05-28T13:07:00Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Fri, May 28, 2010 at 09:54, Matthieu Moy\n<Matthieu.Moy@grenoble-inp.fr> wrote:\n> René Moser <mail@renemoser.net> writes:\n>\n>> One problem we have is, that if there is a commit to cvs while the cvs\n>> update of the build job is running (and this takes 20 minutes), then we\n>> get some inconsistence, the build will fail.\n>\n> Git will also bring a big performance improvement here. The duration\n> of the \"git pull\" will be mostly O(number of modifications since last\n> pull), not O(total number of files).\n\nA while back I tried converting a huge (~40k directories) CVS\nrepository to SVN and Git. Both CVS and SVN took around 10 minutes to\ncvs/svn up. git clone took around 8 minutes but each pull was around\n5-15 seconds (I/O and network bound).\n\nThey eventually picked Bazaar for non-technical reasons. But yeah,\nGit's much faster to upgrade than CVS/SVN.\n"},{"id":"142498","messageId":"201005281758.24183.robin.rosenberg@dewire.com","threadId":"23930","inReplyTo":"d876ae6b75ab8d9debe5b97f84a4386a.squirrel@resmo.ch","subject":"Re: cvs update vs. git pull","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2010-05-28T15:58:24Z","receivedAt":"2010-05-28T15:58:24Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"fredagen den 28 maj 2010 11.21.12 skrev  René Moser:\n> Hi\n> \n> I use git since a while for my own projects (how surprise).\n> \n> The company I work for still uses a CVS(nt), and this sucks, time to\n> changed that. We have a use case we often have problems with. If git would\n> solve this problem, I would really have a good arg for the managers.\n> \n> The codebase managed by CVS is quite huge and therefore we have daily and\n> nightly builds.\n> \n> One problem we have is, that if there is a commit to cvs while the cvs\n> update of the build job is running (and this takes 20 minutes), then we\n> get some inconsistence, the build will fail.\n\nPerform export/checkout using a timestamp to avoid this. You should also \nrequire that no checkins to your branch have happend during a period, say 10 \nminutes, before starting the build.\n\n> So the question is, if we would use git, this inconsistence would not be\n> possible because the git pull will get the state of the sha1. Right?\n\nYes. It's hard to predict what happens when you have multiple repos involved, \nin the build. Requiring no changes (on the build branch) in all repos is one\noption.\n\n-- robin\n"}]}