代码之家  ›  专栏  ›  技术社区  ›  Jamie Penney

如何在SVN+Visual Studio环境中本地使用Git

  •  4
  • Jamie Penney  · 技术社区  · 16 年前

    我一直在家里和Git玩,我真的很喜欢当地的承诺。能够提交较小的更改而不将可能被破坏的代码传播给每个人是很好的,并且能够恢复较小的更改,因为提交更频繁。

    我一直在阅读关于git svn命令的内容,但我不确定我是否完全理解它的工作原理。我们处理Visual Studio 2008项目,并运行VisualVN,它从IDE中为我们处理文件重命名、移动以及所有这些。

    我想知道的是:我是否可以提交到本地Git存储库,也可以提交到远程SVN存储库?我希望在IDE中保持VisualVN更改跟踪和提交,但也能够使用Git临时存储更改。他们可能会妨碍对方吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   hasen    16 年前

    我已经使用git svn从远程存储库中保持“更新”,但还没有使用它来提交到一个svn存储库,所以我无法帮助您完成这一部分。

    您的操作很简单,所有设置都默认为:

    >git svn init <url......>
    >git svn fetch
    

    当您这样做时,它将把它提取到一个名为“git svn”的“远程”分支。 要将其与当前分支合并,请执行以下操作:

    >git merge git-svn
    

    如果使用Git SVN,可能会遇到一些问题 事后 . 我的意思是:您已经使用SVN签出了项目,然后还在本地工作的SVN目录中创建了一个Git存储库。然后在上面使用git svn。

    我必须处理两个问题:

    1. 行结束。 svn 可能会将行尾转换为Windows,而 git-svn 将它们保留为Unix样式。因此,由于行尾差异,您可能会遇到大量冲突。

      因此,可以肯定的是,使用工具将所有文件的行尾转换为UNIX(或Windows,具体取决于SVN报告中使用的行尾)。

    2. SVN关键字扩展。例如 $Id$

      GIT-SVN 不会展开这些关键字,而 视觉神经网络 威尔。所以你在那里也会有冲突。同样,使用一个工具(或编写一个脚本)来转换 $Id .......crap.....$ 只要$ID$

        2
  •  2
  •   Breton    16 年前

    它工作得很好。去争取它。只是不要检查你的.git文件夹到svn。

    编辑:嗯,不过,当我这样做的时候,我不需要麻烦GitSvn。我只是将SVN的本地工作目录视为任何其他目录,并且我倾向于不太关心以前的SVN历史。