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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html