git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: complex cvs import

From
Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
Date
Aug 22, 2008, 15:14 UTC
Message-ID
<g8ml4s$2cd$1@ger.gmane.org>
In-Reply-To
<48AEBB72.6060209@xmos.com>
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
Previous: Luis GutierrezNext: Robert Schiele
Message 2 of 3 in “complex cvs import”
  1. Luis GutierrezAug 22, 2008
  2. Michael J GruberAug 22, 2008
  3. Robert SchieleAug 23, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.