* GIT + CVS workflow query.
@ 2007-06-26 22:20 Eoin Hennessy
2007-06-26 22:46 ` Yann Dirson
2007-06-27 0:36 ` Junio C Hamano
0 siblings, 2 replies; 3+ messages in thread
From: Eoin Hennessy @ 2007-06-26 22:20 UTC (permalink / raw)
To: git
Hi there,
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.
- 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.
My question is; as a next step in the workflow, should I be applying
the list of commits identified by git-cherry to the branch updated by
git-cvsimport? How else does one clear this list so that they do not
interfere with the next iteration of the workflow.
I hope I've been clear, and thanks for any suggestions.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: GIT + CVS workflow query.
2007-06-26 22:20 GIT + CVS workflow query Eoin Hennessy
@ 2007-06-26 22:46 ` Yann Dirson
2007-06-27 0:36 ` Junio C Hamano
1 sibling, 0 replies; 3+ messages in thread
From: Yann Dirson @ 2007-06-26 22:46 UTC (permalink / raw)
To: Eoin Hennessy; +Cc: git
On Tue, Jun 26, 2007 at 11:20:24PM +0100, Eoin Hennessy wrote:
> Hi there,
>
> 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:
I have done a similar thing for some time, with some differences.
> - 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
Yes.
> and push commits back to the mirror.
No, the mirror should solely be a mirror of cvs. If you de-sync your
mirror, you're looking for trouble.
> - 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.
Rather, the patches you have not committed yet are simply
remotes/origin/master..master. What I did was simply
git-cvsexportcommit'ing them to my "CVS gateway checkout".
In the next iteration, cvsps will identify your commits as patchsets,
and what I did was registering the "merge to cvs" with an info/grafts
entry. Nowaday, I would rather have my local commits in an stgit
stack, and "stg pull" would take care of detecting the merged patches
(not to mention that uncommitted patches would trivially map to stgit
patches).
But I occasionally had problems of cvs patches missed by the import,
and other issues because of cvsps not being able to cope with branches
created by cvs 1.12 (which is why I changed my workflow and wrote
stg-cvs, which in turn needs to be replaced).
Hope this helps,
--
Yann
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: GIT + CVS workflow query.
2007-06-26 22:20 GIT + CVS workflow query Eoin Hennessy
2007-06-26 22:46 ` Yann Dirson
@ 2007-06-27 0:36 ` Junio C Hamano
1 sibling, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2007-06-27 0:36 UTC (permalink / raw)
To: Eoin Hennessy; +Cc: git
"Eoin Hennessy" <eoin.hennessy@gmail.com> writes:
> 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.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-06-27 0:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-26 22:20 GIT + CVS workflow query Eoin Hennessy
2007-06-26 22:46 ` Yann Dirson
2007-06-27 0:36 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox