将代码与两个 subversion 存储库同步

2023-11-24

首先介绍一下背景:

  • 我正在使用来自远程 SVN 存储库的“基本”代码,不受我的控制。代码还没有标记,所以我总是需要跟上主干。

  • 由于多种原因(最重要的是我们对代码的本地扩展具有“利基”性质,并且旨在解决使用代码的项目的特定问题)我无法使用远程存储库对我在本地所做的任何修改进行版本控制。

  • 我有一个本地 SVN 存储库,目前正在其中进行“本地”版本控制。

我面临的问题:我不知道是否有一种好方法可以使代码同时与两个存储库同步。也就是说,我想保留“远程”版本信息(以便我可以在将来的更改中合并),但我也想同时拥有“本地”版本信息(即在同一目录结构中) 。

目前我正在使用两个不同的目录来执行此操作,两个目录都包含相同的代码,但每个目录都包含不同的版本控制信息。显然这是相当大的开销,尤其是两个目录中的代码需要独立同步。

有没有办法在颠覆中做到这一点?或者您对解决这个问题的替代方法有什么建议吗?


我使用 git svn 完成此操作,并在 git 存储库中完成开发。远程开发是在subversion中完成的。我制作了 subversion 存储库的 git svn 克隆,并将其推送到真正的 git 存储库。 cronjob 时不时地运行“git svn rebase && git push”来创建 subversion 存储库的 git 镜像。

为了合并 subversion 更改,我的本地 git 副本中有 2 个遥控器 - “本地开发”原点和“来自 subversion 镜像”原点。每当我觉得需要时,我都可以将 subversion 镜像中的更改合并到我们的开发树中。本地更改不受影响,它们分开存在并且不会弄乱 svn 镜像。

I used gitosis设置和管理 git 存储库。步骤大概是这样的(凭记忆,可能有错):

# set up the mirror
git svn clone -s $SVN
git remote add origin git@$MACHINE:svnmirror.git
git push
# + cron job to do git svn rebase && git push every N hours/minutes

# set up the local working copy for development
git clone git://$MACHINE/svnmirror.git
# that's an anonymous, read only clone 
# no push to the svn mirror for developers - only cronjob user can push there
git remote add newproject git@$MACHINE:myproject.git
git push newproject
# now do the real deal
git clone git://$MACHINE/myproject.git
# hack hack hack
git push # origin master not needed
git remote add svnmirror git://$MACHINE/svnmirror.git
git merge svnmirror/master
git push
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将代码与两个 subversion 存储库同步 的相关文章

  • SVN:如何解决“文件已被替换”状态

    我正在修改文件 重命名它们并切换它们 我正在测试替代主页 现在我收到一条状态消息 上面写着 文件已被替换 和一个 R 我不知道该怎么做才能解决这个问题 我正在使用Coda 但它没有解决这个问题 所以我想这是命令行时间 我关心的版本是我的本地
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • 如何从 Chrome 扩展示例(subversion 存储库)下载所有文件?

    我要下载这个例子 http src chromium org viewvc chrome trunk src chrome common extensions docs examples api tabs 它们是使用 ViewVC 显示的
  • Android SyncAdapter 回调

    我已经按照 SDK 中的 SimpleSyncAdapter 示例项目的思路实现了 SyncAdapter AccountManager 和私有 ContentProvider 一切都运转良好 现在 当从远程服务器下载了设置了特定标志的新行
  • 设置可视化SVN服务器后无法浏览存储库

    我在 Windows 7 x64 系统上安装了 VisualSVN Server 2 1 7 我已使用所有默认选项 安装路径 C Program Files x86 VisualSVN Server 存储库路径 D Repositories
  • 为什么我不能在 cygwin 中使用 $SVN_EDITOR 环境变量?

    我一定是错过了一些愚蠢的事情 当我使用 m 选项时它工作正常 echo SVN EDITOR emacs svn commit test py svn Commit failed details to follow svn Could no
  • 是否可以追溯添加如果执行 svn cp 而不是 cp 时就会存在的历史记录?

    我有一个项目 其中一个目录最初 数百次提交前 从另一个目录逐字复制 但未使用 svn cp 因此历史记录中存在断开连接 现在是否可以在初始复制点连接两个目录 还是太晚了 让我猜猜你在说什么 目录foo处于颠覆状态 在修订版 100 中 有人
  • 无法连接到 Wordpress SVN 服务器来更新存储库

    好的 今天早上由于某种原因 我无法连接到 Wordpress SVN 存储库并执行基本的 svn 命令 例如checkout update 以下是正在发生的情况的示例 svn co http svn automattic com wordp
  • 对于独立开发人员来说,通过 file:// 访问 Subversion 存储库有什么缺点吗?

    如果您的开发计算机上安装了 Subversion 并且您不在团队中工作 那么您是否有任何理由应该使用 Subversionsvn协议而不是file 如果您自己在一台机器上工作 那么根据我的经验 使用 file 协议效果很好 即使我的团队在远
  • Tortoise 无法连接到 subversion 服务器

    我正在尝试在我的家庭服务器上设置 Subversion 存储库 经过一些更改后 我在 Windows Server 2003 服务器上卸载并重新安装了 VisualSVN Server 并且存储库的地址 即 URL 是https serve
  • git svn 克隆特定分支并合并

    我希望将我的代码库从 svn 迁移到 git 我的 svn 仓库中有太多分支 我只想克隆几个分支并将它们合并在一起并将其推送到 git 我想避免克隆所有分支 因为这需要很长时间 我该如何实现这一目标 完成后 我想定期从这些 svn 分支获取
  • 使用 reposurgeon 将 svn repo 转换为 git

    我正在尝试使用 svn repo 转换为 git再生外科医生 http www catb org esr reposurgeon 这是我所做的 有一个具有 svn 名称 gt git 名称映射的 repo map 文件 svnadmin d
  • svn delete --keep-local 还会阻止文件在更新时被删除吗?

    我在 SO 上看到了很多关于使用 svn delete 和 keep local 标志来将文件保留在本地 同时在存储库中删除它的很好的答案 不幸的是 我无法找到任何有关该文件在更新时是否会从同事计算机上删除的信息 因为该文件已从 svn 中
  • 是否可以链接 SVN 存储库文件,以便一个文件实际上是对另一个存储库文件的引用?

    我可以看到这个概念有一些潜在的困难 但想法是 我更改存储库 A 中的文件并提交 存储库 B 有一个文件是存储库 A 中文件的链接 我在存储库 B 的工作副本中单击文件上的更新 然后从存储库 A 接收更新的文件 是的 无论如何对于目录 See
  • dotNet:有没有办法在 UI 线程上执行 Join 语句?

    我正在编写一个简单的线程应用程序 当单击开始按钮时 应用程序禁用此按钮 运行 5 个线程 只需进行 For 迭代并更新 5 个进度条 最后一个线程正在等待线程结束 以重新启用我的开始按钮 问题 用户看到按钮在进度条达到 100 之前已启用
  • 使用 git-svn (或类似的)*只是*来帮助进行 svn 合并?

    我的项目中出现了一些复杂的颠覆合并 已经分开很长时间的大分支 Svn 给出了太多的冲突 其中一些看起来是虚假的 鉴于git因卓越的合并体验而受到称赞 用起来有什么好处吗git svn just for使合并更易于管理有何好处 你能推荐其他选
  • Visual Studio 2010 中的源代码控制?

    在对 SO Google 和 MSDN 论坛进行了一些搜索之后 我感到很沮丧 因为对于一个看似显而易见的问题 甚至可能是一个愚蠢的问题 信息太少 我需要在 Visual Studio 2010 Professional 中使用源代码管理 我
  • 从 git 中提取特定的提交/文件

    我在 git 存储库中进行了两次提交 并将它们推送到我的 git 服务器 两个提交是 在第一次提交中文件 A 被提交 在第二次提交中 文件 B 被提交 现在在另一台开发服务器上 我只想从 git 服务器中提取第一个提交或文件 A 这个怎么做
  • 将文件提交到不同的分支而不进行签出

    是否可以在 git 分支中提交文件而不检出该分支 如果是这样怎么办 本质上 我希望能够将文件保存在我的 github Pages 分支中 而无需一直切换分支 有什么想法吗 我需要以原子方式完成此操作 而不更改当前目录 因此多个命令将无法工作
  • 在 Windows 上使用的 Subversion Server

    哪种 Subversion SVN Server 会建议新手开始使用 Windows Server 操作系统 我想我将在客户端上使用 TortoiseSVN 并且主要进行 NET 开发 UPDATE 很好的建议 我根据投票选择我的答案 我会

随机推荐

  • 曼哈顿距离 A*

    我正在使用 A 搜索算法并使用曼哈顿距离作为启发式来实现 NxN 谜题求解器 我遇到了一个好奇的问题bug 我无法理解 考虑这些谜题 0 元素是空白 最初的 1 0 2 7 5 4 8 6 3 goal 1 2 3 4 5 6 7 8 0
  • 获取等于目标的数组项的总和(子集总和)

    我需要获得等于目标的数组项的总和 如果数组项的总和不等于目标 我想获得小于目标的最高总和 这是一个例子 Input 4 6 8 12 4 6 6 12 4 4 4 Results 12 12 8 4 6 6 4 4 4 6 4 Note 数
  • 如何根据字段的子字符串值连接两个表?

    我遇到了 sql 问题 我想加入两个表 员工和班级讲师 条件是员工的 unid 列如 u0871457 而班级讲师的 EmplId 为 00871457 我只想将 EmplId 的第一个字符替换为 u 来连接以匹配来自 unid 的字符串
  • LSF - 获取已提交作业的 ID

    假设我使用类似的东西提交了一份工作bsub pwd 现在我想获取该作业的作业 ID 以便为下一个作业建立依赖关系 有什么方法可以让 bsub 返回作业 ID 吗 Nils 和 Andrey 分别在 shell 和 C C 环境中找到了这个具
  • 为 Fancybox 添加缩放功能

    我正在使用 Fancybox 作为我的缩略图库 我想使用 JQZoom http www mind projects it projects jqzoom 还有 fancybox 最终结果 1 用户点击缩略图 2 fancybox出现更大的
  • 使用 msbuild 指定解决方案的项目文件

    我想要使 用 msbuild 构建解决方案的特定项目的命令行 就像我们使用 devenv com 一样 在 devenv com 中 我们可以使用以下命令行指定解决方案的项目 devenv com Build Release x86 tes
  • 按字母顺序排列 CSS 属性是否有速度优势?

    我希望这个问题不要太奇怪和武断 当我使用 Firebug 查看一些 CSS 时 我注意到每个标签的 CSS 属性都是按字母顺序排列的 它是想告诉我们什么吗 除了能够更快地找到所需属性的明显好处之外 我想知道 如果属性在原始样式表中按字母顺序
  • 为什么在传递 std::ofstream 作为参数时要使用“使用已删除”函数? [复制]

    这个问题在这里已经有答案了 我有一个会员是std ofstream fBinaryFile and a void setFile std ofstream pBinaryFile fBinaryFile pBinaryFile output
  • 如何从 Pandas 的 OLS 摘要中提取特定值?

    是否有可能从 pandas 的线性回归摘要中获取其他值 目前我只知道一种获取 beta 和截距的方法 我需要得到 R 平方 这是手册的摘录 In 244 model ols y rets AAPL x rets ix GOOG In 245
  • Ruby,如何访问 do-end 循环之外的局部变量

    我有一个循环 在远程计算机上执行一系列命令 ssh exec cd vmfs volumes 4c6d95d2 b1923d5d 4dd7 f4ce46baaadc ghettoVCB ghettoVCB sh f vms to backu
  • 从表中删除重复行

    我的数据库中有一个表 其中包含我想要删除的重复记录 我不想为此创建一个包含不同条目的新表 我想要的是从现有表中删除重复的条目而不创建任何新表 有什么办法可以做到这一点吗 id action L1 name L1 data L2 name L
  • 如何在 PHP 中重复数组?

    arr array 1st 1st 以上 arr has 2项目 我想重复 arr这样它就充满了4 items PHP 中有单次调用吗 数组填充函数应该有帮助 array array fill int start index int num
  • IEquatable 和仅仅重写 Object.Equals() 有什么区别?

    我想要我的Food类能够在它等于另一个实例时进行测试Food 稍后我将针对列表使用它 并且我想使用它List Contains 方法 我应该实施IEquatable
  • 使用 Javascript 语法高亮代码 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您可以推荐哪些 Javas
  • 如何在前台运行 GcmListenerService

    我的 GCM 服务有时会出现问题 当我的智能手机的 RAM 自动清除时 该服务会关闭 请阅读this如果您需要更多详细信息 据我了解 如果我将服务设置为在前台运行 它应该有助于系统用 RAM 删除它 方法为Service class onS
  • HTML5 与 HTML4 - h1 标签呈现有额外的空间 - 如何删除?

    我选取了一个 DTD 为 HTML4 Transitional 的页面 并将文档类型更改为h1 和其下方的 div 之间会出现额外的空间 我没有对标记或 CSS 进行任何其他更改 JSFiddle 示例 http jsfiddle net
  • 是否有不需要空终止字符串的 strtol 等效项?

    是否有类似于 strtol 的标准 C 函数 它将采用 char 和非空终止字符串的长度 我知道我可以将字符串复制到空终止区域 但出于效率原因 这是不可取的 标准库中没有这样的函数 您要么必须使用临时缓冲区方法 要么从头开始编写自己的函数
  • Python导入csv到列表[重复]

    这个问题在这里已经有答案了 我有一个包含大约 2000 条记录的 CSV 文件 每条记录都有一个字符串和一个类别 This is the first line Line1 This is the second line Line2 This
  • iOS 版 Google 地图,swift - 如何显示标记之间的整个折线?

    我正在尝试在谷歌地图视图中拟合一条折线 折线是通过谷歌地图方向API中的overview polyline获取的 想知道如何将编码的折线转换为可以使用的东西 我需要使折线适合地图视图 我发现要做的就是适应边界以显示所有标记 但不显示整个折线
  • 将代码与两个 subversion 存储库同步

    首先介绍一下背景 我正在使用来自远程 SVN 存储库的 基本 代码 不受我的控制 代码还没有标记 所以我总是需要跟上主干 由于多种原因 最重要的是我们对代码的本地扩展具有 利基 性质 并且旨在解决使用代码的项目的特定问题 我无法使用远程存储