问题标签 [svn2git]

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 投票
4 回答
2924 浏览

git - svn2git:无法设置跟踪信息

我正在尝试在 svn2git 的帮助下将 SVN 项目迁移到 git。执行命令时退出并出现以下错误:

开始它:

我找不到任何解决方案,而且似乎没有多少用户有同样的问题。

我能做些什么来解决这个问题?

0 投票
1 回答
497 浏览

git - Svn2Git - 将大型 GIT 存储库推送到远程

我目前正在尝试将我们的大型 Subversion 存储库(包括历史记录在内大约 25GB)移动到 GIT 中,我似乎遇到了两个问题。其中一个我认为我已经解决了,但为了完整起见,我会涵盖两者,以防我搞砸了第一个修复;

Subversion 存储库似乎没有遵循一致的分支模式,看起来这种模式多年来发生了变化,所以首先我使用 rootistrunk 选项将整个 repo 获取到 git:

svn2git http://svnurl/repo --rootistrunk --authors authors.txt

这可行,但是回购太大而无法推送到远程,我收到以下错误;[远程拒绝] master -> master (超过最大请求长度)

为了解决这个问题,我使用以下方法获取了 Subversion 存储库的一部分,希望一次可以得到 500 次提交并解决大型打包问题;

svn2git http://svnurl/repo --rootistrunk --authors authors.txt --revision 1:500

然后我推送并成功了,然后我跑去git svn fetch -r 501:1000获取下一个 500 次提交,但是当我尝试在最新的获取之后推送时,我收到一条消息说“一切都是最新的”,尽管事实并非如此。

我已经搜索了 git 和 svn2git 的帮助文件,希望能找出我做错了什么,但经过几天的研究,我仍然没有解决方案,我是 git 的新手,很可能我已经错过了一个老帽子明显的东西。任何人都可以阐明我做错了什么吗?如果我做了一个错误的假设并且我做错了,我会很高兴听到它,因为在这个阶段它不会让我感到惊讶!

我目前正在尝试推进 TFS 2013 项目和 Stash repo,两者都表现出相同的行为,所以我一定在 GIT 方面做错了。第一次推送在这两种情况下都有效,只有第二次不想接受新文件。我正在执行推送的服务器运行 Ubuntu,TFS 在 Windows Server 2012 上,而 Stash 在另一个 Ubuntu 机器上。

欢迎任何提示,我现在很困惑,不知道下一步该去哪里。

谢谢,基冈

0 投票
0 回答
137 浏览

git - 在不丢失提交历史的情况下将代码从 SVN 迁移到 GIT?

我想将现有的 svn repo 迁移到 git repo。我使用'svn2git'。情况是:

SVN 回购:

  • ./svn_repo/a/
  • ./svn_repo/b/

我在文件夹 svn_repo、'a' 和 'b' 中有不同的 svn 日志。例如:

  • svn_repo: 'svn 日志' -> bla, bla
  • svn_repo/a: 'svn 日志' -> asd, asd
  • svn_repo/b: 'svn 日志' -> 123, 123

移民:

  1. svn2git -v 'svn_repo' --trunk / --nobranches --notags
  2. 创建一个文件 authors.txt,其中包含要进行的转换列表,每行一个。
  3. 然后将作者选项传递给指向文件的 svn2git: svn2git 'svn_repo' --authors ~/authors.txt
  4. git remote add origin ..git_repo 然后'git push origin master'

现在:GIT 回购:

  • ./git_repo/a/
  • ./git_repo/b/

一切都很好,除了日志。

迁移后:

  • git_repo: 'git log' -> bla, bla
  • git_repo/a: 'git log' -> bla, bla * (而不是 asd, asd)
  • git_repo/b: 'git log' -> bla, bla * (而不是 123, 123)

迁移后如何在 git 中拥有与 svn 中(在目录 a、b 等中)相同的日志?

BR

0 投票
1 回答
889 浏览

git - svn2git 忽略“--username”-参数

我刚刚尝试将 svn-repo 导入到 git repo,但我遇到了一些问题。在开始导入第一个 repo 后,svn2git http://path.to.repo.com/repos/a/ --username abc --verbose我认为“这花费了太长时间”。由于此时它仅用于测试目的,我决定先CTRL-C导入一个较小的存储库。所以我输入了svn2g http://path.to.repoe.com/repos/b/ --username xyz --verbose.

这给了我这个

我确定,用户名是正确的,所以我查看了 svn_access_log 并在那里看到,每次我运行第二个命令--username xyz时都会在我的 svn_access_log 中弹出:

为什么 svn2git 在这里使用了错误的用户名,即使我提供了它?

更新:它工作,在我跑之后svn co http://path.to.repo.com/repos/b/ --username xyz。谁能给我解释一下?

0 投票
2 回答
1363 浏览

git - svn2git 无法正确导入标签

我有一个SVN-repository,我想将它转换成一个git-repository。我正在使用svn2git来实现这一点。不幸的是,该工具似乎无法正确获取标签。我的SVN-repository 看起来像这样:

但是 git 存储库并不代表这一点。标签如下所示:

注意缺少的标签。由于某种原因,它们被存储为远程分支:

这里发生了什么?

编辑:我忘了添加我的命令:svn2git http://path/to/repository --no-minimize-url --verbose --username='username' --trunk trunk --nobranches --tags tags

Edit2:我刚刚检查并发现,看似随机的数字实际上是SVN-repository 中的修订版,标签是由它制作的。有点奇怪,大约 20 个标签中只有 3 个会添加修订版......

Edit3:显然问题与一个标签的注释有关,其中包含". 之后的所有标签都保存为分支,因为svn2git不会转义"并尝试执行类似的操作

由于明显的原因而失败。我仍然不知道,为什么对于某些标签它会添加修订号。如果有人对如何克服这个问题有任何建议,我将非常感激。

Edit4:我找到了逃避问题的解决方案。-source中的转义函数svn2git有点奇怪......它只''\''. 我受够了...

0 投票
5 回答
17152 浏览

git - 不存在标签的 Maven 发布插件“标签已存在”

我的设置: -servergit上的 -repositoryAtlassian StashAtlassian Bamboo. 我正在Maven 3.1.1使用release-plugin 2.3.2. 中的计划Bamboo如下所示:

  1. git-repository 签出
  2. 执行一个clean install
  3. 执行release:prepareand release:performwith ignoreSnapshots=trueandresume=false

直到最后一步的一切工作正常,但Maven声明它不能标记发布,因为标记已经存在。这是日志:

好吧,显然标签已经存在,没什么大不了的。但是,这就是git tag我的存储库的样子:

-repositorygit是通过svn2gitsvn-repository 克隆的。我已尝试多次重新导入存储库并在stash-server 上删除并重新克隆它。然而,标签6.2.2似乎存在于Maven. 这里发生了什么?

更新:我刚刚尝试从存储库中删除所有标签。结果相同。将版本从 更改6.2.26.2.3显示出积极的结果。

另一个更新:它似乎与存储库的名称有关。创建一个具有相同名称但-2最后添加的新存储库有帮助。

0 投票
2 回答
86 浏览

git - 包括转换后创建的分支

我正在将大型存储库从 SVN 转换为 Git。我使用 SVN2Git 来处理转换。但是,这需要很长时间。因此,在我们测试、准备 CI 和构建基础架构等时,我一直在使用该svn2git --rebase命令进行更改。

但是,我不确定我应该如何处理对分支或添加的分支的更改。例如,今天有人创建了一个分支,我需要将其引入。我运行了我的svn2git --rebase(针对 [master]),它按预期更新了 master,但新分支没有转换过来。

这让我怀疑它是否正在更新现有的分支。那么,svn2git 在 期间做了什么--rebase,确切地说,但更重要的是,我如何确保我的分支正在更新并且任何新的分支也正在转换?

我什至会决定如何从 svn 手动转换或更新 git 分支,因为数量不多,但它们很重要。

0 投票
1 回答
1624 浏览

git - 将只读 Subversion 导入 Git 被“编辑根的读取访问被拒绝”阻止

我正在尝试将代码从半公开的 Subversion 存储库导入到我自己的 Git 存储库中。 此处解释了 Subversion 存储库访问(启用 JavaScript 读取;查看“[下载]”链接)。

我尝试过git svn clone手动以及通过svn2git实用程序使用。无论哪种方式,我都会遇到如下所示的相同错误。

我可以验证我是否可以访问 Subversion 存储库:svn co svn+ssh://harmony@eniac.seas.upenn.edu/trunk有效。

帮助!

0 投票
1 回答
645 浏览

git - svn 到 git 迁移失败

我有一个包含大约 45000 个修订版的 subversion 存储库。我正在尝试将其转换为 git,但它一直失败。

我试过 git svn clone、subgit、svn2git 和 atlassian 提供的 svn-migration-scripts.jar

git svn clone 和 atlassian 提供 jar 使用导致类似错误 - perl.exe.dump

subgit 给了我一个内存不足的错误

svn2git 给出了不同的错误

我不确定我是否做错了什么/如果我没有为迁移分配足够的资源(内存/CPU 等......)。或者,如果我的 SVN 存储库有问题导致这些失败。

有关如何解决这些问题的任何建议/想法?此外,45000 个修订是否使它成为一个大型存储库?

谢谢

0 投票
1 回答
226 浏览

jenkins - 在 Jenkins 中运行 svn2git

我正在尝试在 Jenkins 作业中运行 svn2git 以定期将 Git 存储库与其在本地服务器上的 SVN 目录同步。

作业失败并输出以下消息

Jenkins 在 Windows 中以本地管理员用户帐户运行。

我已经使用同一个帐户通过命令提示符运行 svn2git --rebase 并永久接受了证书。

命令提示符中的后续 svn2git --rebase 不会引发此消息,但是当我尝试通过 Jenkins 作业运行 svn2git 时仍然收到该消息。

关于如何让詹金斯永久接受这个证书的任何想法?