在一个主要的服务器故障之后,svn仓库被销毁,我的工作版本是最新的版本,
什么是从我的工作版本重新创buildsvn仓库的方式?
在一个新的服务器上安装svn并尝试在我的工作副本
svn switch NEW_SVN_PATH .
我得到一个错误
Repository UUID '1c604742-6b16-462b-86e4-cc8bce959242' doesn't match expected UUID '6df69aeb-a72c-450d-8102-24036a3855f7'
在初始化新的svn reporsitry之后
虽然这可能工作,我认为,而不是一个搬迁,一个新的结账可能是好的
必须处理这个。 我使用托pipe的颠覆,并做了转储,然后导入。 他们的导入过程没有将UUID从旧的repo转移到新的,所以我得到了和OP一样的错误。 Stack Exchange站点上的所有答案只会告诉你如何使用“svnadmin setuuid”来处理这个问题,但是由于我使用的是托pipe服务,所以对我来说这不是一个选项(因此svnadmin将无法访问存储库)。 我本来可以进入一个票,但不想处理等待,所以这里是我如何解决它,通过手动更新我的工作副本的UUID :
警告:如果您确定工作副本和您重新指向的存储库完全同步,请尝试此操作。 不知道如果不是,会发生什么。
这个过程基本上是用工作副本隐藏的svn文件夹(名为.svn或_svn的文件夹)中名为“entries”的文件中的新UUIDreplace旧的UUID。 完成之后,您可以使用TortoiseSVN的“重定位”将工作目录指向新的存储库URL。
attrib -R entries /S attrib +R entries /S 第5步所做的就是replace我认为的“entries”文件中的URL,所以如果需要,您可以手动完成。 也可以使用“svn”命令行工具,但不知道命令closures了我的脑袋。
您可以在一个空的存储库上设置UUID。 然后导入你有的文件。 你会失去你的历史(这不是保存在工作副本)。 但是,通过设置UUID以匹配您的旧版本库,您可以避免在svn开关上出现错误消息。
$ svnlook uuid /var/svn/repos cf1b8d31-acb6-02dc-bc7c-16e92ce6dbec $ svnadmin setuuid /var/svn/repos # generate a new UUID $ svnlook uuid /var/svn/repos 4c2c49fe-acc1-23dc-acbc-2b28ff0c9e6c $ svnadmin setuuid /var/svn/repos 1c604742-6b16-462b-86e4-cc8bce959242 # restore the old UUID $ svnlook uuid /var/svn/repos 1c604742-6b16-462b-86e4-cc8bce959242
我有同样的问题,但由于我们使用托pipe选项,我也无法svnadmin 。
这是我在另一个项目中使用的外部,我这样做来解决它:
rm -rf目录(外部被检入) svn:external (并提交) svn up svn:external