在发生重大服务器故障后,svn 存储库被破坏,我的工作版本是最新版本,
从我的工作版本重新创建 svn 存储库的方法是什么?
在新服务器上安装 svn 并尝试我的工作副本之后
svn switch NEW_SVN_PATH .
我收到一个错误
Repository UUID '1c604742-6b16-462b-86e4-cc8bce959242' doesn't match expected UUID '6df69aeb-a72c-450d-8102-24036a3855f7'
初始化新的 svn 存储库后
虽然这可能会奏效,但我认为新的结帐可能会更好,而不是重新定位
不得不处理这个。我使用托管颠覆,并进行了转储然后导入。他们的导入过程没有将 UUID 从旧仓库转移到新仓库,所以我得到了与 OP 相同的错误。Stack Exchange 网站上的所有答案都只告诉您如何使用“svnadmin setuuid”来处理这个问题,但这对我来说不是一个选项,因为我使用托管服务(因此 svnadmin 将无法访问存储库)。我本可以输入一张票,但不想等待,所以这是我通过手动更新我的工作副本的 UUID 来修复它的方法:
警告:仅当您确定工作副本和您重新指向的存储库绝对同步时才尝试此操作。不知道如果他们不是会发生什么。
该过程基本上是在工作副本的隐藏 svn 文件夹(名为 .svn 或 _svn 的文件夹)中名为“条目”的文件中用新 UUID 替换旧 UUID。完成后,您可以使用 TortoiseSVN 的“重新定位”将工作目录指向新的存储库 URL。
attrib -R entries /S
attrib +R entries /S
我认为第 5 步所做的所有操作都是替换“条目”文件中的 URL,因此如果需要,您可以手动执行此操作。也可以使用“svn”命令行工具,但不知道我脑海中的命令。
您可以在空存储库上设置 UUID。然后导入您拥有的文件。您将丢失您的历史记录(它不保存在工作副本中)。但是,通过设置 UUID 以匹配您的旧存储库,您可以避免 svn 开关上的错误消息。
我有同样的问题,但由于我们使用托管选项,我也不能
svnadmin
。这是我在另一个项目中使用的外部,我这样做是为了修复它:
rm -rf
目录(外部签入)svn:external
(并提交)svn up
svn:external
再次添加