git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Andreas Ericsson <ae@op5.se>
To: pete@bluelane.com
Cc: Marco Costalba <mcostalba@gmail.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Robin Rosenberg <robin.rosenberg.lists@dewire.com>,
	piet.delaney@gmail.piet.net,
	Linus Torvalds <torvalds@linux-foundation.org>,
	VMiklos <vmiklos@frugalware.org>,
	free cycle <freecycler23@yahoo.com>,
	git@vger.kernel.org, piet.delaney@gmail.com,
	Piet Delaney <pdelaney@bluelane.com>
Subject: Re: Qgit performance and maintain CVS environment with GIT repository
Date: Fri, 19 Oct 2007 11:52:14 +0200	[thread overview]
Message-ID: <47187E4E.50006@op5.se> (raw)
In-Reply-To: <47187518.1090007@bluelane.com>

Pete/Piet Delaney wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Andreas Ericsson wrote:
>> Pete/Piet Delaney wrote:
>>> Johannes:
>>>   I read somewhere in the past week that it was possible to maintain
>>>   our existing CVS environment with git. I though it was a separate
>>>   package to export git back to cvs but I just noticed a git-cvsserver
>>>   and as a std part of git and was wondering about using that.
>>>
>>>   We have a number of build machines with flamebox perl scripts pulling
>>>   out CVS branches for builds. I was wondering what is the best way to
>>>   use git and it's nicer pull/push model and merge facility and possibly
>>>   maintain CVS exports for scripts doing builds if possible the cvsweb
>>>   and bonsai (CVS Query Form) that a number of engineers are currently
>>>   using. I started looking over out flamebox scripts with the intent
>>>   up converting them over to git but I mentioned the git to cvs
>>>   coexistence and we are wondering if that's a better route than
>>>   upgrading the flamebox scripts. Having our existing cvsweb, bonsai,
>>>   and gitweb along with the git utilities seems at least desirable.
>>>   Any thoughts or suggestions?
>>>
>> If you do convert them to git, you can fairly easily do an automatic
>> bisect on build-errors, and the developer can (after some time) get
>> an email of what machines they broke the code on and what the bad
>> commit was.
> 
> Could you explain that a bit more. Sounds like you saying it's worth
> messing with the flamebox scripts to use git instead of using the git
> cvserver and letting them pull the cvs branches as they do now. Is the
> existing flamebox email of build log effected buy switching form cvs
> to git? I hadn't expect it to change.
> 

git has quite a wonderful tool named git-bisect. In short, it helps track
down what particular commit introduced a bug. Let's say your builds fail
for some reason, and the build-scripts send out the build-log to the
developer. The script can then continue to check the repo by running git
bisect on it and finding the commit that introduced the build-error, and
email that too to the developer. In short, when you check things in at
5 o'clock that doesn't build, you don't have to sit there and wrestle with
it. You can go home, have dinner, tuck the kids into bed, and then open
your mailbox and have an email with the exact commit that introduced the
regression.

Now, if you can also convince your developers to make small and isolated
commits, and your build-system is such that it doesn't rebuild *everything*,
but has proper dependency tracking and suchlike (a properly written Makefile
for example), the developer will get pointed to a commit that affects perhaps
10-20 lines of code within a reasonable time, and it should be so trivial to
fix that anyone can do it.

> 
>> Besides that, it's not a black-and-white scenario. If I were you I'd set
>> up git-cvsserver and make sure that works for all the scripts, and then
>> pick one or two auto-build things to convert to git. Preferrably on a
>> separate machine, so everything keeps working the same as always while
>> you're fiddling with the auto-build stuff.
> 
> I get the impression your suggestion to first get git-cvsserver serving
> the repo so that the build machines works without any change and then to
> go to each build machine and update the scripts to use git instead of cvs.
> 

That's the idea, yes.

> Are there any tricks I need to so on the repo to make the branches pull
> out with exactly the same commands that we are currently using. My guess
> is that the branch checkouts should work without any messing around.

I'm not sure what you mean by that. You can tell git to automatically fetch
any new branches (that's the default, I think), but you'll ofcourse have to
switch to using git-pull instead of cvs co (or whatever you're using now),
unless you use git-cvsserver. AFAIK, git-cvsserver mimics a cvs server well
enough that it accepts all commands and the two are interchangeable (assuming
the background repo conversion has been done, ofcourse).

>> Just my two cents.
> 
> Hey, you two cents could easily save me hours of messing getting this
> conversion done.
> 

That's well-invested money then ;-)

> BTW, I don't think anyone is checking into the repo, but if they do
> can I do another git-cvsimport to just update the one I already did?

Yes. It works incrementally, but since cvs commits aren't atomic, you
have to wait 10 minutes after the cvs commit *starts* to be able to
use cvsimport to move it over to git.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

  reply	other threads:[~2007-10-19  9:52 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-09 16:57 How to Import a bitkeeper repo into git free cycle
2007-07-09 17:37 ` VMiklos
2007-07-09 17:51   ` Linus Torvalds
2007-10-15 23:39     ` Pete/Piet Delaney
2007-10-16  0:03       ` Shawn O. Pearce
2007-10-16  0:41         ` Pete/Piet Delaney
2007-10-16  1:13           ` David Brown
2007-10-16  0:45       ` Linus Torvalds
2007-10-16  1:12         ` David Brown
2007-10-16  1:22           ` Linus Torvalds
2007-10-16  3:45         ` Pete/Piet Delaney
2007-10-16  4:56           ` Marco Costalba
2007-10-16  6:05             ` Pete/Piet Delaney
2007-10-16  9:11               ` Marco Costalba
2007-10-16 17:05                 ` Andreas Ericsson
2007-10-17  6:57                   ` Marco Costalba
2007-10-17 15:50                     ` Andreas Ericsson
2007-10-17  5:22                 ` Pete/Piet Delaney
2007-10-17  7:14                   ` Marco Costalba
2007-10-17 21:47                     ` Pete/Piet Delaney
2007-10-17  5:02             ` How to Import a bitkeeper repo into git - Had a few questions on Qgit; I like the GUI Pete/Piet Delaney
2007-10-17  7:30               ` Marco Costalba
2007-10-17 16:00                 ` Robin Rosenberg
2007-10-17 23:26                   ` Marco Costalba
2007-10-18 21:12                     ` Robin Rosenberg
2007-10-18 23:41                     ` Qgit performance and maintain CVS environment with GIT repository Pete/Piet Delaney
2007-10-19  0:00                       ` Johannes Schindelin
2007-10-19  0:22                         ` Pete/Piet Delaney
2007-10-19  0:41                           ` Jeff King
2007-10-19  0:50                           ` Johannes Schindelin
2007-10-19  7:43                           ` Jan Wielemaker
2007-10-19  8:58                             ` Pete/Piet Delaney
2007-10-19 10:34                               ` Jan Wielemaker
2007-10-19  7:14                       ` Andreas Ericsson
2007-10-19  9:12                         ` Pete/Piet Delaney
2007-10-19  9:52                           ` Andreas Ericsson [this message]
2007-10-16 19:15         ` How to Import a bitkeeper repo into git Jan Hudec
2007-10-16 19:28           ` Linus Torvalds
     [not found]       ` <Pine.LNX.4.64.0710160100510.25221@racer.site>
     [not found]         ` <47140A5F.7000309@bluelane.com>
     [not found]           ` <Pine.LNX.4.64.0710160201220.25221@racer.site>
     [not found]             ` <4714130F.7030809@bluelane.com>
     [not found]               ` <Pine.LNX.4.64.0710160231040.25221@racer.site>
     [not found]                 ` <47142AF3.1030405@bluelane.com>
     [not found]                   ` <Pine.LNX.4.64.0710161154340.25221@racer.site>
     [not found]                     ` <47303826.1000506@bluelane.com>
2007-11-06 10:51                       ` git push problem - unpack unpacker exited with error code; ng refs/heads/rel2_branch n/a (unpacker error) Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47187E4E.50006@op5.se \
    --to=ae@op5.se \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=freecycler23@yahoo.com \
    --cc=git@vger.kernel.org \
    --cc=mcostalba@gmail.com \
    --cc=pdelaney@bluelane.com \
    --cc=pete@bluelane.com \
    --cc=piet.delaney@gmail.com \
    --cc=piet.delaney@gmail.piet.net \
    --cc=robin.rosenberg.lists@dewire.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vmiklos@frugalware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).