git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Robin Rosenberg <robin.rosenberg.lists@dewire.com>
To: kernel-hacker@bennee.com
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Getting CVS and Git to play nicely in the same box
Date: Thu, 30 Nov 2006 23:21:18 +0100	[thread overview]
Message-ID: <200611302321.19129.robin.rosenberg.lists@dewire.com> (raw)
In-Reply-To: <1164890354.21950.92.camel@okra.transitives.com>

torsdag 30 november 2006 13:39 skrev Alex Bennee:
> Hi,
>
> I'm trying to get a setup where I can use git for my day to day coding
> on problems but still mirror a CVS repo. The situation is muddied
> slightly by the way we manage changes in our CVS repository and
> baselines.
>
> The CVS manner of working means we create a branch at a given point to
> do work on it:
>
>           BL1_CH2
>          /
>         /
>        BL1_CH1
> BL1---/
>
> And then in the meantime a new baseline may be released:
>
>
> BL2    BL1_CH2
>
> |     /
> |     BL1_CH1
>
> BL1--/
>
> So we employ the "cvs -q update -dP -j BL1 -j BL2" on our development
> branch
>
>           BL2_CH2
>          /
> BL2     BL1_CH2
>
> |      /
> |    BL1_CH1
>
> BL1--/
>
> I want to mirror this sort of behaviour it git (basically making the
> cvs -j -j operation a git merge, separate from the normal development
> track). I however also need to maintain the CVS meta-data so when I get to
> given points I can commit my work into the main development server.
>
> I can set up a git repo that ignore all the CVS gubbins with exclude info
> but the CVS metadata gets in the way. I think I have to maintain two git
> repos, one that tracks the baseline and one which is a clone (which can
> then pull updates) but has the CVS meta data for my development branch.
You don't need to use GIT to track metadata (I asume you mean CVS/Entries) is 
not necessary. Use a plain CVS checkout for that and cvsexportcommit to it.

> However CVS does seem to get very confused when the world moves under it
> when you switch branches in GIT.
Exaktly. Forget about it, it won't work and there is a simpler solution.

> Has anyone successfully set up such a working environment? Can anyone offer
> any tips on how to make it all work nicely?

My setup is like this:

- A tracking repo on a server runs git-cvsimport every night.
- I pull from the tracking repo
- I have a CVS checkout for the branch I'm interested in committing to
- Then I use cvsexportcommit to export changes back to CVS. Actuallly I use a 
small script that runs cvs update and then exports the changes defined by a 
named commit so I say "tocvs a-commitid--tag-or-stgit-patch-name".

Since I use StGit I get no problem from my changes coming back through the 
cvsimport executed on the server. StGit makes the patches empty when my own 
code returns from CVS.


      parent reply	other threads:[~2006-11-30 22:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-30 12:39 Getting CVS and Git to play nicely in the same box Alex Bennee
2006-11-30 13:08 ` Jakub Narebski
2006-11-30 13:54   ` Alex Bennee
2006-11-30 14:16     ` Jakub Narebski
2006-11-30 22:21 ` Robin Rosenberg [this message]

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

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

  git send-email \
    --in-reply-to=200611302321.19129.robin.rosenberg.lists@dewire.com \
    --to=robin.rosenberg.lists@dewire.com \
    --cc=git@vger.kernel.org \
    --cc=kernel-hacker@bennee.com \
    /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.
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 NNTP newsgroup(s).