【问题标题】:Make an existing folder into a repository将现有文件夹放入存储库
【发布时间】:2011-12-02 04:22:17
【问题描述】:
我认为直接在记事本中修改文件可能很危险,是时候进行一些适当的源代码控制了(我对源代码控制很陌生)。我在我的服务器上安装了 VisualSVN 服务器,在我的客户端机器上安装了 TortoiseSVN。我可以很好地创建新文件夹,检查它们等等。但是,在我的服务器上,我有一个现有的 IIS 文件夹结构,并且到处都有基于此位置的链接。如何在不移动文件的情况下使整个文件夹与 SVN 一起使用?
【问题讨论】:
标签:
svn
tortoisesvn
visualsvn-server
【解决方案1】:
检查现有目录结构有一个简单的解决方案:
- 打开 TortoiseSVN 的存储库浏览器并为您要签入的项目创建一个新目录。
- 从某处的 SVN 签出这个新创建的空目录
- 打开签出目录并将包含的隐藏
.svn 目录移动到项目的根目录中。这将为所有文件和子文件夹启用 TortoiseSVN 的上下文菜单。
- 添加您要签入的每个文件和文件夹(上下文菜单命令添加...)
- 在项目根文件夹上执行SVN Commit...
【讨论】:
-
注意:步骤 1 假设您的存储库结构设置为在单个存储库中包含多个项目(即option one in the SVN book)。相反,如果您将每个项目放在单独的存储库中(即选项二),您将无法从存储库浏览器中执行此操作。您需要在 svn 服务器本身上创建新的存储库。
【解决方案2】:
比Robert's Answer 更简单的方法(虽然从它那里得到了提升):
打开 TortoiseSVN 的存储库浏览器,并为您要签入的项目创建一个新目录。
-
从 SVN 签出这个新创建的空目录作为您要添加的目录(忽略有关签出非空目录的警告)。
在要提交的目录上执行“SVN Commit...”,从提交窗口中选择要添加的文件。
【解决方案3】:
我还会在 3 到 4 之间添加一个步骤:
3.5。忽略自动生成的文件(上下文菜单命令添加到忽略列表...)
【解决方案4】:
你可以做上面其他人提到的,但是,如果你只想使用你所拥有的而不是添加和提交,你可以简单地欺骗 SVNServe。
对于这个例子,我们现有的 repo 是“TEST_REPO”
转到您的命令行。
创建一个名为“new”的新目录。把CD放进去。
在我们的“新”目录中运行以下命令:
C:\new\mkdir TEST_REPO
C:\new\svnadmin create TEST_REPO
现在您将在“TEST_REPO”目录中拥有一个 repo。
运行:
C:\new\cd TEST_REPO
C:\new\TEST_REPO\del *.* /S /Q
(如果需要,可以删除目录,抱歉,不是 windows 人)
现在,将文件从现有的“TEST_REPO”移动到“C:\new\TEST_REPO\”文件夹中。然后运行:
C:\new\TEST_REPO\svnadmin verify .
您应该会看到 SVN 验证您的存储库中的所有源。轻松愉快。