任何人都可以向我解释在Linux中设置版本控制系统的步骤

时间:2011-05-30 05:03:01

标签: version-control linux

我正在尝试很多,而且我并不想得到这个版本控制在我的场景中如何工作

我有VPS服务器,我托管php网站。用户在/ home / users中拥有主目录。

目前用户通过FTP编辑文件,我无法控制他们的工作。我想在VPS上设置版本控制系统我不知道锄头开始。我的意思是

我会解释我想要的,我可能是错的,但请纠正我。

  1. 如何在我的VPS服务器上安装VCS,以便/ home / users中的所有目录都受版本控制。我不知道它是否可能。我希望最终保存位置或回购应该是/home/user/public_html,以便在用户提交时我的实时网站应该更改。现在我不知道VCS是否以这种方式工作。

  2. 现在我的客户端计算机将如何连接该VCS服务器

  3. 是否可以为一个用户设置版本控制,我的意思是/home/user1/public_html而不是其他用户

  4. 现在用户仍然会有FTP详细信息,即使我使用VCS也无法通过FTP更改文件

  5. 请清除我的怀疑,我真的想学习VCS系统

4 个答案:

答案 0 :(得分:3)

  • 是的,它应该是可行的。期望存储一些额外的数据,因为整个历史将被存储,加上存储的当前版本的单独副本。
  • 您必须决定要使用的版本控制系统。最常见的选项是:

    • 的Subversion
    • GIT中
    • 水银
    • 巴扎

    如果您或您的用户已经拥有一个经验,那么它可能是最佳选择。

    你想要:

    1. 安装所选的版本控制系统并创建一个post-commit挂钩,将每个版本签出到目标目录中。
    2. 客户端将提交到存储库。所有系统都支持通过受限制的ssh进行访问(用户使用公钥登录,并且密钥在.ssh / authorized_keys中设置为仅允许一个特定命令)。有些还有基于HTTP(s)的方法(Subversion的特殊Apache模块,Mercurial,Bazaar和Git的CGI脚本)。
    3. 是;钩子脚本将检查你告诉它的内容。您可以实施它来检查所有用户,列出的用户,组中的用户以及您需要的任何内容。
    4. 关闭FTP服务器。

答案 1 :(得分:2)

通常,工作流程是您拥有包含所有修订和更改的存储库。这使用特殊格式,直接访问这些文件没有意义。通常通过WebDAV接口(作为apache模块运行)或运行独立服务器(使用它自己的协议)访问repo。

用户提交他们对回购的更改,然后导出最新版本(或他们选择的一个)到他们可公开访问的* public_html *目录。这涉及他们与VCS交互并了解(并关心)它。

更简单的设置可以是* public_html *包含工作副本,并且它们通过传统FTP与之交互。 (您必须确保普通公众无法访问VCS的文件,例如.svn文件夹)。通过这种方式,您可以通过Web界面向用户公开VCS功能(基本上是提交和回滚)(您编写一个小的PHP脚本,为您执行提交更新它们)。

增量备份:完全不同的故事

据我了解,您可能需要更多类似增量备份的功能,例如 rsync 。每次用户关闭FTP连接时,您都可以初始化rsync备份。它具有灵活的选项,您可以在过去X天或最后X个FTP会话中进行所有更改,以便用户可以在意外上载后回滚。 (它可以与远程或本地存储一起用于备份)。

答案 2 :(得分:0)

  1. VCS(版本控制系统)只是一类软件:您需要先选择一个才能实现它。在你的情况下,你可能想要颠覆,或者一个DVCS(分布式版本控制系统)(git或mercurial)。

  2. 听起来你想要的是你的网站的某种自动部署系统,这当然是可能的。

  3. 禁用ftp很简单:只需停止运行ftp服务器:ftp不安全,服务器本身就很危险。

答案 3 :(得分:0)

了解Branchable的工作原理。他们有特定的Web框架(ikiwiki),但保持网站在版本控制(git)中的基本原则是相同的,他们使用的所有软件都是开源的,包括将它们全部绑定在一起的脚本,所以你可以看看它是如何工作的。