【问题标题】:Git/Mercurial locally ontop of local cvs checkout本地 cvs 结帐之上的本地 Git/Mercurial
【发布时间】:2011-04-08 19:57:43
【问题描述】:

我已阅读:

,而且都不适合我的需要。

在工作中,我们使用远程 CVS 存储库。对这个 repo 的访问是通过 eclipse CVS 工具和构建在 eclipse 团队工具之上的内部 eclipse 插件来处理的。这意味着我们无法转向更好的 vcs。

但是我想在我的本地机器上使用 Git(以启用个人分支),以便我可以完成以下操作:

在 Git 中创建分支,然后完成并合并回我的本地主干,使用 eclipse 团队工具等提交回 cvs 存储库。

我的计划大致如下:

  • 将签出的文件复制到另一个文件夹 [gitRepo]。
  • 在 gitRepo 中创建一个主 git repo
  • 在 gitRepo 中分支并进行更改。
  • 提交到 gitRepo
  • 将 gitRepo 复制回已签出的文件
  • 与远程 cvs 同步。

我曾计划将 eGit 用于 eclipse,但我相信 CVS 和 .git 文件将争夺版本控制权。

是否有任何工具或建议的工作流程来帮助我管理这个?还有 Git 对 CVS 文件的处理效果如何。反之亦然,因为我不希望它们相互感染。

以前的链接没有用的原因是它们直接从 git repo 提交到 cvs repo,这让我很担心,因为我不想意外感染 cvs repo。

也应该说GitRepo中的变化不需要持久化到CVS repo,比如我不需要看到每次对git repo的push都反映在远程CVS中。

~感谢阅读。

【问题讨论】:

    标签: eclipse git cvs egit


    【解决方案1】:

    您完全可以直接在 CVS 工作区中创建一个 git repo(很像 directly within any other VCS tool

    确保 git 将忽略任何 .cvs 资源,并确保 CVS 将忽略 .git
    任何 Git 提交都不会直接反映在 CVS 中。

    唯一的技巧是 Eclipse 仅显示 Git 或仅显示 CVS 信息和标签装饰。
    为此,我将配置两个不同的 Eclipse 透视图,我将在其中停用一个或另一个 VCS 工具。

    【讨论】:

    • 感谢您编辑我的问题 VonC,非常感谢!当您说 Eclipse 透视图时,您是指工作区吗?如何在透视图中关闭 vcs 的标签?
    • @Darkflace:您可以自定义透视图,尤其是“命令组可用性”
    【解决方案2】:

    我在工作中确实做到了这一点,我发现以下做法很有帮助:

    1. 让任何一个分支(在我的例子中是master)始终与 CVS 同步。不要将此分支用于您的开发。定期更新此分支以获取团队其他成员所做的更改。如果这些更改与您当前的工作相关,请从您的 dev(或任何其他适当的)分支中执行 merge master

    2. 当您准备好签入 CVS 时,切换到 master 分支并合并来自适当分支的更改(devfeature 等,视情况而定)。运行你的测试!

    3. 您的雇主很可能会保留 CVS 存储库的备份。您必须找到一种方法来备份您的 git 存储库。一种方法是在 Dropbox 文件夹中添加镜像存储库,并在每次提交后使用 post-commit 挂钩对其进行更新。

    4. 在你离开工作之前切换到master 分支。我曾经犯过早上在dev 分支上运行CVS up -d 的错误,结果很困惑。添加脚本以在更新帮助之前自动切换到master

    【讨论】:

      猜你喜欢
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 2021-10-25
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      相关资源
      最近更新 更多