簡體   English   中英

僅將歷史記錄從CVS存儲庫導入到已創建的git存儲庫中

[英]Import only history from CVS repository into already created git repository

在工作中,我們有一個CVS信息庫,其提交可以追溯到近15年。 幾年前,該存儲庫已轉換為git並上傳到公共GitHub存儲庫。 但是,git存儲庫只是使用文件的當前版本進行了初始化,沒有導入任何歷史記錄(不是我的工作)。 CVS的歷史是直接且線性的-我們從未使用過CVS分支。 它不是一個非常活躍的存儲庫:自創建以來,僅對公共git存儲庫進行了25次提交。

我希望能夠將CVS歷史記錄導入到現有的git存儲庫中,而不必創建新的存儲庫。 從我在git-cvsimportcvs2git文檔中閱讀的內容cvs2git ,這些工具始終會創建新的存儲庫。 另外,我可以進行新的cvs / git轉換,並上傳新的存儲庫來代替當前存儲庫,並應用25個post-cvs提交。 這可能嗎?如果可以,推薦的方法是什么? 我具有對CVS和git存儲庫的讀寫訪問權限,並且在必要時可以對CVS進行服務器訪問。

我對簡單的git分支,合並和重新定級感到非常滿意,但是我不會說我是專家(我經常參考Pro Git書)。

我認為解決方案是從master分支中的第一次提交創建臨時分支(“開始”),然后從CSV生成歷史記錄並將其導入到另一個臨時分支(“ import”)中,並從“ start”分支與我們的策略合並並從“ master”分支合並較新的提交,並將“ import”分支重命名為“ master”:

# create new git repository by running cvs2git in import-git-path
# change directory to your current repository
git log
# find the first commit
git checkout -b start "first-commit"
git checkout --orphan branch
rm -rf * .gitignore # or any other file
git add -A
git remote add import-repo import-git-path
git pull import-repo master
git merge -s ours start
git merge master
git branch -D start
git branch -D master
git branch -m import master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM