如何在Xcode 6上设置svn存储库?

Arj*_*wal 5 svn ios xcode6

我刚开始使用Xcode并尝试在远程Windows服务器上添加Subversion存储库.当我输入Subversion存储库的位置路径时,它显示以下错误消息:

错误信息 :

"主机无法访问."

请任何人可以帮忙吗?谢谢.

Boo*_*ker 13

即使没有Xcode,设置svn源代码控制总是很痛苦,而且Apple与Xcode的集成无法帮助它.它从版本变为版本,最新版本与版本5相似,因此在Xcode 6中也是如此.这个解决方案的唯一问题是我们总是需要结合命令行和Xcode GUI步骤,但这是唯一可行的解​​决方案,所以我们将遵循这一点,但在可能的情况下使用Xcode.

由于我做了几次但总是遇到各种问题,我决定详细而清晰的最新描述.

服务器端

即使您可以在您的计算机上安装svn服务器,即使您单独工作也不是一个安全的解决方案.您可能会因故障硬盘或任何意外而丢失​​多年的工作.所以在另一台计算机上制作它.你需要一个svn服务器安装和登录.您可以检查它,只需ssh到您的服务器并使用终端中的命令

which svn
Run Code Online (Sandbox Code Playgroud)

如果你得到一个版本号,你可能在该服务器上有一个活的存储库目录,你可以访问它.具体位置取决于您的安装,但在我们的案例中,主存储库目录是:https://myserver.me.com/Library/Subversion/Repository/

您将在此目录下创建新存储库,如 https://myserver.me.com/Library/Subversion/Repository/MyNewApp


1.创建一个新的存储库

登录到您的服务器(在我们的例子中myserver.me.com)然后打开终端实用程序并使用svnadmin create命令创建Subversion存储库.例如,如果您想要MyNewApp在现有位置命名的存储库/Library/Subversion/Repository/,则应输入以下命令:

svnadmin create /Library/Subversion/Repository/MyNewApp
Run Code Online (Sandbox Code Playgroud)

这将创建存储库的主要结构.我们从服务器注销以避免任何问题,并且从现在开始不直接使用它,只是从客户端.

客户端

2.创建文件夹结构

注意:为存储库创建层次结构是可选的.为了让svn正常工作,不需要它,但是如果你计划将多个项目保持在源代码管理之下,那么在开始导入这些项目之前组织起来是个好主意.

我们将在客户端上准备文件夹结构,然后我们将使用名为"import"的svn命令将其传输到服务器.

1.首先在客户端的任何位置创建一个新的临时文件夹 - 例如在您的桌面上 - 在我们的案例MyNewApp中使用Finder中的项目/存储库名称:

MyNewApp
Run Code Online (Sandbox Code Playgroud)

然后使用确切的名称在其中创建3个其他文件夹:

trunk
branches
tags
Run Code Online (Sandbox Code Playgroud)

2.将文件夹结构导入svn服务器

使用终端实用程序登录到您的客户端并使用"cd"命令进入项目文件夹:

cd MyNewApp
Run Code Online (Sandbox Code Playgroud)

提示:将文件夹的完整路径放入终端而不会有输入错误的最简单方法是首先键入cd命令并输入空格,然后将文件夹从Finder中拖放到终端命令行的末尾.

3.然后使用终端的svn import命令:

svn import . https://myserver.me.com/Library/Subversion/Repository/MyNewApp -m "Initial import of directories for MyNewApp project."
Run Code Online (Sandbox Code Playgroud)

要么

svn import . svn+sshtunnel://yourLoginName@194.149.155.124/Library/Subversion/Repository/MyNewApp -m "Initial import of directories for MyNewApp project."
Run Code Online (Sandbox Code Playgroud)

第二种是使用ssh密钥最安全的用法,其中194.149.155.124是服务器的IP地址.svn+sshtunnel://意味着它使用SVN和sshtunnel,但它可以是任何其他取决于登录机制类似https://svn://将"" 在"import"命令很重要之后,它意味着您所在的文件夹.

如果导入成功,您应该看到如下内容:

Adding trunk 
Adding branches
Adding tags

Committed revision 1.
Run Code Online (Sandbox Code Playgroud)

注意:这意味着这是您加载到服务器到MyNewApp存储库的第一个已提交版本,它由svn进行版本控制,并且只显示您所做的消息,您可以使用您喜欢的内容.现在您已将项目的目录结构导入存储库,现在可以删除刚刚创建的计算机上的MyNewApp1目录.当您导入真实项目时,这样做有助于防止以后出现混淆.

3.将Xcode项目导入svn

使用终端导航到您Xcode项目并再次确保您在项目文件夹中

cd MyNewApp
Run Code Online (Sandbox Code Playgroud)

然后再次使用以下svn命令:

svn import . https://myserver.me.com/Library/Subversion/Repository/MyNewApp/trunk/MyNewApp1  -m "Initial import of MyNewApp1 project."
Run Code Online (Sandbox Code Playgroud)

或者您的计算机/ Users/myUserName/Apps_Developing/myNewApp上的确切位置

svn import -m "New Import"  /Users/myUserName/Apps_Developing/myNewApp https://myserver.me.com/Library/Subversion/Repository/MyNewApp/trunk/MyNewApp1
Run Code Online (Sandbox Code Playgroud)

如果导入成功,您应该看到添加文件的长列表...

注意:这意味着您可以将MyNewApp1(您可以使用任何名称)项目导入svn下的主干.由于Xcode使用的命名约定,trunk扩展很重要.您可以再次在引号中包含所需的任何注释,但请确保您的注释对使用存储库的任何人都有意义.


4.在Xcode中添加存储库

现在启动Xcode并转到Preferences- > Accounts并在左下角添加带有"+"的新存储库

+ Add Repository...
Run Code Online (Sandbox Code Playgroud)

输入存储库地址

https://myserver.me.com/Library/Subversion/Repository/MyNewApp
Run Code Online (Sandbox Code Playgroud)

用于添加存储库的Xcode屏幕

注意:不要使用trunk等,你需要存储库的根目录!

5.检查项目以创建工作副本

在Xcode中转到Source Control- >Check Out...

输入中继的存储库地址(如果您之前使用过,则输入分支或标记)

https://myserver.me.com/Library/Subversion/Repository/MyNewApp/trunk
Run Code Online (Sandbox Code Playgroud)

然后给出工作副本文件夹的名称及其位置

在此输入图像描述

注意:后备箱很重要!!! 只需在root之后键入它,如果你错过它,你的文件夹中会有trunk等文件夹!您可以根据需要使用目录名称MyNewAppWorking...然后Apps_Developing在我们的案例中选择计算机上的位置.