Svn 颠覆的大混乱-现在如何实施?
我一直在玩一个在源代码控制下的项目有一段时间了。我已经添加了几个文件,删除了一些其他文件,并将另一个项目中的整个目录复制到这个项目中。我现在才意识到,其中一些复制的文件夹中有.svn目录,但遗憾的是,目前仅通过查看项目就无法确定哪些.svn目录属于当前项目,哪些不属于当前项目 我非常需要承诺,正如预期的那样,svn让我头疼。起初,我犯了那些唠叨的“丢失或未锁定”错误,但在经历了很多混乱之后,我想我真的把事情搞砸了 那么,我应该如何着手进行承诺?我应该删除所有.svn文件夹(我不确定哪些文件夹对应于当前项目,哪些不对应),还是删除将每个文件连接到svn服务器中较旧版本的所有信息Svn 颠覆的大混乱-现在如何实施?,svn,version-control,Svn,Version Control,我一直在玩一个在源代码控制下的项目有一段时间了。我已经添加了几个文件,删除了一些其他文件,并将另一个项目中的整个目录复制到这个项目中。我现在才意识到,其中一些复制的文件夹中有.svn目录,但遗憾的是,目前仅通过查看项目就无法确定哪些.svn目录属于当前项目,哪些不属于当前项目 我非常需要承诺,正如预期的那样,svn让我头疼。起初,我犯了那些唠叨的“丢失或未锁定”错误,但在经历了很多混乱之后,我想我真的把事情搞砸了 那么,我应该如何着手进行承诺?我应该删除所有.svn文件夹(我不确定哪些文件夹对应
谢谢删除所有
。svn
文件夹可能不是您需要的。在每个.svn
文件夹中,都有一个名为entries
的文件。在该文件中,是远程回购的URL(因为使用Git,所以不再记得正确的SVN措辞;对此表示抱歉)
假设您的定期回购为http://server1.com/myregularrepo
而且您知道所有复制的文件夹(实际上不属于您的回购)都来自http://otherserver.com/otherrepo
,搜索包含http://otherserver.com/otherrepo
然后删除它们的父文件夹(即它们的.svn
文件夹)
如果将多个外部回购目录复制到工作副本中,事情会变得更复杂,但我认为您已经掌握了该怎么做的诀窍。我将尝试以下方法:
这项工作应该在提交之前仔细检查svn状态,这是不可避免的,如果备份再次出现问题如果您的代码是您想要的方式,我相信您可以执行svn导出(这将删除所有.svn文件夹,然后将其作为修补程序导入原始项目。这不会解决您当前的问题,但升级到1.7以后会有所帮助-所有
.svn
文件夹都将合并到签出的根目录中。最后一种方法是删除所有svn.folders,签出干净的版本,复制更改(你删除了svn文件夹的地方)然后提交。当然,除非有人在这期间做了些改变。@dowhilefor:这个项目太大了,我不相信这会起作用。@artbristol:很高兴知道。我想知道为什么他们花了这么长时间才明白1.7之前的系统是多么混乱。。