2012-02-02 57 views
0

我们目前的处境:转向使用SVN或GIT来管理服务器上的代码的提示?

  • 1个Apache服务器(托管)数据
  • 30GB,数百个文件夹/项目
  • 文件有99%的HTML/PHP/JS/CSS,带着一帮PDF/PPT /文档等
  • 几个开发人员,从不同的地点工作,用自己的电脑
  • 一些开发只对某些目录的访问(使用不同的FTP帐户)
  • 所有的更新都以F制作TP直接,节省了旧文件
  • 托管公司做基本的每日/每周备份,但访问这些文件,需要他们的帮助

现在我们知道这是不是附近的最优解决方案。时不时地,有人不小心删除了与那些错误的工作文件等等等等

我们应该做些什么,以这样的:

  • 所有文件会自动备份,这样的错误可以易于回收和安全
  • 开发者不应该改变他们的工作流程多,我们真的,真的像Dreamweaver &的自动保存到FTP功能的WinSCP
  • 我们得到工作也影响到当前文件的新的,更好的办法

回答

1

啊!我不得不说出来。 :)

您的工作流程假定大多数开发人员只在项目的某些定义明确的部分工作,对吗?否则,我认为你目前的设置不起作用。

然后,第一步可能是为这些单独的“项目”创建单独的源代码库。我使用术语项目松散地表示功能(例如搜索),网站的一部分(例如关于我们)或者其他您分配工作。

我不会去与SVN。如果你从一个干净的石板开始,没有新的项目应该。使用Git,我会用下面的启动:

  1. 创建基于文件夹结构(没有重叠的文件/文件夹)分项目的列表
  2. 提交他们分开git仓库
  3. 创建主混帐项目并导入所有这些Git仓库的子模块到正确的道路
  4. 库特定的
  5. 给写权限开发商应该能够读取所有库之前
  6. 然而,所有这些他们
  7. 主存储库中的单个git clone后跟submodule init命令将初始化每个开发人员的存储库
+0

是的,在这里也常常这样说。 看来我正在做的下一件事是用Git代替傻瓜。只是一个简单的问题 - 用你建议的设置,基本的开发工作如何? 现在我们只是将文件保存到FTP服务器,刷新浏览器,它就在那里。我真的很喜欢简单。 – Apeli 2012-02-02 11:52:02

+0

进行更改后,您会有一个明确的'git commit'步骤。有一些UI工具可以自动处理提交和推送到远程,例如SmartGit。我会推荐ProGit(progit.org)。免费电子书,也可用于死树版本。 – idlethread 2012-02-02 14:20:47

+0

了解您选择的解决方案会很有意思... – idlethread 2012-02-09 06:23:47

0

我还没有使用过GIT。我大量使用SVN。从你所描述的,你绝对需要一个版本控制系统。你可以通过版本控制系统实现几乎所有的功能(除了可能的自动保存功能),再加上你会感谢它为你节省了很多你现在使用的系统可能遇到的麻烦。

所以,让我们跳转到您的疑问:

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

文件中的修正系统每犯被索引(提交==保存),所以你可以看到文件的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。无论你选择什么,都会比现在更好。