svn问题。我无法添加它,因为它已经在另一个SVN中了

时间:2010-01-23 00:53:18

标签: linux svn unix

svn add guess_language/
svn: warning: 'guess_language' is already under version control

这是为什么?当我下载它时,它是在SVN下。 (我是从SVN下载的) 我如何发布该svn ...以便我可以将其转换为常规目录?

6 个答案:

答案 0 :(得分:5)

删除.svn内的guess_language/目录及其父目录(如果它也来自另一个SVN存储库)。这应该允许您将其添加到另一个SVN存储库。

这也必须通过guess_language的孩子递归完成。可以为您执行此操作的命令(取决于您的Linux环境)是:

find . -name '.svn' -type d -exec rm -rf {} \;

(您可能不应该认为这是理所当然的,使用非删除版本进行测试,即find . -name '.svn' -type d,并检查列出的唯一目录是您要删除的目录。)

答案 1 :(得分:3)

您可以强制将其添加到您的存储库中。使用:

svn add --force [folder]

答案 2 :(得分:1)

guess_language目录中会有一个名为.svn的隐藏目录。这就是SVN知道目录受版本控制的方式。删除该目录,然后您就可以将其添加到SVN存储库。您必须为每个目录执行此操作,因为每个目录都有自己的.svn目录。

(另外,如果您查看该目录中名为entries的文件的内容,您可以看到该目录最初属于的SVN存储库的URL)

答案 3 :(得分:1)

如果您想要从版本控制中删除目录的“副本”,请使用svn export。导出的目录将包含原始目录的所有欠版本控制内容,但将是“常规目录”。

最好的问候。

答案 4 :(得分:0)

Nuke所有.svn目录。

cd guess_language
find . -name .svn | xargs rm -fr

答案 5 :(得分:0)

正如其他人所说,删除.svn目录以使subversion忘记它是从某个存储库中检出的工作副本。将来,您可以svn export代替svn checkout从svn下载文件,而无需从中创建工作副本。