Re: GIT + CVS workflow query.
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 27, 2007, 00:36 UTC
- Message-ID
- <7vbqf2xmfr.fsf@assigned-by-dhcp.pobox.com>
- In-Reply-To
- <47281e410706261520r5b3549c7t39d93924d0a8ceea@mail.gmail.com>
"Eoin Hennessy" <eoin.hennessy@gmail.com> writes:
Show 8 quoted lines
> I'd like to use GIT to track changes in a CVS repository. As well as > tracking changes, I will also need to push patches back to CVS from > GIT. My workflow is currently as follows: > > - Use git-cvsimport to import and update a mirror of the CVS > repository; 'project.git'. > - Pull changes from the mirror to a cloned working copy; 'project'. > - Fix bugs in the working copy and push commits back to the mirror.
Fix bugs, yes, but push back to the mirror is probably not what you want.
> - Use git-cherry to identify commits in master not currently in the > branch updated by git-cvsimport. Then use git-cvsexportcommit to push > these commits into a CVS checkout.
What I do with my day-job project is that I keep a separate CVS checkout like you do, and
- cvsimport keeps track of the "project.git" mirror as you do; - pull changes from that to my "project" as you do (but see below); - fix things in "project", as you do; - identify the needed changes with 'git-cherry' as you do; - exportcommit to push them back to CVS through the CVS checkout; Then the next cvsimport will get my changes (among other people's changes) to "project.git".
- fetch changes from the "project.git" to my "project"; - 'git-rebase' my changes on top of the tip of "project.git";
This will remove the duplicates that I had but now are in CVS.