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

Re: [PATCH] cvstrack: work on imported cvs and other git branches

From
Steffen Prohaska <prohaska@zib.de>
Date
Jul 1, 2007, 16:43 UTC
Message-ID
<4ED65855-7B87-43C6-B5F1-162FC9A1CBF0@zib.de>
In-Reply-To
<Pine.LNX.4.64.0707011710480.4438@racer.site>
On Jul 1, 2007, at 6:11 PM, Johannes Schindelin wrote:
Show 27 quoted lines
> On Sun, 1 Jul 2007, Steffen Prohaska wrote:
>
>> On Jul 1, 2007, at 4:35 PM, Johannes Schindelin wrote:
>>
>>> On Sun, 1 Jul 2007, Steffen Prohaska wrote:
>>>
>>>> The idea is to import a cvs repository using git cvsimport; build a
>>>> perfect history in git by cherry picking commits that are only in
>>>> cvs but not in git; and export only summaries back to cvs. Cvs
>>>> imports are organized on a separate git branch. git is used for
>>>> merging. The differences can be sent back to cvs as a squashed
>>>> commit together with a shortlog. Sent git commits are noted in the
>>>> cvs commit message and will be ignored in subsequent cvs imports.
>>>
>>> Wouldn't it be more intuitive to add a --squash option to
>>> git-cvsexportcommit?
>>
>> Maybe.
>>
>> But how to handle commits that are sent to cvs and come back
>> through git-cvsimport?
>
> Probably I do not really understand what you are doing... If the  
> commits
> come from cvs, then they are already there, no? So where do you  
> want to
> commit the squashed commits?

I do some work in git and want to send this work to cvs. I squash all _git_ commits into a single _cvs_ commit. In the next incremental import from cvs the squashed commit comes back to git (at least after cvsps time fuzz passed). If I just merged from the cvsimport branch I'd build a history in git that contains the changes twice; once in a sane way from the original git history and a second time because it was sent to cvs and came back through git-cvsimport.

What I try to achieve is to build a history in git that has
- every commit that was initially committed to cvs only once.
- every commit that was initially committed to git only once.
- provides a stable git branch that can be cloned by others.
In addition I need a way to send changes from git to cvs such that cvs
has all changes that are available in git.
Some examples of what I may want to do in git:
- just work as if cvs wasn't there and create topic branches. Only
   after work is finished the change should be sent to cvs. But changes
   from cvs should be continuously integrated.
- track cvs topic branches for a longer period of time and merge
   them several times using git and after a final merge, send the  
changes
   back to cvs.

The background is, I plan to convince approximately 60 developers to migrate from CVS to git and I'm searching for a way to start the transition with some beta testers, while maintaining full cvs infrastructure in place for the remaining users.

Currently, I think that I can handle this with the scripts I sent in the patch.

	Steffen
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 5 of 7 in “cvstrack: work on imported cvs and other git branches”
  1. cvstrack: work on imported cvs and other git branchesSteffen Prohaska, Jul 1, 2007
  2. Johannes SchindelinJul 1, 2007
  3. Steffen ProhaskaJul 1, 2007
  4. Johannes SchindelinJul 1, 2007
  5. Steffen ProhaskaJul 1, 2007
  6. Johannes SchindelinJul 1, 2007
  7. Steffen ProhaskaJul 1, 2007

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.