我创建了一个仓库,然后我运行了svn import . https://myrepo
。它似乎已经很好地检查了一切,我可以在我的其他机器上查看它。但是,它似乎没有创建.svn
文件夹,因此我不能在以后运行任何svn ci
命令。
这会产生巨大的麻烦,以便稍后尝试和同步,因为现在我的所有东西已经在回购中,但它与我正在尝试提交的更改冲突。
我做错了什么?
答案 0 :(得分:32)
我从不使用导入,因为它不舒服。导入不会创建.svn目录,您必须运行新导入目录的额外签出。
我首先在repo中创建一个空目录,然后将其检入我想要“导入”的现有项目目录中,而不是导入文件。然后你可以简单地运行commit,它将添加所有文件。
答案 1 :(得分:6)
只有工作副本才会有.svn文件夹。导入不会创建工作副本。 (为什么不呢?例如,假设您尝试从没有写入权限的媒体导入。在这种情况下,如果导入尝试创建工作副本,则会失败)。要创建工作副本,必须使用结帐。
换句话说,import将信息推送到存储库。这就是它的目的,它对原始文件没有任何影响。大多数subversion命令只能在一个方向上工作:checkout,export和update修改本地系统/工作副本上的文件。导入和提交仅更新存储库。除了[un]锁定操作之外,我无法想到同时影响存储库和工作副本的命令。
答案 2 :(得分:2)
我想提供有关在导入后使用TortoiseSVN的更新。 TortoiseSVN现在允许您签出非空文件夹。
因此,您可以简单地签出用于导入的同一文件夹。 TortoiseSVN版本内部的所有文件,检测它们都匹配,并且不下载/覆盖任何内容。不必再重命名源文件夹,然后签出到新的空文件夹。
这是在Windows 7上使用TortoiseSVN版本1.8.0,Build 24401 - 64 Bit,2013-06-17T18:15:59(Subversion 1.8.0,-release)测试的。
示例:
文件夹C:\ myfiles包含数据。
将http://example.com/svn/myfiles签出到C:\ myfiles。
TortoiseSVN警告目标不为空,单击“确定”。
TortoiseSVN然后在版本控制下放置C:\ myfiles及其内容(当前与存储库匹配),而不必修改/下载/替换任何文件。
答案 3 :(得分:1)
当您使用subversion设置项目时,在项目初始导入后,您应该检查项目并继续处理您签出的副本中的项目。我认为问题在于您继续处理您签入的副本。
答案 4 :(得分:1)
导入后,您可以运行svn checkout --force
将导入的目录转换为工作副本。
答案 5 :(得分:0)
GAHHHHHHHHH ...不要使用TORTOISE-SVN来做这件事 - 它会消灭你的本地目录。
Sooo .........首先在其他地方制作一个拉链/副本!...叹息......(至少我有一个旧的,但是 - zipfile)。
答案 6 :(得分:0)
检查文件夹权限。就我而言,它有效。