如何将GIT存储库与SVN同步?

2023-12-13

我正计划创建一个开源项目的分支,但我想切换到 GIT。该项目正在使用 SVN,但没有可用的 TRAC,因此我无法在 PC 上没有 SVN 的情况下下载变更集(更不用说 svn diff 不允许二进制补丁)。

有没有办法将我的 GIT 主存储库与 SVN 的 HEAD/主干同步,而不在我的 HDD 上保留另一个项目?


您可以使用以下命令将 SVN 与 Git 同步git-svn(1).

如果您有现有的 Git 存储库,并且想要与另一个 SVN 存储库绑定,您可以尝试某种 voodoo,请参阅http://blog.experimentalworks.net/2009/07/git-voodoo/.

该博客展示了如何使用新创建的远程 SVN 存储库将现有的非 git-svn Git 存储库转换为启用 git-svn 的 Git 存储库。您可以稍微修改 voodoo 工作流程,将现有的 SVN 存储库导入到您的 Git 存储库中:

  1. 将主干作为并行分支导入到现有的 Git 存储库中

    cd GIT-REPO
    git svn clone --stdlayout SVN-URL .
    
  2. 设置移植物:

    TRUNK_HEAD=`git rev-parse trunk`
    MASTER_INIT=`git rev-list --reverse master | head -1`
    echo $MASTER_INIT $TRUNK_HEAD >.git/info/grafts
    
  3. 找出master分支中要追加到trunk的范围,例如,只有从标签v2.0开始的更改才会追加到trunk。

  4. 重新设置主干基础

    git checkout master
    git rebase --onto trunk v2.0 master
    
  5. 提交到主干

    git svn dcommit
    

使用提示:通过使用 git-svn 移植,你应该确保你不会dcommit空提交。否则,dcommit将失败。要过滤掉空提交,请尝试

git filter-branch --prune-empty

在第一次之前dcommit.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将GIT存储库与SVN同步? 的相关文章

  • 使用 TortoiseGit 创建 git 克隆时出现 SSL 证书问题

    我想在 TortoiseGit 的帮助下克隆 git 存储库 但出现错误 错误 SSL 证书有问题 请验证 CA 证书是否正常 细节 错误 14090086 SSL 例程 SSL3 GET SERVER CERTIFICATE 访问时证书验
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • EGit(Eclipse git 插件)可以使用 SSH 密钥代替用户名和密码吗?

    我需要提交的 git 中央存储库是使用 SSH 密钥配置的 我的用户名是jmglov 但是当我执行 git 操作时 例如git clone 我使用这个配置 jmglov kitiara cat git config remote origi
  • SVN 提交前撤消删除

    如果您从 SVN 工作副本中删除了一个目录 但尚未提交 则如何将其恢复并不明显 当您输入 svn undo d 时 Google 甚至建议将 svn undo delete before commit 作为常见查询 但搜索结果没有任何帮助
  • 重新整合工作流程

    各位专家您好 我这个 Tortoise SVN 的老新手 问一个简单的问题 我正在一个分支上工作 现在想将分支中的更改 提交后 合并到主干 但是我不确定正确的工作流程 在解决所有可能的冲突后 我是否应该首先将主干合并到我的工作副本 然后将我
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • 如何通过哈希显示提交的日期和时间

    I used git reflog识别我创建特定分支时的哈希值 我得到了哈希值fe1ddcdef 我还没有将此分支推送到远程 我现在正在尝试查找日期和时间fe1ddcdef发生 git reflog只告诉我 fe1ddcdef HEAD 1
  • 有人熟悉 git 错误“缺少对象 0000000000000000000000000000000000000000 for refs/heads/...”吗?

    我们正在运行 git v1 7 1 并配置了 gitweb 我们也使用 gitolite 进行管理 但我不认为这与这个问题有密切关系 有时我们会在 Apache 日志中收到如下错误 missing object 00000000000000
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 是否可以在 git 存储库之外添加和提交文件?

    我们的文本文件分布在系统的各个角落 我们计划将这些文件中所做的所有修改添加到 git 存储库中 每次对这些文件进行修改都是由脚本进行的 因此 我们计划向该脚本添加新命令 以将文件添加到 git 存储库 但是 这些修改是同时进行的 我们可以为
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 我在哪里? *(无分支)

    我已经熟悉了创建 合并和删除分支 我想知道我在哪里 这样我就不会将工作提交到错误的分支 我用git branch a看看我有哪些分支 我认为星号 显示我当前所在的分支 当我得到以下信息时 这意味着什么 no branch master or
  • Git post-receive - 如何检查推送的分支是否与主分支合并

    在我们的团队中 我们通常将所有任务推送到单独的分支中 然后发布经理审查这些分支并将它们合并到 主 分支中 有时团队成员忘记将他们的分支与主分支合并 在推送之前 所以我想做的是 在用户推送后输出一条消息 请与主分支合并 我想我需要检查一些内容
  • 如何最好地处理不应该提交的 SVN 和本地更改?

    我已经从 SVN 存储库中查看了一些项目 为了构建这些项目 我必须调整一些配置 例如类路径和属性文件 以适应本地环境 现在我不想将这些更改提交到存储库 因此设置 svn ignore 可能会有所帮助 但是 如果我想从存储库获取更新而不提交这
  • 您的分支比“origin/master”领先 3 个提交

    我在运行时收到以下信息git status Your branch is ahead of origin master by 3 commits 我读过其他一些帖子 解决这个问题的方法是运行git pull rebase但是 rebase
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 执行 git Push 时出现“diff.renamelimit 变量”警告

    我将本地提交推送到远程 git 服务器并收到以下警告消息 remote warning only found copies from modified paths due to too many files remote warning y
  • svn 恢复所有属性更改

    我有一个 svn 工作副本 我试图将最近的几个修订反向合并到其中 由于我改变了主意 我在合并完成之前取消了合并 现在 我的工作副本有几千个 更改 来自对大多数文件的祖先相关属性的更新 我有大约 10 个文件 其中混合了真实的代码更改 我不想

随机推荐

  • Spring JDBC - 最后插入的 id

    我正在使用 Spring JDBC 是使用 Spring Framework 获取最后插入的 ID 的简单方法还是我需要使用一些 JDBC 技巧 jdbcTemplate update insert into test name value
  • 连续单击 JButton 两次

    我想知道 java 中是否有内置函数或检查 JButton 是否连续单击两次的方法 不要将其与跟踪 JButton 被单击或双击 JButton 的次数相混淆 我搜索了多个线程 它们似乎都在谈论后者 如果调用按钮 我有以下代码可以工作but
  • 矩阵3d变换以获得梯形?

    我尝试模拟向后翻转效果 即两扇门同时向后打开 我尝试了不同的矩阵生成器来获得所需的梯形 但我没有任何运气 我知道我必须将旋转 Y 从 0 度设置为 180 度并保持变换原点 但那个梯形让我丧命 怎么样使用perspective demo H
  • 隐藏移动版本网站内容的最有效方法是什么?

    我正在开发一个大型网站的移动版本 完整网站中有很多内容是移动设备不需要的 隐藏这个的最好方法是什么 即什么会导致浏览器的工作量最少 从而保持响应能力 CSS显示 无 jQuery 的 消除 方法例如 未测试 var elements to
  • 请求“静态初始化订单惨败”的详细描述

    我在 faq lite 中读到了有关 SIOF 的信息 但我仍然不明白为什么会出现这个问题 我有一个静态库 a 我使用该库来使用其静态常量数据成员对象类型 然后我使用静态常量数据成员对象类型并将其分配给全局变量 对象 但当我将全局变量用于我
  • Python multiprocessing.Process 不并行运行

    为什么下面代码的进程不能并行工作 当我运行代码时 我等待它并行运行 但它首先等待第一个进程完成 然后是第二个进程 依此类推 没有什么是并行运行的 可能我在并行执行Python代码时有一个盲点 import multiprocessing i
  • uinavigationcontroller 内的选项卡栏控制器

    我在导航控制器中有一个选项卡栏控制器 但我似乎无法设置导航栏标题或使用以下方法向导航栏添加按钮 self title My Name 上面的代码仅更改选项卡栏项目名称 而不更改导航控制器 第二 我想禁止返回登录屏幕 屏幕截图中带有 UIWe
  • 轴末端的轴刻度线与面板边框不对齐[重复]

    这个问题在这里已经有答案了 我知道 ggplot 默认情况下会在轴和数据之间放置 填充 我希望轴的原点是一个实际的数字 例如0 我知道这可以使用scale y continuous expand c 0 0 and scale x cont
  • Promise拒绝()导致“未捕获(承诺中)”警告

    曾经的承诺reject 回调被调用 警告消息 未被捕获 承诺 显示在 Chrome 控制台中 然而我有一个catch处理程序就位 我无法理解其背后的原因 也不知道如何摆脱它 var p new Promise resolve reject
  • 任务执行失败:app:transformClassesWithJarMergingForDebug

    我目前正在开发一个 Android 应用程序 但每当我尝试加载某些 jar 文件时 都会收到以下错误 错误 任务执行失败 app transformClassesWithJarMergingForDebug com android buil
  • 将 iPhone 应用程序转换为通用应用程序?

    我有一个 iPhone 应用程序FirstViewController and SecondViewController各持己见FirstView xib and SecondView xib 现在我想让这个应用程序在 iPhone 和 i
  • 当 SQL Server 中所有更新都是 DELETE + (re)INSERT 时,更新是否会触发 INSERT 事件

    据我了解 当您更新 SQL Server 中的一行或多行时 记录将被删除并使用新值重新插入 这是否意味着会触发 INSERT 事件 或者只是更新行时触发 UPDATE 编辑 为任何懒惰的读者突出显示主要信息 尽管我建议您阅读下面 davek
  • 更改实例状态不会反映在序列化对象中

    我写了下面的简单代码 public static void main String args throws FileNotFoundException IOException ClassNotFoundException ObjectOut
  • 消除 y = 0 处 R 密度图密度中的灰线

    我有一个密度图 我想将其保存在 eps 文件中 我的密度图是这样的 setEPS postscript myfile eps plot density rnorm 1000 dev off 只是我的数据 有点复杂 更改标签和边距 上面有更多
  • SwiftUI 激活 ForEach 中所有可用索引

    我在 SwiftUI 中以编程方式打开和关闭视图时遇到问题 使用下面的代码 当单击其中一个索引时 SwiftUI 将依次打开 contactArray 的每个索引 它会循环遍历所有索引 当然 它应该只打开我点击的那个 我认为问题可能依赖于
  • asp.net / MySQL:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我是一名网络开发新手 我希望有更多经验的人可以帮助解决这个问题 我被 MySQL 升级伏击了 背景 我有两台 XP PC 让我们雄心勃勃地称它们为 Web 服务器 和 MySQL 服务器 我最近构建并成功托管了一个从 MySQL 数据库提取
  • Pandas Datetime:计算两列中日期之间的周数

    假设我有一个数据框 其中有两列包含日期 我想创建一个新列 其值是这些日期之间的月数 gt df Index Date1 Date2 1 2012 03 07 2013 03 16 2 2012 12 05 2012 12 25 3 2010
  • 使用 java 连接到 ibm mq 7.5 的问题

    我对 ibm mq 很陌生 我发现与 mb 相关的文档或书籍很少 我找到的唯一一本是 2004 年写的 WebSphere MQ using Java 但现实世界已经发生了很大变化 我根据以下内容在 redhat linux 64 位上成功
  • 使用 Wicked_PDF 渲染为 PDF 时,ChartKick 图表不显示

    我正在使用 Rails 4 Wicked PDF 和 Chartkick Gem s对于谷歌图表我使用 html 视图显示了图表和预期的所有内容 当我将 pdf 附加到 url 时 pdf 文档会显示在浏览器中 但 ChartKick 图表
  • 如何将GIT存储库与SVN同步?

    我正计划创建一个开源项目的分支 但我想切换到 GIT 该项目正在使用 SVN 但没有可用的 TRAC 因此我无法在 PC 上没有 SVN 的情况下下载变更集 更不用说 svn diff 不允许二进制补丁 有没有办法将我的 GIT 主存储库与