From: Jeff King Date: Sat, 13 Oct 2007 07:57:23 GMT Subject: Re: Imports without Tariffs Message-ID: <20071013075723.GA27533@coredump.intra.peff.net> In-Reply-To: <1240801C-F4CC-4290-8C3D-2038F1957DF3@MIT.EDU> On Sat, Oct 13, 2007 at 12:30:09AM -0400, Michael Witten wrote: >> except that git-rebase is smart enough to realize that C == C' and skip >> it (so it's a "safe" way of moving forward). > > This is good to know! The documentation should mention this case! Yes, it probably should. Can you submit a patch describing the behavior where you think it ought to go? > Basically, the imported cvs history should be treated like > a remote that's being tracked. It seems like the solution > I proposed kind of does this and would work for other SCM > imports too. I think it's an interesting avenue to pursue, though I would worry a little about robustness. I like the fact that after rebasing, the commits have done a complete git->cvs->git loop and look identical, so I am sure everything made it through intact. But perhaps I'm just being paranoid. As an alternate idea, why not try to have the CVS commit contain all information necessary to create a particular git commit. IOW, describe all of the data that goes into the commit hash as textual comments in the CVS commit (committer name/time, author name/time). And then theoretically git-cvsimport can reconstruct the exact same commits again, and your git->cvs->git merge really _will_ be a fastforward. > Unfortunately, they are the ones running the servers; I have to do my > git work behind the scenes. I've been in the same boat, and just used the rebase trick I described. Of course it was a very tiny project, so I didn't mind losing some of the full power of git. -Peff