如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区?

2024-01-12

我需要将仓库从一台 Perforce 服务器复制到另一台。文件修订历史记录需要保持完整,但用户信息和工作区信息不能复制到新服务器。

我已经尝试了标准检查点创建和恢复过程,但如果两台服务器上都存在同名的用户或工作区,源服务器将覆盖目标服务器上的此信息。如果这些用户帐户和工作区没有完全相同的详细信息,那就非常糟糕了。

此类操作的目标是允许两个独立的、断开连接的组查看带有修订历史记录的版本化源代码树。更新将是单向的,一组进行开发,一组只是查看。每个小组的网络都是完全封闭的,没有任何形式的外部连接。

任何想法将不胜感激,我已经在这个问题上绞尽脑汁有一段时间了。

编辑: 最终,我的解决方案是在与源服务器相同的计算机上安装中间 Perforce 服务器。使用它,我可以执行从源服务器到中间服务器的标准备份/恢复,然后删除中间服务器中所有不需要的元数据,然后再从中间服务器备份到最终目标服务器。相当复杂,但它完成了工作,并且可以在 Windows Power Shell 中以编程方式完成所有工作。


有几种方法,但我认为你会以一种艰难的方式来解决这个问题。

  1. 继续做你正在做的事情,但删除 db.user、db.view(我认为)和 db.group。然后当你启动perforce服务器时,它会创建这些,但它们将是空的,这将使任何人都很难登录。所以你必须创建用户/组。我不确定您是否可以从另一台服务器获取这些数据库文件并将它们复制进去,从未尝试过。

  2. 更简单的方法是制作一个副本。http://www.perforce.com/perforce/r10.2/manuals/p4sag/10_replication.html http://www.perforce.com/perforce/r10.2/manuals/p4sag/10_replication.html确保查看 p4d -M 标志以确保它是只读副本。我假设你有一个 USB 驱动器或可以在网络之间移动的东西,所以你可以只向 USB 驱动器发出 p4 pull,然后移动驱动器,然后从 USB 运行它,或者发出另一个 p4 pull,拉到最终的服务器。从未尝试过此操作,但通过一些工作应该是可能的,您必须通过 USB 运行服务器才能发出最终的 p4 拉取。

  3. 你可以看看 perforce git fusion,并制作一些 git 克隆。

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

如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区? 的相关文章

  • 一文了解游戏美术开发流程,以及可能遇到的问题

    想了解典型的游戏资产开发工作流吗 一个团队的游戏美术流程取决于几个因素 包括游戏开发工作室类型 正在开发的游戏类型和开发团队成员的数量等 继续往下阅读 你能了解游戏美术开发流程 所使用的工具 以及可能出现的问题 什么是游戏资产工作流 游戏资
  • 记一次老版本perforce的迁移历程

    当前现状 项目组的代码与资源是用perforce管理 已经有7年历史了 用的是perforce2015版本 仓库有2 4T perforce所在物理机只有3T空间 journal文件当前470G 每天增长3 4G 最大的问题 7年前的旧机器
  • 一文了解全面静态代码分析

    在开发具有安全性 可靠性和合规性的软件时 全面静态代码分析是一种有效的方法 在这里 我们将就静态分析而言 讨论全面静态代码分析的不同之处 阐述全面静态代码分析的重要性 以及如何进行全面静态代码分析 什么是全面静态代码分析 全面静态代码分析
  • 直接从 Perforce 命令行更改工作区 clobber 选项

    如何从命令行更改 perforce 规格 我想做的是 我有一个工作区 其 clobber 选项设置为noclobber 默认值 现在我想把它改成clobber 我知道我可以直接从p4v 但我不想要那样 我也知道如果我跑p4 client 它
  • 强制 diff 到 git

    当我尝试使用以下命令修补此问题时 采用强制差异git am 它说 补丁格式检测失败 如何从 perforce 获取更改并将其应用到 git 分支 这是 diff 的前几行 depot a c 162 asdf a c 4326a4327 4
  • Git 与 Perforce 的区别?

    我们有一个 Perforce 存储库 后来切换到了 Git 我们仍然有一个 perforce 中的发布分支 现在 我需要将一些 git 提交应用到 perforce 分支 根据我所读到的内容 这似乎可以通过执行 git diff 创建补丁然
  • 如何在 Eclipse 3.8 中安装 Perforce 插件

    如何在 Eclipse 3 8 中安装 Perforce 插件 P4Eclipse 必然插件和集成页面仅列出 Eclipse 4 2 到 4 4 Eclipse 3 8 是 Ubuntu 14 04 存储库中提供的版本 最新版本的 P4Ec
  • 如何搜索 Perforce 仓库 (P4V) 中的文件内容?

    我目前使用 Perforce 版本 2010 2 该版本似乎没有集成的搜索功能来遍历每个文件的内容 我当前的 P4V 版本仅允许我搜索文件名 但不能搜索内容 对此的任何意见将不胜感激 先感谢您 我相信 尝试 2010 1 版本中添加的 p4
  • 如何使用 python 脚本中的“p4 info”获取perforce工作区的“客户端名称:”?

    我有一个场景 我需要有 perforce 工作区客户端名称信息 尝试使用脚本如下 import sys import subprocess cmd p4 info grep Client name print p4 command is c
  • 从 SVN 迁移到 Perforce —— 提示?经验?

    我们有一个相当大的 SVN 存储库 我们希望将其迁移到 perforce 我们非常希望保留约 20k 的修订 分支等 但在一些初始测试中 perforce 提供的 svn2p4 脚本无法复制完整的结构 人们是否使用此工具取得了成功 或者还有
  • 实际上,如何从工作区中的目录中删除文件,而这些文件不属于工作区?

    如果我要删除的文件不属于工作区 那么如何从工作区的目录中删除文件 我的文件系统上有一个目录 其中包含从 perforce 获取的文件 但在某些进程运行后 它会在这些目录中创建一些新文件 是否有 perforce 命令可以删除这些生成的不属于
  • 我如何获取本地变更列表并将其发送给 Perforce 中的其他人?

    我如何获取本地变更列表并将其发送给 Perforce 中的其他人 更具体地说 我想将未提交的更改从本地待定更改列表发送到另一个用户的待定更改列表 set P4DIFF C cygwin bin diff exe p4 diff du c 1
  • git-p4:致命:构建 git 时不支持 git-p4 (NO_PYTHON=1)

    我正在尝试在我的 Linux 计算机上使用 git p4 但由于某种原因 git p4 似乎有问题 当我运行 git p4 命令时 我得到 fatal git was built without support for git p4 NO
  • `git-p4 clone` 失败“新提示......不包含......”

    我在 Windows 上运行 使用 windows p4 客户端 并通过 Cygwin 安装 git p4 客户端宣传其语法在不同平台上是如何规则的 所以这应该是很不错的 所以当我去git p4 clone verbose depot pa
  • 如何防止 BOM 从 Perforce unicode 文件中删除

    我已将带有 NET 和 SQL 源的整个分支转换为带 BOM 的 UTF 8 将其 Perforce 文件类型更改为Unicode在同一操作中 编码差异可能听起来令人困惑 但在 Perforce 中 Unicode文件类型表示UTF 8文件
  • Perforce 遇到“文件不在客户端根目录下”错误消息

    我通过 VS2010 添加一个项目到 perforce 但我不断收到此错误 file not under client s root对于项目中的所有文件 我似乎无法弄清楚这一点 这是我正在做的事情 1 打开尚未执行的VS2010项目 2 我
  • git-p4 正在吃掉我的图像文件

    所以 我可以使用 git p4 从 p4 导入 没有任何问题 一切似乎都正常 但我的 PNG 文件 也许还有其他文件 正在损坏 我读过有关 gitattributes 和行结束问题的内容 但我所做的一切似乎都无法改变最终结果 破碎的图像 我
  • 在 perforce 客户端创建中将主机覆盖为 null

    我正在使用创建一个 perforce 客户端 p4 client o t old client new client 我想从 perforce 规范中删除 Host 变量 我尝试使用覆盖主机值 p4 H client o t old cli
  • 禁用 VIM 中的警告?

    有没有办法禁用 VIM 中的警告 特别是 当文件从只读变为可写时 我想禁用警告 12 我有一个脚本可以打开文件进行编辑 但 vim 认为文件已更改并发出警告 Thanks 我的 vimrc 中有以下内容 你应该只需要第二个 它将消息回显到状
  • 如何在 Perforce 树中查找未跟踪的文件? (svn状态的模拟)

    有人有脚本或别名来查找 Perforce 树中未跟踪 实际上 未添加 的文件吗 编辑 我更新了对此已接受的答案 因为看起来 P4V 在 2009 年 1 月的版本中添加了对此的支持 EDIT 请用p4 status现在 不再需要跳圈了 参见

随机推荐

  • Jetpack Compose Lazy Column 单选

    我正在从服务器获取数据并将其显示在列表中 可以一键选择每个项目以显示按钮 但我无法关闭它 只能打开它 这是列表类的项目 data class Task val deviceName String val deviceId String va
  • 单击类名为 selenium 的元素

    我正在尝试从网站上抓取酒吧的营业时间 有一个酒吧列表 如果您导航到您可以找到营业时间 当我点击具有类名的元素时遇到问题 我已经编写了代码来获取一个场所的营业时间 但是 我无法从第一个链接导航到每个场所 当我获得一个场地的营业时间时 此代码有
  • Puma 和 Nginx 502 错误网关错误 (Ubuntu Server 14.04)

    我需要部署我的 Rails 应用程序 所以我遵循了这里的所有步骤 https www digitalocean com community tutorials how to deploy a rails app with puma and
  • 在聚合中使用限制排序和跳过排序时出现 Mongodb 复制问题

    通过使用skip和limit排序来获取记录时面临重复记录的问题 采集数据 id ObjectId 594b507c9b9469ec9da6a78b name F percentage 60 0 weightedFilter 2 0 like
  • 获取 POST 变量

    我将 C 与 ASP NET 结合使用 如何检查参数是否已作为 POST 变量接收 如果参数是通过 POST 或 GET 发送的 我需要执行不同的操作 使用它来获取 GET 值 Request QueryString key 这对于 POS
  • 我可以以编程方式启用/禁用异常中断吗?

    我希望能够在调试时中断异常 就像在 Visual Studio 2008 的菜单调试 异常对话框中一样 除了我的程序在到达我想要调试的位之前有许多有效的异常 因此 不必每次都使用对话框手动启用和禁用它 是否可以使用 pragma 或其他方法
  • 如何解决 crypto.getRandomValues() 不支持的问题?

    切换到涡轮机组后 我出现以下错误 https next auth js org errors jwt session error https next auth js org errors jwt session error不支持 cryp
  • Java 泛型和超类型标记

    我试图将以下三种方法变成一个通用解决方案 我尝试了一些可以编译但在运行时表现不佳的想法 public static List
  • Xamarin iOS 调试器未命中断点

    昨天早上 当我开始开发 Xamarin iOS 应用程序时 我的调试器停止了工作 我可以放置断点 但是一旦应用程序启动 断点就会像红色甜甜圈一样变得空心 我已经多次重建 清理项目 我还擦除了 obj bin 文件夹 但似乎没有任何效果 我无
  • android 4.0,操作栏上的文本永远不会显示

    我正在尝试使用 google 的新 api 特别是操作栏 当构建设置为 api 10 时 如果我按下菜单按钮 我会看到漂亮的菜单选项 每个选项都有图片和图标 使用 api 14 时 无论我尝试什么 它总是将图标放在操作栏中 没有任何文本 我
  • 多个阻塞队列,单个消费者

    我有多个包含要发送的消息的 BlockingQueue 消费者是否可能比队列少 我不想循环队列并继续轮询它们 忙于等待 并且我不想每个队列都有一个线程 相反 我希望有一个线程在任何队列上有可用消息时被唤醒 您可以做的一个技巧是拥有一个队列
  • ANTLR如何在输入结束时检测垃圾数据

    当使用 ANTLR 编写的语法时 解析器可以正确识别输入流中的数据 但如果我在输入末尾有一些垃圾文本 不应该由语法解析 解析器不会抱怨 我想这种行为是可以的 我的意思是解析器完成了它的工作并解析了我所说的它应该解析的任何内容 但是有什么技巧
  • 将现有的 defaultdict 输出为耀斑树状图适当的 JSON 格式?

    我有一个defaultdict list 我用过simplejson dumps my defaultdict 为了输出defaultdict转换为 JSON 格式 我正在使用树形图的 HTML 代码http bl ocks org mbo
  • 查找“丢失”的变量(循环引用)

    所以 这是一个有点简单的情况 但如果我设置一个像这样的循环引用 usr bin perl use strict use warnings my thing my otherthing thing gt otherthing otherthi
  • 创建具有 COUNT 个 ms-access 的表

    我有一个数据库 我想创建一个带有 COUNT 函数的表 是否可以 我有 3 个现有表 Member Feedback Attendance 在反馈表中 2 列 Class ID Likes Class ID 与出勤情况相关 因为每个成员参加
  • 在 C# 中将参数传递给 DownloadStringCompletedEventHandler

    我正在 WP7 中开发应用程序 我想将一个列表框作为参数传递给 client DownloadStringCompleted 方法 我的代码如下所示 WebClient client new WebClient client Downloa
  • 如何在alpine:3.8中安装Nodejs v13.0.1?

    我正在编写一个 Dockerfile 来 dockerize php nodejs 应用程序 所以我从基于 alpine 3 8 的 php 7 2 13 fpm alpine 图像开始 作为研究 我发现我可以通过命令添加最新的 alpin
  • Python 中是否有一个函数可以生成给定字母表上长度为 n 的所有字符串?

    我需要一个函数generateAllStrings n alphabet 做这样的事情 generateAllStrings 4 a b gt gt gt aaaa aaab aaba aabb abaa bbba bbbb 换句话说 ge
  • 如何在 Tkinter 窗口中打开网站?

    我正在尝试使用 Tkinter 构建一个简单的网络浏览器 我想知道如何在 Tkinter Python 中打开网站 你不能轻易地做你想做的事 Tkinter 无法渲染 html 您必须自己解析 HTML CSS 和 Javascript 并
  • 如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区?

    我需要将仓库从一台 Perforce 服务器复制到另一台 文件修订历史记录需要保持完整 但用户信息和工作区信息不能复制到新服务器 我已经尝试了标准检查点创建和恢复过程 但如果两台服务器上都存在同名的用户或工作区 源服务器将覆盖目标服务器上的