我最终决定转向版本控制工作流程但是...这是一个月我正在尝试使用SVN设置工作流程而没有运气。
我和Coda合作(svn是 支持)+媒体寺庙托管。 我只是在/ data / svn / myproject中设置了一个repo(遵循MT指南)并导入了我的网站root。
问题1:svn只导入了根目录中的一半文件而不是目录。
然后我尝试(按照教程)在Coda结帐。
问题2:我收到错误(本地目录不是工作副本),只创建了一个.svn文件夹。
现在,我想我根本不了解版本控制系统是如何工作的。请告诉我:当我第一次结帐文件时,他们会从我的远程目录复制到我的本地文件夹? FTP和版本检查仍然是两个独立的任务? 我的意思是:当我在Coda中提交文件时,它是否会自动放在我的远程网站目录中更新旧文件? 而且,它只是关于代码或一切都置于版本控制(图像等......)?
对不起我在询问之前已经阅读了很多指南,但是我没有得到它!
由于
答案 0 :(得分:3)
首先,我建议您将版本控制视为与IDE分离的内容。它无论如何都适用于文件系统级别,而Coda为您提供的任何集成只是对它的抽象。如果你把Coda排除在等式之外,最初会更容易理解。
现在,我个人不喜欢命令行(当然它很强大)所以如果你在Windows上我建议你去玩Tortoise并玩弄它,它会让你对事物有更好的感觉。虽然我不知道在Mac上。也许在Mac上有一些很好的SVN图形工具。
基本上,SVN工作流由两部分组成 - 存储库和本地文件夹。存储库就像一个服务器。它是所有事物的中心位置。可以把它想象成一个“智能FTP文件夹”。
工作流程如下:您将所有源代码和内容写入本地文件夹。当您觉得自己完成后,将其复制到中央文件夹(存储库),然后开始处理下一件事。完成后,再次将其复制到中央文件夹。等等。此操作是“提交”。您将本地文件复制到中央文件夹,覆盖那里的任何内容。
嗯,它实际上比简单的复制更“聪明”。 SVN跟踪所有更改,因此当您在本地删除文件时,提交也将删除服务器上的文件。这就像使服务器文件夹看起来与本地文件夹完全一样。
现在,版本控制的主要卖点是存储库的所有这些更新都是非破坏性的。也就是说,当您将最新的最大东西复制到存储库时,它会归档那里的旧文件,您可以随时将它们取回。实际上很难从SVN存储库中删除某些东西。这就是为什么即使是单个开发人员也倾向于使用源代码控制 - 它就像一个备份系统,如果你搞砸了,你可以随时使用旧版本并重新开始。什么都没有丢失。而且它也非常有效。
SVN相对于简单FTP文件夹的另一个主要优点是当多个用户对相同文件进行更改时。它跟踪事物,所以当你和你的伙伴都修改了同一个文件时,它会在提交时发出警告。大多数情况下,SVN将能够自动合并您的更改,但有时您也必须手动排序。但同样 - 没有人可以意外地丢失他们的更改,因为有人覆盖了他们修改的文件。历史记录保留了所有这一切,一旦你们都试图覆盖同一个文件,你就会得到很大的警告和东西。
所以,工作流程......
嗯,大部分时间都是这样的:
这就是它。如果你和你的好友一起工作,你也会偶尔做一个“更新”。这会将您的好友提交的更改复制到您的本地文件夹。
SVN还有其他有用的功能,但这是基本设置。对此感到满意,然后寻找更多。