"Eoin Hennessy" <eoin.hennessy@xxxxxxxxx> 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. - 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