From: David Chanters <david.chanters@googlemail.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: CVS <--> GIT workflow...
Date: Wed, 1 Jul 2009 22:25:15 +0100 [thread overview]
Message-ID: <ac3d41850907011425x966483awe1757e24417d9da4@mail.gmail.com> (raw)
In-Reply-To: <m3d48kw4uz.fsf@localhost.localdomain>
2009/7/1 Jakub Narebski <jnareb@gmail.com>:
> David Chanters <david.chanters@googlemail.com> writes:
>
>> I am wondering if there's any best practises/howtos on using CVS and
>> Git together. I have a project which is currently residing in CVS;
>> people actively use it to add changes, etc. Which is fine -- and for
>> a variety of reasons we're unable to simply switch away from using CVS
>> to Git.
>>
>> So... the question is, can I use Git locally to manage all my work in
>> -- create topic branches, merge them, etc., and then commit that back
>> out to the CVS repository? Likewise, I would need to keep my Git
>> repository in synch with any changes to the CVS repository -- is that
>> possible? Has anyone else done something like this? What I am
>> effectively wanting to do is Git for my entire development on this
>> project and just forget it even uses CVS.
>>
>> I've read up on git-cvsimport which seems to explain how to convert a
>> current CVS repo over to Git -- is that right? Any information you
>> can point me to would be very welcome. I am not adverse to reading,
>> providing it's useful to me. :)
>
> I think from all CVS importers (git-cvsimport, parsecvs, git mode of
> cvs2svn aka. cvs2git) only git-cvsimport has incremental mode.
Excellent. So git-cvsimport it is then. That's stage 1.
> As for exporting to CVS there is git-cvsexportcommit and git-cvsserver
> (which functions like cvsserver, but conects to git repository;
> although it has its own limitations).
I wouldn't need connectivity like what git-cvsserver seems to imply.
git-cvsexportcommit sounds about right.
> But you should really hope that your fellow CVS committers use good
> practice; because it is quite easy to create very messy CVS repository
> (so that for example it would be hard to extract changesets).
They do -- which is about the only guaranteed thing.
So what would I do? Something like this:
1. Use git-cvsimport to "convert" a snapshot of the current CVS
project to something Git can understand.
2. Checkout this git project via git clone in the usual way.
3, Hack away in this Git clone.
4. Use git-cvsexportcommit to extract commits?
What about my workflow within the Git repository? I assume that
"Master" would be the branch I would want to merge *to* if I have
local topic brances I wish to have in to CVS, and then the commits on
Master would be something git-cvsexportcommit would look at?
Indeed, it seems git-cvsexportcommit is somewhat "manual" -- is there
no way of automating that to say something like: "Take all commits on
branch $FOO in Git, which aren't in CVS, and apply them?" I might be
missing some understanding here.
Any advice greatly received. :)
David
next prev parent reply other threads:[~2009-07-01 21:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-01 18:32 CVS <--> GIT workflow David Chanters
2009-07-01 19:24 ` John Tapsell
2009-07-01 19:29 ` David Chanters
2009-07-01 20:00 ` Jakub Narebski
2009-07-01 21:25 ` David Chanters [this message]
2009-07-02 12:01 ` Nick Woolley
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=ac3d41850907011425x966483awe1757e24417d9da4@mail.gmail.com \
--to=david.chanters@googlemail.com \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.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).