Re: complex cvs import
Luis Gutierrez venit, vidit, dixit 22.08.2008 15:13:
Show 51 quoted lines
> Hi All,
>
> During the past year or so we have been using a bastardized version of
> CVS in which branches were not 'true' cvs branches, but just a copy of
> the original data in a different folder. For instance, we would have
> something like this:
>
> ProjectX
> \---- dev01
> | \... normal cvs data
> \---- dev02
> | \... normal cvs data
> \---- release01
> | \... normal cvs data
> \---- release02
> \... normal cvs data
>
> While a timeline of the branches looks like this:
>
> /---release01
> ----dev01------+ /---release02
> \---dev02------+--
>
> Now that we are trying to move to git, and I'm having problems importing
> the projects with their full history.
>
> What I have done is use git-cvsimport on each of those branches to
> create separate git repositories: dev01, dev02, release01, and release02.
>
> What I was planing on doing next was:
> (all from the dev01 branch)
> 1) git branch dev01
> 2) git checkout -b release01
> 3) git pull ssh:/..../release01
> 4) git checkout -b dev02
> 5) git pull ssh:/..../dev02
> 6) git checkout -b release02
> 7) git pull ssh:/..../release02
>
> Now, the problem I'm seeing is that I get hundreds of conflicts when
> pulling.
>
> Short from doing a git-mergetool 100's of times, is there a better way
> of doing this? One that guarantees I keep the latests version (ie, the
> one I'm pulling from).
> Put in another way, is there a way to let git know that it will not
> merge the last version of the files, just the history?
>
> Cheers.
>
> Luis Gutierrez
How about:
- fetch instead of pull
- After each fetch, put the fetched thing in a local branch:
git checkout -b release01 FETCH_HEAD
Now you've got local "branches" without a common root.
Finally, stitch it together using grafts and filter-branch.
Michael