Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 如何更正我忽略了主干的Subversion项目?_Svn - Fatal编程技术网

Svn 如何更正我忽略了主干的Subversion项目?

Svn 如何更正我忽略了主干的Subversion项目?,svn,Svn,我在subversion有一个项目,叫做inboundem。这是我的第一次,当我创建它时,我省略了主干。我需要将其放入正确的结构中,如inboundem/trunk。我有另一个这样的项目,但由于没有修订,我做了svn删除,然后svn导入,效果很好。但是我有很多关于inboundem的修改,我不想失去历史 我不能执行svn move,因为svn不允许我将项目移动到自身中 我怀疑我需要沿着svnadmin转储/加载路径走,因此我做了以下工作: svnadmin dump /subversion/ac

我在subversion有一个项目,叫做inboundem。这是我的第一次,当我创建它时,我省略了主干。我需要将其放入正确的结构中,如inboundem/trunk。我有另一个这样的项目,但由于没有修订,我做了
svn删除
,然后
svn导入
,效果很好。但是我有很多关于inboundem的修改,我不想失去历史

我不能执行
svn move
,因为svn不允许我将项目移动到自身中

我怀疑我需要沿着svnadmin转储/加载路径走,因此我做了以下工作:

svnadmin dump /subversion/active | svndumpfilter include inboundem > inboundem.dump
这就创建了一个转储文件,其中包含了inboundem的所有历史记录。但我现在该怎么办

我怀疑我应该执行
svn delete
并删除项目,然后手动编辑转储文件并将节点路径从inboundem更改为inboundem/trunk,然后执行以下操作

svnadmin load /subversion/active < inboundem.dump
svnadmin加载/subversion/active

这安全吗?有没有更简单的方法?也许我应该强制执行,然后逐个签出所有修订,删除项目,然后逐个修订重新创建项目修订。

为什么不在项目根目录中创建一个名为“trunk”的文件夹,然后将根目录中的所有文件/文件夹移到该文件夹中


我以前在《乌龟》中做过这件事,我不确定它使用的是什么基线命令,因为你说svn move对你不起作用。也许试着复制然后删除

您可以使用svn export,然后将导出的源移动到/trunk,然后提交更改(在/trunk中添加新文件夹)


然后删除(并调用delete)旧文件夹,如果有必要,仍然会有它们的历史记录供您还原,但它会将它们还原到旧文件夹,而不是新的主干。svn导出所做的只是将所选目录移动到一个新位置,而不使用.svn文件夹,这样它的行为就好像它不是一个工作副本一样,您可以从那里将它添加到您的工作副本中。

因为它会复制.svn文件夹并严重破坏SVNAh,当然有办法告诉命令行客户端忽略.svn。我不知道您使用的是什么操作系统,但Tortoise会让您在存储库查看器中进行简单的拖放操作,以完成此任务。右键拖动文件夹(如果您使用的是TortoiseSVN)。右键拖动后释放鼠标按钮时,选择“SVN将项目移动到此处”,这将执行“SVN mv”,而不是仅移动资源管理器。哦,这是一个很好的技巧Stefan。我通常只是通过回购浏览功能来实现这一点。这比我的解决方案更简单。而且它保留了历史。是的。我自己已经不止一次这样做了。我得到了一个错误,说来源和目标不是相同的回购协议。最后,我将
/
分支到
/trunk
中,这给我留下了两个分支,然后我删除了
/
下面的所有内容,除了
/trunk
文件夹,它给我留下了正确的文件夹布局。我看到的唯一“问题”是
/
文件夹仍将具有历史记录,但这对我们来说没关系。如果我使用此解决方案,它是否会弄乱其他人的项目签出副本?
svn mv svn://repo/inboundem svn://repo/trunk
svn mkdir svn://repo/inboundem
svn mv svn://repo/trunk svn://repo/inboundem/trunk