【问题标题】:Hints for moving to using SVN or GIT to manage our code on the server?转向使用 SVN 或 GIT 来管理我们在服务器上的代码的提示?
【发布时间】:2012-02-02 20:20:46
【问题描述】:

我们现在的情况:

  • 1 Apache 服务器(托管)
  • 30 GB 数据,数百个文件夹/项目
  • 文件是 99% 的 html/php/js/css,还有一堆 pdf/ppt/docs 等。
  • 多个开发人员,在不同地点工作,使用自己的计算机
  • 一些开发者只能访问某些目录(使用不同的 ftp 帐户)
  • 所有更新都直接通过 FTP 进行,保存旧文件
  • 托管公司进行基本的每日/每周备份,但访问这些文件需要他们的帮助

现在我们知道这不是最佳解决方案。时不时有人不小心删除了错误的工作文件等等。

我们应该怎么做:

  • 所有文件都会自动备份,因此可以轻松安全地恢复错误
  • 开发人员不必改变他们的工作流程,我们非常非常喜欢 Dreamweaver 和 WinSCP 的自动保存到 FTP 功能
  • 我们获得了新的、更好的工作方式来影响当前文件

?

【问题讨论】:

    标签: git apache svn


    【解决方案1】:

    啊!!我不得不说。 :)

    您的工作流程假设大多数开发人员只处理项目的某些明确定义的部分,对吗?否则,我认为您当前的设置将无法正常工作。

    那么第一步可能是为这些单独的“项目”创建单独的源存储库。我松散地使用术语项目来表示功能(例如搜索)、网站的一部分(例如关于我们)或您划分工作的其他内容。

    我不会选择 SVN。如果你从头开始,就不应该有新的项目。使用 git,我将从以下内容开始:

    1. 根据文件夹结构创建子项目列表(无重叠文件/文件夹)
    2. 将它们提交到单独的 git 存储库
    3. 创建一个主 git 项目并将所有这些 git 存储库作为子模块导入到正确的路径中
    4. 像以前一样向开发人员授予特定于存储库的写入权限
    5. 但是,他们所有人都应该能够读取所有存储库
    6. 主存储库的单个 git clone 后跟 submodule init 命令将为每个开发人员初始化存储库

    【讨论】:

    • 是的,这里也经常说“啊”。看来我接下来要做的就是用谷歌搜索 Git 来寻找傻瓜。只是一个简单的问题 - 对于您建议的设置,基本开发如何工作?现在我们只需将文件保存到 FTP 服务器,刷新浏览器即可。我真的非常喜欢这种简单性。
    • 进行更改后,您将有一个明确的“git commit”步骤。有一些 UI 工具可以自动处理提交和推送到远程,例如聪明的。我会推荐 ProGit (progit.org)。免费电子书,也提供死树版本。
    【解决方案2】:

    我没有使用过 GIT。我大量使用SVN。根据您的描述,您肯定需要一个版本控制系统。您可以从版本控制系统中实现几乎所有(除了可能是自动保存),而且您会感谢它节省了您当前系统可能遇到的大量混乱。

    所以,让我们跳到您的查询:

    All files are automatically backed up, so mistakes can be recovered easily 
    and securely
    

    修订系统中的文件在每次提交时都会被编入索引 (commit==save),因此您可以看到文件的 complete history。在diff 等构建功能中,可帮助您找到从一个修订版到另一修订版所做的确切更改。你可以recover accidentally deleted files。您希望(并感谢)learn repository structure 以及它如何帮助简化发布,branching the code 的修复。所以,SVN 在这里覆盖了地面。

    Creating user and setting authorization and authentication 是编辑带有用户名、密码和领域的文本文件。

    Devs shouldn't have to change their workflow much, we really, really like the
    auto-save-to-FTP functionality of Dreamweaver & WinSCP
    

    有很多可用于各种 IDE 的 SVN 插件。我没有在 Dreamviewer 中工作过,但似乎 working with SVN in Dreamweaver 是无缝的。我想这可能会稍微改变你的工作流程,但这是一个很好的改变。在任何情况下,您都可以使用Tortoise SVN 之类的东西来为您提供很棒的 UI 来使用。

    We get the new, better way of working to affect also the current files
    

    将文件导入 SVN 非常容易。一旦你运行了基本的 SVN 服务器,你只需要为每个项目或类似的东西运行svn import my/project/folder svn://svn.server.location/reponame/projectname/trunk。你开始吧。

    我的建议是调查

    PS:顺便说一句,我的回答对任何现代 VCS 都是正确的。无论你选择什么,都会比你现在拥有的更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      相关资源
      最近更新 更多