我正在寻找有关如何为 Web 项目实施版本和源代码控制的好建议。

我研究过 subversion,但它似乎只处理代码。我真的在寻找可以很好地进行版本控制、分支、归档等的东西。不仅包含源代码,还包含其他网络资产,例如艺术文件、影片剪辑,甚至数据库备份。

我们在 Mac/PC 混合环境中工作,因此 Visual Source Safe 或任何纯粹基于 PC 的东西都是不行的。有什么帮助吗?

有帮助吗?

解决方案

我使用过的所有源代码控制系统(CVS、subversion、git)都可以处理二进制文件和文本。如果您与版本控制经验有限的设计人员一起工作,那么现在 Subversion 有更好的 GUI 选择。在PC上,无可替代 乌龟SVN, 对于 Mac,我听说过一些好消息 版本。

其他提示

是什么让你认为你无法进行版本控制、分支、存档等......带有 Subversion 的图形文件?

我在我的程序中使用了 Subversion,其中包括图形,而且它似乎可以很好地处理它们。(好吧,比较是一个问题,但我还没有听说过好的图像比较程序。)

您可以将任何类型的文件添加到 subversion。如果它们是二进制文件,则保存的版本只是一个副本,而文本文件仅保存差异;然而,在 subversion 中保存其他类型的文件是完全没问题的。

使用 shell 插件(Windows 上的 Tortoise)使这变得相当容易。我没有使用 Mac 客户端的经验,但我想有很多选择。

其他人指出 Subversion 及其同类软件在处理二进制文件时没有任何问题(尽管不如文本文件那样节省空间)。不过,数据库备份要求更有趣,而且我不止一次遇到过这一要求。

理想情况下,我想要一个数据库两个版本(架构和数据)之间差异的文本表示。应用这样的差异会将您从一个版本带到下一个版本。源代码控制引擎可以在每次提交时存储它。Rails 迁移是一种处理架构差异的好方法,但我还没有看到任何可以以简单文本格式处理完整架构和数据差异的方法。

如果做不到这一点,我想您可以签入文本数据库转储,例如类型 mysqldump MySQL 生成的命令。源代码控制工具的 diff 算法可能无法有效地处理它,但它可能比签入不透明的二进制数据库文件需要更少的空间。

我仍然使用 Subversion,在 Windows 上我使用 TortoiseSVN,其中包含专门用于查看图像文件之间差异的 TortoiseIDiff。

我一直在使用 git 几个星期了,我已经非常喜欢它了。它是跨平台的,可以很好地管理冲突,并为每个人提供自己的完整版本存储库,以便他们即使在没有连接到网络的情况下也可以签入更改。

许多备受瞩目的项目现在都在使用 git,包括 Ruby on Rails。

颠覆有 Mac OS X 的预编译二进制文件. 。也可以通过 Mac端口芬克. 。有几个很棒的界面(除了 命令行). svnX 是一个开源客户端,已经存在了一段时间,正如前面提到的 版本 是一个非常漂亮的闭源客户端,目前处于测试阶段。你还是应该 熟悉命令行, ,因为您将遇到这些 GUI 客户端无法解决的问题。

Subversion 处理二进制文件 很好。我过去曾将它用于 Web 项目,并成功使用使用它们的代码对图像和 Flash 文件进行版本控制。

Mac 有一个叫做“Version”的东西,它是一个颠覆性的 UI,比如“Tortoise SVN”,我发现它用户友好且有效。

我也在 Mac/PC 环境中工作(该死的艺术孩子),颠覆确实是正确的选择。我将所有文本、图像、查询和代码都保存在那里。

当我解释了这个概念后,我的非技术同事发现它很容易使用。

我肯定会再看一眼 subversion。我知道这可能很无聊,但是阅读 SVN 书籍会有很多帮助。

我个人使用 Mac 版本。它有一个非常棒的用户界面,可以与 subversion 存储库进行交互。

我所做的是将项目的 /Trunk 目录检出到站点的根目录中。这样我就可以测试并运行工作副本作为我的实际开发设置。一旦我准备好上线,我就可以从 repo sans .svn 文件夹中导出文件并将其上传到生产或登台服务器。希望这能让您了解使用 Subversion 可以拥有什么样的工作流程。

我认为 svn 是一个不错的选择,有些用户甚至可以使用 git 进行本地分支。我在 mac 上运行 eclipse,所以我使用 git、svn 命令行和 subversive(svn 的 eclipse 插件)的组合。这是 mac svn 客户端列表(大多数是跨平台的)

http://scplugin.tigris.org/ 像 TortoiseSVN 但功能不丰富)
http://subcommander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (不是免费的 59 美元)
http://www.lachoseinteractive.net/en/community/subversion/svnx/features/

要对数据库使用源代码控制,您可能需要生成架构和数据的基于文本的表示形式。您应该每天自动运行一次并将更改提交到您的存储库。

请注意,DBMS 可能会更改数据库中的行顺序,以使某些操作更加高效。这可能会导致两个转储看起来不同,但实际上具有不同的数据。确保创建数据转储的任何内容都按每个表的主键对其进行排序,并且表集按定义的顺序排列,以便在比较 2 个转储时看到的更改只是重要的更改。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top