问题标签 [git-svn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
42527 浏览

windows - 是否有类似 TortoiseSVN 的 git-svn windows 客户端?

我喜欢 TortoiseSVN 的 Windows 集成。处理 git-svn 有类似的东西吗?如果访问速度足够快,我什至会使用集成度较低的 GUI。我不想要的是 CLI,因为我很少会在正确的目录中看到命令提示符。


这是一个相关的问题,但对于 Linux

0 投票
2 回答
1919 浏览

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

我一直在家里玩 git,我真的很喜欢本地提交的想法。能够提交较小的更改而不将我可能损坏的代码传播给每个人都很好,并且由于更频繁的提交而能够恢复较小的更改。

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

我想知道的是:我是否可以提交到本地 git 存储库,但也可以提交到远程 SVN 存储库?我想在 IDE 中保持 VisualSVN 更改跟踪和提交,但也能够使用 git 临时存储更改。他们有可能互相妨碍吗?

0 投票
2 回答
4134 浏览

git-svn - 多个 svn 项目到一个 git 存储库中?

我已经开始在我的一些工作中使用 git-svn 来进行本地提交。这对于使用标准 svn 布局的项目非常有用。最近我开始研究一个 Java 项目,该项目被分成多个连接的模块(20-25),每个模块在同一个 svn 存储库中都有自己的根文件夹,并有自己的主干/分支/标签。

我已经用 git svn clone -s /path/to/svnrepo/module[1-N] 克隆了每个模块。“问题”是当我想对所有模块执行 git svn rebase 时,我必须执行 N 次。

我试图做 git svn clone /path/to/svnrepo/ 避免做 N 次 rebase 操作,但这让我的目录布局与 svn repo 中的相同。

有没有一种方法可以在一个 git repo 中跟踪所有模块的所有主干?这样我就可以在我的 git 存储库中获得这样的目录布局:

0 投票
4 回答
792 浏览

git - 为什么 git 不知道我合并了?有没有办法告诉它?

我正在使用 git-svn;我通常创建一个主题分支,对其进行提交,然后是 checkout master、git svn rebase、git merge --squash topic_branch、git commit -m "summary comment",然后是 git svn dcommit。

这很好用,但 git 似乎不知道我将分支更改合并到 master 中。我在没有涉及 svn 的情况下尝试了这个:

并且 gitk --all 显示了这一点,这表明这不是 git-svn 问题:

gitk 图片显示显然未合并的分支
(来源:selfamusementpark.com

在我的主要 (git-svn) 项目中,我看到早期的一些更改似乎已经被合并,但我不知道我现在在做什么不同,因为我当时没有这样做。(如果重要的话,这是 Ubuntu Jaunty 上的 git 1.6.0.4。)

0 投票
4 回答
4958 浏览

svn - 我可以将 GIT 存储库与 SVN 客户端一起使用吗?

目前我正在使用以下 SVN 客户端:TortoiseSVN for Windows 和 AnkhSVN for Visual Studio 2005+。我听说 GIT 与 SVN 的互操作性很高。我的工具可以与 GIT 存储库一起使用吗?

0 投票
1 回答
1431 浏览

git-svn - 为什么 git-svn dcommit 在我的 git repo 中留下重复的提交?我可以阻止它这样做吗?

我典型的 git-svn 工作流程是:

在这一点上,我的分支masterstory-xyz分支指向同一个提交,一个或多个提交在remotes/trunk. 从那以后的一切都remotes/trunk在一个线性历史中。

然后我跑

我希望看到之间的提交remotes/trunkmaster成为 Subversion 修订版,并最终得到一个带有 的线性历史记录remotes/trunkmaster并且story-xyz都指向最新的修订版,如下所示:

我的 Subversion 修订版运行良好,但我最终得到了两个分支的结构。分支的公共根是我提交之前的 Subversion HEAD。两个分支都包含相同的提交系列,因为它们包含相同的差异。分支story-xyz位于一个分支的头部,而另一个分支remotes/trunk位于master

我在运行之前的 git 提交git svn dcommit位于较低的分支 ( story-xyz) 上,其中包含我的 git 提交消息、git 用户名和电子邮件以及 git 提交时间戳。上层分支的提交是新的 git 提交。他们使用我的 Subversion 用户名、我运行时的时间戳dcommit,并且提交消息具有git-svn-id附加到它们的字段。

这一切都好,我可以继续工作。问题是我查看gitk并看到看起来像未合并的分支story-xyz。很难区分我已合并回的故事分支master和未合并的故事分支。最明显的发现方法是重复提交消息。我可以删除story-xyz分支,但感觉就像我没有正确使用 git 并且我丢失了一些历史记录。

我是否错过了会阻止git-svn这样做的东西?或者这只是与 Subversion 交互削弱 git 的力量和自由的方式之一?

0 投票
4 回答
663 浏览

git - 如何欺骗 git-svn 以识别使用 svn 进行的合并?

我们有一个具有稳定主干和不稳定开发分支的 SVN 设置。开发工作(大部分)在分支上完成,然后在部署前合并到主干。

我使用 git-svn 作为我的 SVN 客户端。我从不稳定到主干的合并过程如下:

svn/*是远程 SVN 分支。

这当然要求在我完成之前没有人向主干提交任何内容,但这在实践中不是问题。

这个过程的好处是 git 现在将合并提交的父级记录在我的本地存储库中。这对我的同事没有好处,但它确实允许 git 在进行合并时计算共同祖先。这是非常可取的。

这就是问题所在。当其他人进行合并时,git 不知道。这是一个例子:

不稳定分支是在 X 点创建的。在 A 点,我们决定将来自不稳定分支的更改合并到 B 点的稳定分支中。正确的共同祖先是 X。

由于合并未记录在 git 历史记录中,因此 C 处的以下合并再次假设 X 是共同祖先。我希望它是 A,如下图所示:

并非绝对有必要获得与图片完全相同的图表。任何可以将 A 识别为共同祖先的图表对我来说都很好。

我有一些选择,例如正确使用 git-filter-branch 或从未提交给 SVN 的“假”提交。然而,到目前为止,我的任何尝试都没有奏效。

我很感激你能提出任何想法。该过程不必是自动的。合并非常罕见,我可以忍受“手工”完成的痛苦。

0 投票
2 回答
354 浏览

macos - 在“git svn clone”之后看不到 repo“在 Mac Leopard 上

我们在办公室使用 SVN,我正在尝试自己使用 git-svn。

我在 /usr/local/code/git 中创建了一个目录,并将我的结帐到 /testco。

我使用了手册页中给出的命令 git svn clone ,我的仓库在哪里。

它遍历了 SVN 主干中所有文件的几百行,但是当它完成时,目录只包含一个 .git 文件。其他文件都不存在。有谁知道发生了什么?

0 投票
3 回答
1717 浏览

svn - 我可以让 git-svn 导入一个本身包含 git 存储库的 Subversion 存储库吗

我在 SVN 中有一个项目,它有一个插件文件夹。几个插件文件夹是 git 存储库——我使用git clone.

这对我来说效果很好,但现在我希望使用以下方法将我的 SVN 存储库迁移到 git git-svn

这适用于我所有在我的插件文件夹中没有 git 存储库的早期修订版,但是当它遇到包含 git 存储库的第一个修订版时,它会失败并出现以下错误:

有没有办法让我完全导入我的存储库,也许通过排除驻留在 SVN 存储库中的任何 .git 文件夹?

0 投票
2 回答
1800 浏览

svn - git-svn:从非主分支恢复提交

好吧..我做了一些无头的提交和合并,现在我深陷......

这是我所做的:

  1. 使用 git-svn 获取树干
  2. 分工
  3. git commit ed 东西工作
  4. git svn dcommit 将 cnanges 提交给 svn,(是的,这很有趣)
  5. git结账大师
  6. git合并工作

在这种情况下,git 似乎不明白对 svn 的更改与它本身相同。它现在是最新的,但是当我尝试

我在上游无效